Tabellen
Contents
1.6. Tabellen#
Zugegeben, Tabellen sind nicht so einfach zu erstellen in LaTeX. Es ist weniger die Schwierigkeit, als mehr der Aufwand, den sie beim erstellen erzeugen.
1.6.1. Tabellenlayout#
Wir starten mit einer einfachen 2 x 4 Tabelle. Dazu verwenden wir als äußere Klammer die table
-Umgebung. Innerhalb dieser kann mit \centering
die Tabelle zentriert werden. Der Inhalt der Tabelle wird im Inneren der table
-Umgebung mittels der tabular
-Umgebung definiert.
Bei der Definition der tabular
-Umgebung werden die Spalten und die Ausrichtung erstellt:
l
- linksr
- rechtsc
- mittig
Für den ersten Fall mit zwei mittig zentrieren Spalten sieht es dann so aus: \begin{tabular}{ c c }
Die gesamte Tabelle würde dann so aussehen:
Für eine 3x3 Tabelle sieht es dann so aus:
Mit |
zwischen den Spaltenausrichtungen können vertikale Linien eingefügt werden:
Mit \hline
können horizontale Linien eingefügt werden:
Um ein Tabellenheader einzufügen könnte man z.B. die Schrift mit \textbf{}
fett drucken um diese hervorzuheben:
1.6.2. Tabellenüberschrift & Verweise#
Analog wie bei Abbildungen können mit \label{name}
und \ref{name}
auf Tabellennummern verwiesen werden. Mit \caption{Tabellenüberschrift}
kann die Tabellenüberschrift erstellt werden.
\begin{table}
\centering
\caption{Meine erste eigene Tabelle}
\label{tab:erste_Tabelle}
\begin{tabular}{|c|c|c|}
\hline
\textbf{Header1} &
\textbf{Header2} &
\textbf{Header3} \\
\hline
Zelle1 & Zelle2 & Zelle3 \\
\hline
Zelle4 & Zelle5 & Zelle6 \\
\hline
Zelle7 & Zelle8 & Zelle9 \\
\hline
\end{tabular}
\end{table}
1.6.3. Tabellenposition#
Analog zu Abbildungen kann man LaTeX mit der Positionsangabe [!h]
anschließend an \begin{table}
die Positionswünsche übermitteln. Möglich sind:
- `h` - here - bitte versuche es genau an dieser Textstelle
- `t` - top - wenn möglich an Oberkante der Seite
- `b` - bottom - wenn möglich, an Unterkante der Seite
- `p` - page - nutze eine extra Seite für die Bilder
- Mit dem `!` erhöht man die Priorität seiner Forderung, man "zwingt" LaTeX zur Umsetzung.
1.6.4. komplexere Tabelle mit zusätzlichen Paketen#
Um komplexere Tabellen zu erzeugen sind zusätzliche Pakete wie booktabs
, multirow
und makecell
notwendig. Nachfolgend wir dies an einem Beispiel dargestellt:

\documentclass{scrreprt}
\begin{document}
\begin{table}
\begin{tabular}{lcccc}
\hline
Name & Header1 & Header2 & Header3 & Header4 \\
\hline
Name A & text text text & text text & text text & text text \\
Name B & text text & text text & text text text & text text \\
\hline
\end{tabular}
\end{table}
\end{document}
Ausgangsbeispiel ohne weitere Pakete

\documentclass{scrreprt}
\usepackage{booktabs}
\begin{document}
\begin{table}
\begin{tabular}{@{} lcccc @{}}
\toprule
Name & Header1 & Header2 & Header3 & Header4 \\
\midrule
Name A & text text text & text text & text text & text text \\
Name B & text text & text text & text text text & text text \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
Verwendung des Pakets
booktabs
für\toprule
,\midrule
und\bottomrule
(verbesserte horizontale Linien)@{}
am Anfang und@{}
am Ende in\begin{tabular}{}
verkürzt die Tabelle links und rechts auf das nötigste

