Seite 1 von 1

Vermeintlich einfache Tabelle (Namenskarten)

Verfasst: Fr 12. Okt 2012, 16:46
von cpunkts
Liebe Latexfreunde ich habe ein Problem.
Aus aktuellem Anlass beschäftige ich mich mit Latex und bin von den Ergebnissen sehr angetan. Nun wollte ich mich etwas in Tabellen einarbeiten und das mit einem für mich vermeintlich einfachen Beispiel.

Ziel ist eine Tabelle zu erzeugen, welche eine gesamte A4 Seite bedeckt, dabei aber nur 2 Spalten und 7-10 Zeilen hat (relativ große Zellen). Die Zellen möchte ich mit relativ großem Text (in dem Fall Namen) füllen, wobei der Text sowohl horizontal als auch vertikal zentriert sein soll.

Versuche das gewünschte Ergebnis mit mit tabularx oder array zu erhalten sind leider gescheitert. Probleme waren dabei vorallem die Zellenhöhe zu definieren und anschließend den Text doppelt zu zentrieren.

Das Ergebnis stelle ich mir etwa so vor wie im Anhang dargestellt.

Beste Grüße

Verfasst: Fr 12. Okt 2012, 20:17
von Sepp99
Ein Ansatz dazu:
\documentclass[DIV=12]{scrartcl}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{tabularx}
\newcolumntype{C}{>{\bfseries\huge\centering\arraybackslash}X}

\begin{document}

\thispagestyle{empty}
\begin{tabularx}{\textwidth}{|C|C|}\hline
\rule[-30pt]{0pt}{2.5cm} Name & Name \\\hline
\rule[-30pt]{0pt}{2.5cm} Name & Name \\\hline
\end{tabularx}

\end{document}
Ergebnis im Anhang.

Gruß, Sepp.-

Verfasst: Di 16. Okt 2012, 10:12
von cpunkts
Interessanter Ansatz mit der Box Sepp, danke dir dafür, das Ergebnis gefällt mir ganz gut.
Jedoch erscheint mir die vertikale Ausrichtung des Textes bei der Lösung nicht ganz so einfach, denn der Offset und die Höhe der Box muss in dem Fall ja per Hand an eine andere Schriftgröße angepasst werden, wenn ich das richtig verstanden habe.

Wünschen würde ich mir eine Möglichkeit, bei der ich Höhe (und Breite) der Zellen für die Tabelle einstellen kann und dann die Ausrichtung des Textes in der Zelle festelegen kann ohne mit irgendwelchen Abständen zu experimentieren, sondern einfach per Kommando. Gibt es dafür vielleicht ein Paket, dass ich noch nicht kenne?
Nach recht intensivem Suchen scheint mir, dass die Verbindung aus großer Zelle und darin vertikal zentriertem Text nicht ganz so simpel ist, oder ich übersehe etwas fundamentales?

Beste Grüße

Verfasst: Di 16. Okt 2012, 11:07
von Besserwisser
Man könnte schlicht \parbox verwenden. \parbox hat drei optionale Argumente für vertikale Ausrichtung und Höhe, ein obligatorisches Argument für die Breite und eines für den Inhalt selbst. Ich verwende hier mal zusätzlich \fbox für Rahmen. Man könnte aber auch \frame verwenden oder die Linien mit picture-Elementen (sei es per picture-Umgebung oder TikZ oder ps-tricks) realisieren:
\documentclass{article}
\usepackage[ngerman]{babel}

\newcommand*{\kbt}{\centering Dies ist ein Blindtext.}
\newcommand*{\mbt}{\centering Dies ist ein Blindtext mit mehr als einer Zeile.}

\begin{document}

\raggedright

\fbox{\parbox[tt][5\baselineskip][tt]{.45\textwidth}{\kbt}}%
\fbox{\parbox[tt][5\baselineskip][tt]{.45\textwidth}{\kbt}}%

\fbox{\parbox[tt][5\baselineskip][c]{.45\textwidth}{\kbt}}%
\fbox{\parbox[tt][5\baselineskip][c]{.45\textwidth}{\kbt}}%

\fbox{\parbox[tt][5\baselineskip][b]{.45\textwidth}{\kbt}}%
\fbox{\parbox[tt][5\baselineskip][b]{.45\textwidth}{\kbt}}%

\fbox{\parbox[tt][5\baselineskip][tt]{.45\textwidth}{\mbt}}%
\fbox{\parbox[tt][5\baselineskip][tt]{.45\textwidth}{\mbt}}%

\fbox{\parbox[tt][5\baselineskip][c]{.45\textwidth}{\mbt}}%
\fbox{\parbox[tt][5\baselineskip][c]{.45\textwidth}{\mbt}}%

\fbox{\parbox[tt][5\baselineskip][b]{.45\textwidth}{\mbt}}%
\fbox{\parbox[tt][5\baselineskip][b]{.45\textwidth}{\mbt}}%

\end{document}
Näheres zu den optionalen Argumenten von \parbox ist beispielsweise dem usrguide zu entnehmen. Dieser müsste in allen LaTeX-Distributionen enthalten sein.

Verfasst: Di 16. Okt 2012, 21:49
von dknof
Hallo cpunkts,

mit tikz und der tikz-Bilbiothek matrix lässt sich sehr einfach die Darstellung und der Textinhalt trennen:
\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}

\begin{tikzpicture}
\Large\bfseries
\matrix [matrix of nodes,nodes={text width=8cm,minimum height=3cm,align=center,draw}]
{
Anton & Berta \\
Christian & Dorothea\\
Emil & Fridolin \\
};
\end{tikzpicture}

\end{document} 
Die Dokumentation dazu ist pgfmanual (texdoc hilft mir hierbei nicht, suche einfach nach pgfmanual.pdf), mit 726 Seiten recht umfangreich.

Gruß
Diether