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, \midrule und \bottomrule strukturieren 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 die tabular-Umgebung und die table-Umgebung.
  • Untertitel und Label können deshalb direkt unter dem Tabelleninhalt stehen.
  • Die Features von booktabs stehen auch in longtable zur Verfügung, sofern das Paket booktabs eingebunden 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}

🔗 Dokumentation zu Booktabs


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.