\documentclass{scrreprt}
\usepackage{booktabs}
\begin{document}
\begin{table}
\begin{tabular}{@{} lcccc @{}}
\toprule
\multicolumn{1}{c}{Name} & Header1 & Header2 & Header3 & Header4 \\
\midrule
Name A & text text text & text text & text text & text text \\
Name B & text text & text text & text text text & text text \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
\multicolumn{1}{c}{Name}
um die ÜberschriftName
zu zentrieren obwohl die Spalte eigentlich linksausgerichtet ist

\documentclass{scrreprt}
\usepackage{booktabs}
\begin{document}
\begin{table}
\begin{tabular}{@{} lcccc @{}}
\toprule
\multicolumn{1}{c}{Name} & \multicolumn{2}{c}{Overhead1} & \multicolumn{2}{c}{Overhead2} \\
& Header1 & Header2 & Header3 & Header4 \\
\midrule
Name A & text text text & text text & text text & text text \\
Name B & text text & text text & text text text & text text \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
\multicolumn{2}{c}{Text}
fasst zwei Spalten zusammen (in dem Beispiel für die Überschrift)

\documentclass{scrreprt}
\usepackage{booktabs, multirow}
\begin{document}
\begin{table}
\begin{tabular}{@{} lcccc @{}}
\toprule
\hfil\multirow{2}{*}{Name} & \multicolumn{2}{c}{Overhead1} & \multicolumn{2}{c}{Overhead2} \\
& Header1 & Header2 & Header3 & Header4 \\
\midrule
Name A & text text text & text text & text text & text text \\
Name B & text text & text text & text text text & text text \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
\multirow{2}{*}{Name}
zentriert Name vertikal in dem es zwei Zeilen zusammenfuegt (durch Paketmultirow
)\hfil
vor\multirow
sorgt dafür das Name horizontal wieder zentriert wird

\documentclass{scrreprt}
\usepackage{booktabs, multirow}
\begin{document}
\begin{table}
\begin{tabular}{@{} lcccc @{}}
\toprule
\hfil\multirow{2}{*}{\textbf{Name}} & \multicolumn{2}{c}{\textbf{Overhead1}} & \multicolumn{2}{c}{\textbf{Overhead2}} \\
& Header1 & Header2 & Header3 & Header4 \\
\midrule
Name A & text text text & text text & text text & text text \\
Name B & text text & text text & text text text & text text \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
mit
\textbf{}
kann die Überschrift zusätzlich hervorgehoben werden

\documentclass{scrreprt}
\usepackage{booktabs, multirow, makecell}
\begin{document}
\begin{table}
\begin{tabular}{@{} lcccc @{}}
\toprule
\hfil\multirow{2}{*}{\textbf{Name}} & \multicolumn{2}{c}{\textbf{Overhead1}} & \multicolumn{2}{c}{\textbf{Overhead2}} \\
& Header1 & Header2 & Header3 & Header4 \\
\midrule
Name A & \makecell[c]{text oben \\ text unten} & text text & text text & text text \\
Name B & text text & text text & text text text & text text \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
mit
\makecell[c]{text oben \\ text unten}
wurde ein Textumbruch innerhalb einer Zelle erzeugt (c=zentriert) (Paketmakecell
)
1.6.5. zu breite Tabellen#
Wenn Tabellen zu breit werden gibt es verschiede Möglichkeiten das Problem zu lösen:
Zeilenbreite festlegen mit
p{breite}
stattc
,l
oderr
in der Defintion der Tabelle, wie hier z.B.:\begin{tabular}{c|c|p{4cm}}
erstellt zwei Spalten zentriert (ohne Größenangabe) und eine Spalte mit 4cm BreiteManuellen Zeilumbruch mit dem Paket
makecell
z.B. so:\makecell[c]{text oben \\ text unten}
vertikale Linien zwischen Spalten entfernen mit
\tabcolsep=0.11cm
vor tabular UmgebungGesamte Schriftgröße skalieren durch folgende Befehle innerhalb vor tabular Umgebung:
\small
oder\footnotesize
1.6.6. Einheiten und Zahlenwerte in Tabellen#
In dem Abschnitt zur Verwendung von Einheiten gibt es Beispiel zur Verwendung von Einheiten und Zahlen in Tabellen mit dem Paket unitx
. Dabei werden die Zahlen automatisch gerundet und entsprechend dem Dezimantrenner ausgerichtet (Link).