7.3 KiB
🗒️
Tabellen
Grundstruktur
Für typografisch schöne Tabellen nutzen wir das Paket booktabs.
\usepackage{booktabs}
\begin{table}[<position>]
\begin{tabular}{<spaltendefinition>}
% Tabelleninhalt
\end{tabular}
\caption{<tabellenunterschrift>}
\end{table}
Die Positionierung erfolgt analog zu Grafiken.
Spaltendefinitionen
\begin{tabular}{lrcl}
% Tabelleninhalt
\end{tabular}
| Kürzel | Bedeutung |
|---|---|
| l | linksbündige Spalte |
| c | zentrierte Spalte |
| r | rechtsbündige Spalte |
Vertikale Trennlinien und doppelte horizontale Linien sind unter Typograph\*innen nicht gern gesehen und sollten vermieden werden.
Tabelleninhalt
\begin{tabular}{lll}
\toprule
Spalte 1 & Spalte 2 & Spalte 3 \\\\
\midrule
Inhalt a & Inhalt b & Inhalt c \\\\
Inhalt e & Inhalt f & Inhalt g \\\\
Inhalt i & Inhalt j & Inhalt k \\\\
\bottomrule
\end{tabular}
- Zellen werden durch
&abgetrennt. - Zeilen werden durch zwei Backslashes beendet.
\toprule,\midruleund\bottomrulestrukturieren die Tabelle.
Die gesamte Tabelle
\begin{table}[h]
\begin{tabular}{lrcl} \toprule
Sprache & Autor & Erscheinungsjahr & Aktuelle Version \\\\
\midrule
C++ & Bjarne Stroustrup & 1985 & ISO/IEC 14882:2017 \\\\
Java & James Gosling & 1998 & 12.0.1 \\\\
Python & Guido van Rossum & 1991 & 3.7.3 \\\\
\bottomrule
\end{tabular}
\caption{Bekannte Programmiersprachen}
\end{table}
Durch @{} vor und nach der Spaltendefinition werden die horizontalen Linien auf die Breite des Textes beschränkt.
Beispiel: \begin{tabular}{@{}lrcl@{}}
Besonders lange Tabellen
Tabellen, die über mehrere Seiten gehen, werden von tabular einfach abgeschnitten. Die Lösung bietet hier das Paket longtable:
\usepackage{longtable}
\begin{longtable}{lll}
% Tabelleninhalt
\caption{<untertitel>}
\label{<label>}
\end{longtable}
Hinweise zu longtable
\begin{longtable}{lll}
% Tabelleninhalt
\caption{<untertitel>}
\label{<label>}
\end{longtable}
- Die
longtable-Umgebung vereint dietabular-Umgebung und dietable-Umgebung. - Untertitel und Label können deshalb direkt unter dem Tabelleninhalt stehen.
- Die Features von
booktabsstehen auch inlongtablezur Verfügung, sofern das Paketbooktabseingebunden ist.
Besonders breite Tabellen
Sollte die Tabelle einmal zu breit für eine Seite werden, können einzelne Seiten auch im Querformat dargestellt werden:
\usepackage{lscape}
\begin{landscape}
\begin{table}[h]
\begin{tabular}{lll}
% Tabelleninhalt
\end{tabular}
\end{table}
\end{landscape}
Weiterführendes Beispiel
\begin{table}[h]
\begin{tabular}{llr}
\toprule
Struktur & \multicolumn{2}{l}{Zeitkomplexität für Zugriff} \\ \cmidrule(r){2-3}
& Average & Worst \\
\midrule
Stack & $\mathcal{O}(n)$ & $\mathcal{O}(n)$ \\
Binärbaum & $\mathcal{O}(log(n))$ & $\mathcal{O}(log(n))$ \\
AVL-Baum & $\mathcal{O}(log(n))$ & $\mathcal{O}(log(n))$ \\
\bottomrule
\end{tabular}
\end{table}
Vereinfachung
Der Tables Generator ist ein wunderbares Werkzeug, um schnell Tabellen verschiedener Formate zu erstellen.
Tabellen setzen
- Tabelle 6 in Abschnitt 7 veranschaulicht die vordefinierten Schriftgrade. Fügt eine zusätzliche **rechtsbündige Spalte** ein, in der ihr die Schriftgrößen durchnummeriert.
- Fügt außerdem eine **Überschriftenzeile** ein, die ihr per `\midrule` vom Rest der Tabelle trennt. Die Spaltenüberschriften können zum Beispiel »Nr.«, »Befehl« und »Beispiel« heißen.