2023-11-18 01:26:09 +01:00

5.2 KiB
Raw Blame History

@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.

@preview {.thin-padding}

@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, \midrule und \bottomrule strukturieren die Tabelle.

@preview {.thin-padding}

@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.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:

\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 die tabular-Umgebung und die table-Umgebung.
  • Titel und Label können deshalb direkt unter dem Tabelleninhalt stehen.
  • Sofern das Paket booktabs eingebunden ist, stehen seine Features auch in longtable zur 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}

🔗 Dokumentation zu Booktabs

@preview {.thin-padding}