5.2 KiB
@slide(layout=chapter-slide)
@number 10
@title Tabellen
@slide(layout=content-only)
@title Grundstruktur 🗒️
@content
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.
@slide(layout=content-and-preview)
@title Spaltendefinitionen
@content
\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.
@slide(layout=content-and-preview)
@title Tabelleninhalt
@content
\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. - ++ Reihen werden durch ›
\\‹ beendet. - ++
\toprule,\midruleund\bottomrulestrukturieren die Tabelle.
@slide(layout=wide-content)
@title Die gesamte Tabelle
@content
\begin{table}[h]
\begin{tabular}{lrcl}
\toprule
Sprache & Autor & Erscheinungsjahr & Dateiendung \\
\midrule
C++ & Bjarne Stroustrup & 1985 & .cpp \\
Java & James Gosling & 1998 & .java \\
Python & Guido van Rossum & 1991 & .py \\
\bottomrule
\end{tabular}
\caption{Bekannte Programmiersprachen}
\end{table}
Mit `@{}` vor und nach einer Spaltendefinition wird der umgebende Weißraum unterdrückt.
`\begin{tabular}{@{}lrcl@{}}` beschränkt die Linien auf die Breite des Tabelleninhalts.
@slide(layout=content-only)
@title Mehr Komfort
@content Der Tables Generator ist ein wunderbares Werkzeug, um schnell Tabellen verschiedener Formate zu erstellen.
@slide(layout=task)
@task-number 10
@title Tabellen setzen
@content
- Die Liste in der Datei
exercises/tables/tables.texenthält Infos zu ein paar Lehrveranstaltung an der Fakultät WIAI. - Wandelt die Liste in eine Tabelle um.
- Die Tabelle soll Spalten für den Namen, das Kürzel und das Semester der Vorlesungen haben.
- Fügt außerdem eine zentrierte Spalte ganz links in der Tabelle hinzu, in der ihr die Lehrveranstaltungen nummeriert.
@slide(layout=extra-content-only)
@title Besonders lange Tabellen
@content
Tabellen, die über eine Seite hinaus gehen, werden von tabular einfach abgeschnitten. Die Lösung bietet hier das Paket longtable:
\usepackage{longtable}
\begin{longtable}{<spaltendefinition>}
% Tabelleninhalt
\caption{<tabellenunterschrift>}
\label{<label>}
\end{longtable}
@slide(layout=extra-content-only)
@title
Hinweise zu longtable
@content
\begin{longtable}{<spaltendefinition>}
% Tabelleninhalt
\caption{<tabellenunterschrift>}
\label{<label>}
\end{longtable}
- Die
longtable-Umgebung vereint dietabular-Umgebung und dietable-Umgebung. - Titel und Label können deshalb direkt unter dem Tabelleninhalt stehen.
- Sofern das Paket
booktabseingebunden ist, stehen seine Features auch inlongtablezur Verfügung.
@slide(layout=extra-content-only)
@title Besonders breite Tabellen
@content Sollte die Tabelle einmal zu breit für eine Seite werden, kann sie auch im Querformat dargestellt werden:
\usepackage{rotating}
\begin{sidewaystable}[<position>]
\begin{tabular}{<spaltendef.>}
% Tabelleninhalt
\end{tabular}
\end{sidewaystable}
@slide(layout=extra-content-and-preview)
@title Weiterführendes Beispiel
@content
\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}
