LaTeX Extra > LaTeX Strukturen > Spaltenbreite von Tabellen


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.

Spalten Typen

Bei den Spalten gibt es in Bezug auf die Breite drei verschiedene Typen, die inhaltsabhängige, die benutzerdefinierte und die dynamische Variante.

Inhaltsabhängige Breite der Tabellenspalten

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}

Benutzerdefinierte Breite der Tabellenspalten

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}

Das Paket ragged2e wird dabei für die Ausrichtung des Spalteninhaltes und das tabularx Paket für das Erstellen der Spalten benötigt. Danach verfügt man über vier neue Spaltentypen R (rechtsbündig), C (zentriert), L (linksbündig) und J (Blocksatz) mit denen für alle vier möglichen Ausrichtungen Spalten mit einer festen Breite gesetzt werden können. Der Zeilenumbruch innerhalb der Zellen funktioniert automatisch.

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}

dynamische Breite der Tabellenspalten

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}

Zusammenfassung

Die nachfolgende Tabelle bietet eine kurze Zusammenfassung welche möglichen Spaltentypen für welche Art der Breite und gewünschter Ausrichtung zur Verfügung stehen.
Zusammenfassung
Ausrichtunginhaltsabhängigebenutzerdefiniertedynamische Breite
rechtsbündigrR R
linksbündiglp , L X , L
zentriertcCC
BlocksatzJ J