LaTeX / Tabellen
Mit LaTeX können hochwertige Tabellen erstellt werden. Mit der Erklärung der einfachen Tabelle tabelle1.pdf fange ich an und zeige später einige Feinheiten.
\usepackage{booktabs}
\begin{table}[htbp]
\centering
\begin{tabular}{ccc}
Überschrift Spalte 1 & Überschrift Spalte 2 & Überschrift Spalte 3 \\
\toprule
Zelle 1.1 & Zelle 1.2 & Zelle 1.3\\
Zelle 2.1 & Zelle 2.2 & Zelle 2.3\\
\midrule
Zelle 3.1 & Zelle 3.2 & Zelle 3.3\\
Zelle 4.1 & Zelle 4.2 & Zelle 4.3\\
\bottomrule
\end{tabular}
\caption{Unterschrift der Tabelle}
\label{kapitel:tabelle}
\end{table}
\begin{table}[htbp]
:
\end{table}
Wir kennen diesen Aufbau bereits aus dem Abschnitt Abbildungen: Eine Tabellenumgebung (table) wird im Dokument platziert, in der Reihenfolge "h" (=here: an der definierten Position, wenn der Platz nicht ausreichend ist, rutscht die Abbildung auf die nächste Seite und es wird mit dem der Abbildung folgenden Text fortgefahren), "t" (=top: die Abbildung wird am oberen Rand der Seite eingefügt), "b" (=bottom: die Abbildung wird am unteren Rand der Seite eingefügt), "p" (=page: die Abbildung wird auf einer eigenen Seite platziert).
\centering
Mit "\centering" legen wir fest, daß die eigentliche Tabelle (deren Definition erst noch folgt) in der Mitte zentriert werden soll.
\begin{tabular}{ccc}
Mit dem Befehl "\begin{tabular}" beginnt der eigentliche Tabellenaufbau. Die zweite geschweifte Klammer {ccc} legt die Anzahl der Tabellenspalten fest sowie die Textausrichtung der Inhalte. Im Beispiel würde also eine dreispaltige Tabelle erstellt werden, deren Inhalte zentriert dargestellt würden (c=center). Für linksbündig ausgerichtete Tabellenspalten ist dementsprechend statt "c" ein "l" zu setzen, für rechtsbündig ausgerichtete Tabellenspalten "r". Wer die Spalten durch Rahmen voneinander abtrennen möchte, kann das Zeichen "|" einfügen. Um eine dreispaltige Tabelle zu erstellen, bei denen alle Spalten eingerahmt sind, muß also die Angabe "{|c|c|c|}" machen. Es sei an dieser Stelle allerdings angemerkt, daß senkrechte Striche bei Tabellen als "schlechter Stil" gilt und in der Wissenschaft nicht üblich ist.
Überschrift Spalte 1 & Überschrift Spalte 2 & Überschrift Spalte 3 \\
\toprule
Die Inhalte der einzelnen Spalten werden durch das Zeichen "&" von einander abgetrennt, das Zeilenende wird LaTeX durch "\\" angezeigt. Durch diese Anweisung wird nicht nur das Ende einer Zeile markiert, es wird auch eine neue Zeile angefangen. Dies ist bei der letzten Zeile der Tabelle zu beachten (die nicht durch "\\" beendet werden sollte, wenn man die Tabelle nicht durch den "\bottomrule"-Befehl abschließen will). Um die Überschrift der Tabellenspalten von den Inhalten hervorzuheben gibt es den Befehl "\toprule": Hiermit wird ein Trennstrich in doppelter Stärke eingefügt.
\midrule
Es wird ein Trennstrich eingefügt
\bottomrule
Hiermit kann man das Ende der Tabelle mit einen Trennstrich versehen, der wie bei "\toprule" in doppelter Stärke erscheint.
\end{tabular}
Hiermit wird die Tabelle abgeschlossen.
\caption{Unterschrift der Tabelle}
Hiermit wird eine Unterschrift unter die Tabelle gesetzt, der Text in den geschweiften Klammern ist hierbei beliebig.
\label{kapitel:tabelle}
Will man später im Text auf die Tabelle verweisen, kann man mit diesem Befehl einen Anker setzen. Dieser sollte eindeutig sein und nicht mehrmals vergeben werden. Auf den im Beispiel "kapitel:tabelle" genannten Anker kann im Text mit \ref{kapitel:tabelle} verwiesen werden.
Mit LaTeX können Zellen spaltenweise kombiniert werden: tabelle2.pdf
\begin{table}[htbp]
\centering
\begin{tabular}{ccc}
Überschrift Spalte 1 & Überschrift Spalte 2 & Überschrift Spalte 3 \\
\toprule
Zelle 1.1 & Zelle 1.2 & Zelle 1.3\\
Zelle 2.1 & Zelle 2.2 & Zelle 2.3\\
\midrule
Zelle 3.1 & \multicolumn{2}{c}{Kombinierte Spalten 3.2 und 3.3}\\
Zelle 4.1 & Zelle 4.2 & Zelle 4.3\\
\bottomrule
\end{tabular}
\caption{Unterschrift der Tabelle}
\label{kapitel:tabelle}
\end{table}
Zelle 3.1 & \multicolumn{2}{c}{Kombinierte Zellen 3.2 und 3.3}\\
Der Befehl "\multicolumn" kombiniert ab seiner Position die in der ersten geschweiften Klammer angegebene Anzahl von Zellen. Im Beispiel wird die erste Tabellenzelle mit "Zelle 3.1" gefüllt, in der zweiten Zelle erhält LaTeX durch "\multicolumn{2}" die Anweisung diese und die nächste Zelle zu kombinieren. Die zweite Angabe betrifft die Ausrichtung des Inhaltes der kombinierten Zellen: Im Beispiel wird der Inhalt zentriert ("{c}"), durch "l" und "r" kann er aber auch links- bzw. rechtsbündig ausgerichtet werden. Die letzte geschweifte Klammer enthält den Inhalt der kombinierten Zellen.
Mit LaTeX können Zellen auch zeilenweise kombiniert werden: tabelle7.pdf
\usepackage{multirow}
\begin{table}[htbp]
\centering
\begin{tabular}{ccc}
Überschrift Spalte 1 & Überschrift Spalte 2 & Überschrift Spalte 3 \\
\toprule
\multirow{2}{*}{Inhalt} & Zelle 1.2 & Zelle 1.3\\
& Zelle 2.2 & Zelle 2.3\\
\midrule
Zelle 3.1 & Zelle 3.2 & Zelle 3.3\\
Zelle 4.1 & Zelle 4.2 & Zelle 4.3\\
\bottomrule
\end{tabular}
\caption{Unterschrift der Tabelle}
\label{kapitel:tabelle}
\end{table}
\multirow{2}{*}{Inhalt}
Der Befehl "\multirow" wird ganz analog dem "\multicolumn"-Befehl verwendet. Mit der erste Angabe ("{2}") sagen wir LaTeX, wieviele Zeilen zu einer Zelle zusammengefasst werden sollen (im Beispiel 2 Zeilen). Die zweite Angabe ("{*}") bezieht sich auf die Spaltenbreite. Ein "*" bestimmt die Spaltenbreite automatisch, alternativ kann der Spaltenbreite ein fester Wert zugewiesen werden (z. B. "{5cm}"). Die dritte geschweifte Klammer enthält den Inhalt der Zelle. Auch wenn sich die neue Zelle über mehrere Zeilen erstreckt, müssen die folgenden Tabellenzeilen im Code normal definiert werden. Es ist hierbei allerdings darauf zu achten, daß die Zellen, über die sich die neue Zelle im kompilierten Dokument erstreckt, keinen Inhalt zugewiesen bekommen, da dieser ansonsten regulär in die Tabelle eingetragen wird: tabelle8.pdf
\begin{table}[htbp]
\centering
\begin{tabular}{ccc}
Überschrift Spalte 1 & Überschrift Spalte 2 & Überschrift Spalte 3 \\
\toprule
\multirow{2}{*}{Inhalt} & Zelle 1.2 & Zelle 1.3\\
Zelle 2.1 & Zelle 2.2 & Zelle 2.3\\
\midrule
Zelle 3.1 & Zelle 3.2 & Zelle 3.3\\
Zelle 4.1 & Zelle 4.2 & Zelle 4.3\\
\bottomrule
\end{tabular}
\caption{Unterschrift der Tabelle}
\label{kapitel:tabelle}
\end{table}
Mit LaTeX können auch gezielt einzelne Zellen unterstrichen werden: tabelle3.pdf
\begin{table}[htbp]
\centering
\begin{tabular}{ccc}
Überschrift Spalte 1 & Überschrift Spalte 2 & Überschrift Spalte 3 \\
\toprule
Zelle 1.1 & Zelle 1.2 & Zelle 1.3\\
\cmidrule{1-2}
Zelle 2.1 & Zelle 2.2 & Zelle 2.3\\
\cmidrule(r){1-2}
Zelle 3.1 & Zelle 3.2 & Zelle 3.3\\
\cmidrule(l){1-2}
Zelle 4.1 & Zelle 4.2 & Zelle 4.3\\
\cmidrule(rl){1-2}
Zelle 5.1 & Zelle 5.2 & Zelle 5.3\\
\bottomrule
\end{tabular}
\caption{Unterschrift der Tabelle}
\label{kapitel:tabelle}
\end{table}
\cmidrule{1-1}
Mit dem "\cmidrule"-Befehl können wir LaTeX veranlassen, lediglich bestimmte Zellen zu unterstreichen. Welche Zellen es sein sollen wird LaTeX durch die Angabe in der geschweiften Klammer gesagt: Die erste Ziffer bezeichnet die Zelle, an der der Strich beginnt, die zweite Ziffer bezeichnet die Zelle, nach welcher der Strich zu Ende ist. Die im Beispiel genannte Angabe {1-2} unterstreicht demzufolge die ersten beiden Zellen. Will man nur die erste Zelle unterstreichen, müßte man {1-1} angeben. Die Angabe in den runden Klammern ist eine optionale Anweisung. Fehlt sie, werden die gewählten Zellen auf der gesamten Breite unterstrichen. Die Angabe "(l)" würde LaTeX veranlassen, an der linken Seite einen kleinen Einschub einfügen (die Zelle wird also nicht auf der kompletten Breite unterstreichen), entsprechend führt (r) zu einem kleinen Einschub auf der rechten Seite. Gibt man (rl) bzw. (lr) an, würde von LaTeX zu beiden Seiten ein kleiner Einschub eingefügt. Wichtig ist, daß die Angaben nicht mit "\\" abgeschlossen werden, da LaTeX ansonsten eine Leerzeile einfügen würde.
Mit LaTeX können auch sehr einfach Tabellen erzeugt werden, die mehrere Seiten umfassen. Es wird dabei jeweils der Tabellenkopf an jeder Seite neu eingefügt, ebenso ein (optionaler) Tabellenfuß: tabelle4.pdf
\usepackage{longtable}
\usepackage{booktabs}
\begin{longtable}{ccc}
Überschrift Spalte 1 & Überschrift Spalte 2 & Überschrift Spalte 3\\
\toprule
\endhead
& Tabellenfuß auf allen Seiten & \\
\bottomrule
\endfoot
Inhalt 1 & Inhalt 2 & Inhalt 3\\
Inhalt 1 & Inhalt 2 & Inhalt 3\\
:
:
:
\label{kapitel:tabelle1}
\end{longtable}
\begin{longtable}{ccc}
:
\end{longtable}
Hiermit wird die Umgebung einer langen Tabelle eingerichtet. Wie bei einer "normalen" Tabelle wird auch hier durch die Angabe {ccc} die Anzahl (im Beispiel 3) der Tabellenspalten sowie deren Ausrichtung ("c" für zentriert, "l" für linksbündig, "r" für rechtsbündig") angegeben.
Überschrift Spalte 1 & Überschrift Spalte 2 & Überschrift Spalte 3\\
\toprule
\endhead
Der Befehl "\endhead" zeigt LaTeX an, daß an dieser Stelle die Definition des Tabellenkopfes endet. Alles, was darüber steht (und nicht zu einem anderen Befehl gehört), wird als Tabellenkopf interpretiert. Der Tabellenkopf wird auf jeder Seite eingefügt. Im Beispiel besteht der Tabellenkopf aus den Überschriften ("Überschrift Spalte 1", "Überschrift Spalte 2" und "Überschrift Spalte 3") sowie einer Trennlinie ("\toprule").
& Tabellenfuß auf allen Seiten & \\
\bottomrule
\endfoot
Der Befehl "\endfoot" zeigt LaTeX an, daß an dieser Stelle die Definition des Tabellenfußes endet. Alles, was darüber steht (und nicht zu einem anderen Befehl gehört), wird als Tabellenfuß interpretiert. Der Tabellenfuß wird auf jeder Seite eingefügt. Im Beispiel besteht der Tabellenfuß aus einer leeren linken und rechten Spalte, dem Text "Tabellenfuß auf allen Seiten" in der mittleren Spalte sowie einer Trennlinie ("\bottomrule"). Die Angabe eines Tabellenfußes ist optional.
Inhalt 1 & Inhalt 2 & Inhalt 3\\ \end{longtable}
Inhalte werden wie bei den "normalen" Tabellen eingefügt. Auch hier gilt zu beachten: Die Anweisung "\\" schließt eine Tabellenzeile nicht nur ab, es wird auch eine neue Zeile angefangen. Dies ist bei der letzten Zeile der Tabelle zu beachten (die nicht durch "\\" abgeschlossen werden sollte).
\label{kapitel:tabelle1}
Natürlich kann auch bei diesen Tabellen ein Anker gesetzt werden, damit im Dokument mit "\ref{kapitel:tabelle1}" auf sie Bezug genommen werden kann.
Will man die Tabelle auf der ersten Seite eine andere Überschrift geben, so kann man das durch folgenden Befehl machen:
Tabellenkopf auf erster Seite & & \\
\toprule
\endfirsthead
Der Befehl "\endfirsthead" zeigt LaTeX an, daß an dieser Stelle die Definition des Tabellenkopfes der ersten Seite endet. Alles, was darüber steht (und nicht zu einem anderen Befehl gehört), wird als Tabellenkopf der ersten Seite interpretiert. Im Beispiel besteht der Tabellenkopf der ersten Seite aus dem Text "Tabellenkopf auf erster Seite" in der ersten Spalte, einer leeren zweiten und dritten Spalte sowie einer Trennlinie ("\toprule").
Tabellenkopf auf erster Seite & & \\
\toprule
\endfirsthead
Der Befehl "\endfirsthead" zeigt LaTeX an, daß an dieser Stelle die Definition des Tabellenkopfes der ersten Seite endet. Alles, was darüber steht (und nicht zu einem anderen Befehl gehört), wird als Tabellenkopf der ersten Seite interpretiert. Im Beispiel besteht der Tabellenkopf der ersten Seite aus dem Text "Tabellenkopf auf erster Seite" in der ersten Spalte, einer leeren zweiten und dritten Spalte sowie einer Trennlinie ("\toprule").
Auch kann einen Tabellenfuß definieren, der nur auf der letzten Seite angezeigt wird:
\bottomrule
\caption{Unterschrift unter der Tabelle}
\endlastfoot
Das Beispiel zeigt auch schon die praktische Anwendung dieser Anweisung: Will man unter die Tabelle eine Unterschrift setzen, dann will man das nicht unter jede Seite machen sondern erst am Ende der Tabelle auf der letzten Seite. Setzt man den "\caption"-Befehl unter die letzte Tabellenzeile, dann wird diese Unterschrift nicht unter die Tabelle gesetzt sondern als letzte Tabellenzeile interpretiert: tabelle5.pdf
Will man also eine Unterschrift unter die Tabelle setzen, muß man diese durch den "\endlastfoot"-Befehl definieren. Im Beispiel wird als erstes eine Trennlinie unter die Tabelle gesetzt ("\bottomrule") und anschließend mit "\caption" der Text "Unterschrift unter der Tabelle". Durch den Befehl "\endlastfoot" zeigen wir LaTeX an, daß an dieser Stelle die Definition des Tabellenfußes der letzten Seite endet: tabelle6.pdf
So sieht der Code der Tabelle aus:
\begin{longtable}{ccc}
Überschrift Spalte 1 & Überschrift Spalte 2 & Überschrift Spalte 3\\
\toprule
\endhead
& Tabellenfuß auf allen Seiten & \\
\bottomrule
\endfoot
\bottomrule
\caption{Unterschrift unter der Tabelle}
\endlastfoot
Inhalt 1 & Inhalt 2 & Inhalt 3\\
Inhalt 1 & Inhalt 2 & Inhalt 3\\
:
:
:
Inhalt 1 & Inhalt 2 & Inhalt 3\\
Inhalt 1 & Inhalt 2 & Inhalt 3
\label{kapitel:tabelle1}
\end{longtable}
Stand: 19.12.2014