Tabellen in LaTeX sind ein sehr weites Feld für Fragen. Im folgenden wird es um die Breite die eine Spalte in einer Tabelle hat gehen. Dabei wird zuerst die Frage nach den möglichen Varianten beantwortet und anschließend gezeigt, wie diese innerhalb einer Tabelle umgesetzt werden können.
Bei den Spalten gibt es in Bezug auf die Breite drei verschiedene Typen, die inhaltsabhängige, die benutzerdefinierte und die dynamische Variante.
Bei einer Spalte, bei der die Breite inhaltsabhängig ist, wird die Breite der Spalte durch das breiteste Elemente welches innerhalb dieser Spalte gesetzt werden soll bestimmt. Sie stellt den Basisfall für eine Spalte dar.
Die Spaltentypen r (rechtsbündig), c (zentriert) und l (linksbündig) aus der Standard Umgebung tabular gehören zu diesem Spaltentyp.
Die Breite lässt sich durch den Nutzer nur manuelle und durch Veränderung des Inhaltes selbst und oder durch die Veränderung des Inhaltes beeinflussen.
\begin{tabular}{lrc} erste Spalte ist & die zweite Spalte ist & und die dritte ist \\ linksbündig. & rechtsbündig. & zentriert. \\ \end{tabular}
Es gibt Spaltentypen bei denen der Benutzer die Breite der Spalten selbst festlegen kann. Der Spaltentyp p aus der Standard Umgebung tabular gehört zu dieser Kategorie von Spalten. Der Nachteil dieser p Spalte ist jedoch das damit nur eine linksbündig ausgerichtete Spalte gesetzt werden kann. Für den Fall, dass eine Spalte mit einer der anderen Ausrichtung benötigt wird kann folgendes umgesetzt werden.
\documentclass{article} ... \usepackage{tabularx} \usepackage{ragged2e} \newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}} \newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}} \newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}} \newcolumntype{J}[1]{>{\justifying\arraybackslash}p{#1}} ... \begin{document} ... \begin{tabular}{L{2cm}R{2cm}C{2cm}J{2cm}} Linksbündig und mit 2 cm breit gesetzt. & Rechtsbündig und mit 2 cm Breite gesetzt. & Zentriert und mit 2 cm Breite gesetzt. & Blocksatz und mit 2 cm Breite gesetzt. \\ Hier steht nichts. & Hier steht nichts. & Hier steht nichts. & Hier steht nichts. \\ \end{tabular} ... \end{document}
Die Spaltentypen können auch mit anderen Typen gemischt werden.
\documentclass{article} ... \usepackage{tabularx} \usepackage{ragged2e} \newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}} \newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}} \newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}} \newcolumntype{J}[1]{>{\justifying\arraybackslash}p{#1}} ... \begin{document} ... \begin{tabular}{L{2cm}R{2cm}C{2cm}J{2cm}lc} Linksbündig und mit 2 cm breit gesetzt. & Rechtsbündig und mit 2 cm Breite gesetzt. & Zentriert und mit 2 cm Breite gesetzt. & Blocksatz und mit 2 cm Breite gesetzt. & normal linksbündig & einfach zentriert.\\ Hier steht nichts. & Hier steht nichts. & Hier steht nichts. & Hier steht nichts. & Hier steht nichts. & Hier steht nichts. \\ \end{tabular} ... \end{document}
Bei einer Spalte mit dynamischer Breite handelt es sich um eine Spalte, deren Breite durch die Gesamtbreite der Tabelle und die Summe der Breiten der anderen Spalten definiert wird. Vereinfacht gesagt, wird die Breite einer Tabelle erst durch den Satz dieser Tabelle festgelegt, es sei den, es wurde zuvor eine Gesamtbreite festgelegt.
Aus diesem Grund gibt es Spalten mit dynamischen Breiten nur in Tabellen bei denen die Breite den Nutzer festgelegt wurde. Die Standardumgebung tabular* erlaubt zwar das Setzen einer Breite für die Tabelle, sie sollte aber nicht verwendet werden.
Die X Spalte in der tabularx Umgebung, aus dem gleichnamigen Paket tabularx, ist eine linksbündige Spalte mit dynamischer Breite und automatischen Zeilenumbruch innerhalb der Tabellenzellen.
\documentclass{article} ... \usepackage{tabularx} ... \begin{document} ... \begin{tabularx}{0.8\textwidth}{lX} Spalte 1 & Spalte 2\\ \hline A & Wieder mal viel Text, der wie immer keinen besonderen Sinn erfüllt, sondern einfach nur Platz füllen soll.\\ B & Der Text hat genau so viel Sinn wie der obige Text. \\ \end{tabularx} ... \end{document}
Für den Fall, das andere Ausrichtungen benötigt werden können die R, C, L und J Spalten in der tabulary Umgebung, aus dem gleichnamigen Paket tabulary, verwendet werden. Sie haben alle eine dynamische Breite und ebenfalls einen automatischen Zeilenumbruch innerhalb der Tabellenzelle.
\documentclass{article} ... \usepackage{tabulary} \begin{document} ... \begin{tabulary}{10cm}{|L|R|C|J|} \hline Diese Tabelle & hat genau die & Breite & von 10cm \\ \hline Und wie man & dabei leicht erkennen kann & reicht diese Breite nicht bei allen & Spalten aus um den ganzen Text darzustellen.\\ \hline \end{tabulary} ... \end{document}
Ausrichtung | inhaltsabhängige | benutzerdefinierte | dynamische Breite |
rechtsbündig | r | R | R |
linksbündig | l | p , L | X , L |
zentriert | c | C | C |
Blocksatz | J | J |