@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`.
``` {.hljs .lang-tex}
\usepackage{booktabs}
```
``` {.hljs .lang-tex}
\begin{table}[]
\begin{tabular}{}
% Tabelleninhalt
\end{tabular}
\caption{}
\end{table}
```
Die Positionierung erfolgt analog zu Grafiken.
@slide(layout=content-and-preview)
@title
Spaltendefinitionen
@content
``` {.hljs .lang-tex}
\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.
@preview
{.thin-padding}
@slide(layout=content-and-preview)
@title
Tabelleninhalt
@content
``` {.hljs .lang-tex}
\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`, `\midrule` und `\bottomrule` strukturieren die Tabelle.
@preview
{.thin-padding}
@slide(layout=wide-content)
@title
Die gesamte Tabelle
@content
``` {.hljs .lang-tex}
\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](https://tablesgenerator.com/) ist ein wunderbares Werkzeug, um schnell Tabellen verschiedener Formate zu erstellen.
[](https://tablesgenerator.com/)
@slide(layout=task)
@task-number
10
@title
Tabellen setzen
@content
* Die Liste in der Datei `exercises/tables/tables.tex` enthä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`:
``` {.hljs .lang-tex}
\usepackage{longtable}
```
``` {.hljs .lang-tex}
\begin{longtable}{}
% Tabelleninhalt
\caption{}
\label{