7.7 KiB
@slide(layout=chapter-slide)
@number 9
@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>]
\caption{<tabellenüberschrift>}
\begin{tabular}{<spaltendefinition>}
% Tabelleninhalt
\end{tabular}
\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]
\caption{Bekannte Programmiersprachen}
\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}
\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 9
@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>}
\caption{<tabellenüberschrift>}
\label{<label>}
% Tabelleninhalt
\end{longtable}
@slide(layout=extra-content-only)
@title
Hinweise zu longtable
@content
\begin{longtable}{<spaltendefinition>}
\caption{<tabellenüberschrift>}
\label{<label>}
% Tabelleninhalt
\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 Eine Tabelle einfärben
@content
\usepackage[table]{xcolor}
\begin{tabular}{lll}
\toprule
Eine & \cellcolor{yellow}gelbe & Zelle \\
Ein & \cellcolor{yellow!25}helleres & Gelb \\
\rowcolor[HTML]{FFDE21}
Eine & gelbe & Zeile \\
\bottomrule
\end{tabular}
- Mit
\cellcolorfärbt man einzelne Zellen ein. - Mit
\rowcolorfärbt man ganze Zeilen ein. - Farben können mit Namen, Prozentwerten (z. B.
yellow!25) oder Hex-Codes ([HTML]{...}) angegeben werden.
@slide(layout=extra-content-and-preview)
@title Zellen verbinden
@content
\begin{tabular}{lll}
\toprule
Tier & Futter & Größe \\
\midrule
Pferd & Heu & groß \\
Frosch & Fliegen & klein \\
Fooboar & \multicolumn{2}{c}{unbekannt} \\
\bottomrule
\end{tabular}
\multicolumn{2}{c}{...}verbindet zwei Spalten zu einer.- Das zweite Argument legt die Ausrichtung (und Ränder) fest.
@slide(layout=extra-content-and-preview)
@title Zeilenumbruch in einer Zelle
@content
\usepackage{makecell}
\begin{tabular}{ll}
\toprule
Name & Beschreibung \\
\midrule
Katze & \makecell[l]{klein \\ schläft gerne} \\
Hund & \makecell[l]{treu \\ braucht Spaziergänge} \\
\bottomrule
\end{tabular}
- Standardmäßig zentriert
\makecellden Inhalt. - Mit
\makecell[l]{Inhalt}kann man ihn linksbündig ausrichten.
@slide(layout=extra-content-and-preview)
@title Feste Spaltenbreite
@content
Die Spalte p{4cm} bricht den Text automatisch auf 4cm Breite um.
\begin{tabular}{lp{4cm}}
\toprule
Gegenstand & Beschreibung \\
\midrule
Stuhl & Vier Beine, eine Fläche \\
Tisch & Wie ein Stuhl, aber anders \\
\bottomrule
\end{tabular}
@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}
@slide(layout=extra-content-only)
@title Weitere Ressourcen
@content
- Für Hinweise zur Formatierung von Tabellen – z. B. was linksbündig sein sollte, wie Spalten zu beschriften sind und wann Rahmenlinien sinnvoll sind – hilft der APA Style Guide weiter:
- Das Paket
booktabsbietet Befehle für hochwertige Tabellen:
