LaTeX Tabellen

LaTeX Tabellen

Tabellen in LaTeX sind ein sehr umfangreiches Thema, da es neben den Standard Umgebungen für das Erstellen von Tabellen wie zum Beispiel tabular, um nur eine davon zu nennen, viele zusätzliche Pakete mit neuen Umgebungen beziehungsweise mit Anpassungen für die Standard Umgebungen gibt. Was insbesondere am Anfang etwas verwirrend ist, da es scheinbar für jedes Teilproblem ein eigenes Paket gibt. Daher war früher bereits der Satz einer Tabelle an sich ein Problem, das hat sich aber mit dem Aufkommen von zahlreichen Tabellengeneratoren für LaTeX Tabellen deutlich verbessert, sodass Sie heutzutage eher die Qual der Wahl in Bezug darauf welchen Generator Sie verwenden möchten, und das Setzen der Tabelle als solcher weniger das Problem darstellt.

Da es bereits viele Einführungen zum Thema Tabellen gibt, wird dieser Bereich hier kurz gehalten. Der Schwerpunkt liegt auf den Problemen, die sich in der Praxis ergeben und für die es zumindest zurzeit noch keine automatisierten beziehungsweise vollständige Lösungen gibt.

Einführung
Einfache LaTeX Tabellen
Zellen zusammenfassen
Spalten zusammenfassen
Tabellen einfärben
Tabellen platzieren
Tabellen Fragen
Zeilenhöhe einer Tabelle ändern
Tabelle zentrieren
Zeilenumbruch in einer Zelle
Feste Spaltenbreiten definieren
Zwei Tabellen nebeneinander
Tabelle querformat
Schriftgröße in einer Tabelle ändern

Einfache LaTeX Tabellen

Die nachfolgende Beispieltabelle zeigt bereits die meisten der Standard Parameter und Befehle, die für den Satz einer Tabelle möglich sind.

\documentclass[margin=10pt]{standalone}
%...
\begin{document}
%...
\begin{tabular}{|l|c|r|p{1.5 cm}|}
\hline
left & center & right & Breite \\
l & c & r & p \\
\hline
\end{tabular}
%...
\end{document}

Mit der folgenden Ausgabe.

Mithilfe der tabular Umgebung können Tabellen gesetzt werden. Diese Umgebung hat ein verpflichtendes Argument, die Definition der Spalten. Hier werden vier verschiedene Varianten verwendet, das kleine l (nicht mit einer 1 zu verwechseln) erzeugt eine linksbündige Spalte, das kleine c eine zentrierte und das kleine r eine rechtsbündige Spalte. Die Breite der Spalten wird dabei durch die breiteste Zelle in der Spalte festgelegt. Das kleine p erzeugt eine linksbündige Spalte, deren Breite hier 1,5 cm beträgt. Die vertikalen Striche | im Argument von tabular sorgen dafür, dass die Tabelle an diesen Stellen vertikale Striche über die gesamte Höhe der Tabelle hat. Der \hline Befehl sorgt für die horizontalen Striche. Die einzelnen Zellen innerhalb einer Tabellenzeile werden durch die & Symbole voneinander getrennt. Die Tabellenzeile wird mit \\ beendet. Die Gesamtbreite der Tabelle ergibt sich, vereinfacht formuliert, aus der Summe der Breiten der einzelnen Spalten. Im Fall, dass Sie mehr Spalten in einer Zeile verwenden, wie Sie definiert haben, erhalten Sie eine Fehlermeldung.

Zellen Zusammenfassen

Mit dem \multicolumn Befehl lassen sich mehrere nebeneinander liegenden Zellen in einer Tabellenzeile zu einer neuen Zelle zusammenfassen. Diese neue Zelle kann eine neue Textausrichtung besitzen. Der Befehl ist dabei wie folgt aufgebaut \multicolumn{Anzahl der Zellen}{Ausrichtung der neuen Zelle}{Inhalt der neuen Zelle}. Das nachfolgende Beispiel illustriert das Vorgehen.

\documentclass[margin=10pt]{standalone}
%...
\begin{document}
%...
\begin{tabular}{|c|c|c|l|r|}
\hline
1 & 2 & 3 & 4 & 5 \\
\hline
\multicolumn{3}{|r|}{test} & A & B \\
\hline
1 & 2 & 3 & 4 & 5 \\
\hline
\end{tabular}
%...
\end{document}

Mit der folgenden Ausgabe.

Mit dem \multirow Befehl aus dem gleichnamigen multirow Paket lassen sich mehrere übereinander stehende Zellen in einer Tabellenspalte zu einer neuen Zelle zusammenfassen. Der Befehl ist dabei wie folgt aufgebaut \multirow{Anzahl der Zeilen}{Breite der Spalte}{Inhalt der neuen Zelle}. Auch hier wird das Vorgehen durch ein Beispiel illustriert.

\documentclass[margin=10pt]{standalone}
%...
\usepackage{multirow}
%...
\begin{document}
%...
\begin{tabular}{|l|l|l|}
\hline
Teacher & Title & Year \\
\hline
\hline
\multirow{3}{*}{Dave Miller} & First steps \LaTeX{} & 2004 \\
 & \LaTeX{} course & 2005 \\
 & \LaTeX{} seminar & 2009 \\
\hline
\end{tabular}
%...
\end{document}

Mit der folgenden Ausgabe.

Die zwei gezeigten Befehle \multicolumn und \multirow können auch kombiniert werden. Dabei ist lediglich auf die Reihenfolge zu achten, dass sich der multirow Befehl innerhalb des multicolumn Befehls befindet, wie im nachfolgenden Beispiel gezeigt wird.

\documentclass[margin=10pt]{standalone}
%...
\usepackage{multirow}
%...
\begin{document}
%...
\begin{tabular}{|ccc|c|}
\hline
BBB & CCC & DDD & AAA\\
\hline
\multicolumn{3}{|c|}{\multirow{2}{*}{multicolumn \& multirow}}& 
AAA \\ \cline{4-4}
& & & AAA \\
\hline
BBB & CCC & DDD & AAA\\
\hline
\end{tabular}
%...
\end{document}

Mit der folgenden Ausgabe.

Bunte Tabellen

Mithilfe des xcolor Paketes lassen sich Spalten columncolor, Zeilen rowcolor und einzelnen Zellen cellcolor in einer Tabelle einfärben. Die Nutzung setzt voraus, dass die Option table beim xcolor Paket gesetzt wird. Nachfolgend ein entsprechendes Beispiel.

\documentclass[margin=10pt]{standalone}
%...
\usepackage[table]{xcolor}
%...
\begin{document}
%...
\begin{tabular}{r>{\columncolor{red}}cl}
\cellcolor{blue}A & B & C \\
1 & 2 & 3 \\
\rowcolor{green}A & B & C \\
1 & 2 & 3 \\
\end{tabular}
%...
\end{document}

Mit der folgenden Ausgabe.

Tabellen platzieren und beschriften

Um eine Tabelle platzieren zu können, wird diese innerhalb einer table Umgebung gesetzt. Dadurch wird die Tabelle zu einem Gleitobjekt (engl. float) und dieses kann dann platziert und beschriftet werden. Dies wird in den zwei Posts table und floats genauer behandelt.

Top Tabellen Fragen

Im nachfolgenden Abschnitt werden die typischen Fragen aus dem Bereich der Tabellen gezeigt und mögliche Lösungsansätze für die jeweiligen Problemstellungen gezeigt. Es kann durchaus sein, dass es (inzwischen) bessere Lösungen gibt.

Zeilenhöhe einer Tabelle ändern

Wenn sie die Höhe aller Zeilen einer bestimmten Tabelle ändern möchten, so reicht es das Kommando \renewcommand{\arraystretch}{Faktor} vor dieser Tabelle zu verwenden. Sollen die Zeilen doppelt so hoch sein wie normal \renewcommand{\arraystretch}{2} und wenn sie nur halb so groß wie normal seien sollen \renewcommand{\arraystretch}{0.5}. Bei der Verwendung von arraystretch sollten Sie darauf achten nach der Tabelle den arraystretch wieder auf 1 zu stellen, da sich sonst die gewählte Einstellung auf alle nachfolgenden Tabellen und Arrays aus wirkt. Dies wird mit \renewcommand{\arraystretch}{1} verhindert.

Im Fall, dass Sie nur die Höhe einer Zeile vergrößern möchten, gibt es die Möglichkeit den \rule Befehl mit Breite null und der gewünschten Höhe zu verwenden, zum Beispiel \rule{0pt}{25pt} sorgt in der Zeile für eine Höhe von 25 Punkten. Das Verhalten wird im nachfolgenden Beispiel gezeigt.

\documentclass[margin=10pt]{standalone}
%...
\begin{document}
%...
\begin{tabular}{|r|c|l|}
\hline
A & B & C \\
\hline 
\rule{0pt}{25pt}1111 1111 1111 & 2222 2222 2222 & 3333 3333 3333 \\
\hline
4 & 5 & 6 \\
\hline
7 & 8 & 9 \\
\hline
\end{tabular}
%...
\end{document}

Mit der folgenden Ausgabe.

Tabelle zentrieren

Wenn Sie eine Tabelle zentrieren möchten, können Sie die center Umgebung verwenden.

\documentclass{article}
%...
\begin{document}
%...
Dieser Text ist nur sinnloser Text. 
Und hat auch nichts mit dem Problem zu tun.
\begin{center}
\begin{tabular}{|l|c|r|p{1.5 cm}|}
\hline
left & center & right & Breite \\
l & c & r & p \\
\hline
\end{tabular}
\end{center}
Er dient nur dazu, das Beispiel zu veranschaulichen.

\end{document}

Mit der folgenden Ausgabe.

Im Fall, dass Sie die Tabelle innerhalb einer table Umgebung setzen, können Sie den Befehl \centering nutzen.

\documentclass{article}
%...
\begin{document}
%...
Dieser Text ist nur sinnloser Text. 
Und hat auch nichts mit dem Problem zu tun.
\begin{table}
\centering
\begin{tabular}{|l|c|r|p{1.5 cm}|}
\hline
left & center & right & Breite \\
l & c & r & p \\
\hline
\end{tabular}
\end{table}
Er dient nur dazu, das Beispiel zu veranschaulichen.
%...
\end{document}

Mit der folgenden Ausgabe.

Tabelle Spaltenbreite definieren

Spalten mit festen Breiten definieren. Zwar gibt es im LaTeX Standard mit der p Spalte eine Spalte, bei der die Breite vorgegeben werden kann, aber die Ausrichtung kann nicht verändert werden. Im Fall, dass nur linksbündige Spalten mit fester Breite benötigt werden, stellt das bereits die Lösung dar. Im nachfolgenden Beispiel sind drei Spalten mit einer definierten Breite gesetzt.

\documentclass[margin=10pt]{standalone}
%...
\begin{document}
%...
\begin{tabular}{|p{1cm}|p{2cm}|p{3cm}|}
\hline
1 cm breit & 2 cm breit & 3 cm breit\\
\hline
Test 1 & Test 2 & Test 3 \\
\hline
\end{tabular}
%...
\end{document}

Mit der folgenden Ausgabe.

Im Fall, dass Sie Spalten mit einer anderen Ausrichtung benötigen, erfordert das etwas mehr Aufwand und die Verwendung zweier zusätzlicher Pakete dem tabularx und ragged2e Paket. Wenn die entsprechenden Spaltentypen, wie im nachfolgenden Beispiel gezeigt werden, definiert werden, sind dann Spalten in allen vier Ausrichtungen, linksbündig, zentriert, rechtsbündig und im Blocksatz, möglich.

\documentclass[margin=10pt]{standalone}
%...
\usepackage{tabularx}
\usepackage{ragged2e}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}}
\newcolumntype{J}[1]{>{\justifying\arraybackslash}p{#1}}
%...
\begin{document}
%...
\begin{tabular}{|L{1cm}|C{2cm}|R{3cm}|J{4cm}|}
\hline
1 cm breit & 2 cm breit & 3 cm breit & 4 cm breit\\
\hline
Test 1 & Test 2 & Test 3 & Test 4\\
\hline
\end{tabular}
%...
\end{document}

Mit der folgenden Ausgabe.

Zwei Tabellen nebeneinander

Um zwei Tabellen nebeneinander zu setzen, kann eine dritte Tabelle verwendet werden.

\documentclass[margin=10pt]{standalone}
%...
\begin{document}
%...
\begin{tabular}{ll}
\begin{tabular}{|r|c|l|}
\hline
1 & 2 & 3 \\
\hline
A & B & C \\
\hline
1 & 2 & 3 \\
\hline
\end{tabular}
& 
\begin{tabular}{cccc}
I & II & III & IV \\
\hline
AA & BB & CC & DD \\
\end{tabular}
\end{tabular}
%...
\end{document}

Mit der folgenden Ausgabe.

Daneben gibt es noch die Möglichkeit, die Tabellen mithilfe der minipage Umgebung nebeneinander zu platzieren, beziehungsweise die subtable Umgebung des subcaption Paketes zu nutzen.

\documentclass[margin=10pt]{standalone}
%...
\begin{document}
%...
\begin{minipage}{0.4\textwidth}
\begin{tabular}{|r|c|l|}
\hline
1 & 2 & 3 \\
\hline
A & B & C \\
\hline
1 & 2 & 3 \\
\hline
\end{tabular}
\end{minipage}
\begin{minipage}{0.5\textwidth}
\begin{tabular}{cccc}
I & II & III & IV \\
\hline
AA & BB & CC & DD \\
\end{tabular}
\end{minipage}
%...
\end{document}

Mit der folgenden Ausgabe.

\documentclass{article}
%...
\usepackage{subcaption}
%...
\begin{document}
%...
\begin{table}
\begin{subtable}[c]{0.5\textwidth}
\begin{tabular}{|r|c|l|}
\hline
1 & 2 & 3 \\
\hline
A & B & C \\
\hline
1 & 2 & 3 \\
\hline
\end{tabular}
\end{subtable}
\begin{subtable}[c]{0.5\textwidth}
\begin{tabular}{cccc}
I & II & III & IV \\
\hline
AA & BB & CC & DD \\
\end{tabular}
\end{subtable}
\end{table}
\end{document}

Mit der folgenden Ausgabe.

Tabelle querformat

Tabellen können mithilfe der landscape Umgebung aus dem pdflscape Paket im Querformat gesetzt werden.

\documentclass{article}
%...
\usepackage{pdflscape}
%...
\begin{document}
%...
\begin{landscape}
Jetzt wird alles querkant ausgerichtet, auch die folgende Tabelle.\par
\begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|c|}
\hline 
Jahr & 2000 & 2001 & 2002 & 2003 & 2004 & 2005 & 2006 & 2007 & 2008 & 2009 & 2010 \\
\hline 
BIP & 23{,}5 Mrd &  123{,}5 Mrd & 223{,}5 Mrd& 323{,}5 Mrd & 423{,}5 Mrd  & 523{,}5 Mrd & 623{,}5 Mrd & 723{,}5 Mrd& 823{,}5 Mrd & 923{,}5 Mrd & 1023{,}5 Mrd  \\
\hline 
\end{tabular}
\end{landscape}
%...
Ab hier ist das Dokument wieder hochkant.
\end{document}

Schriftgröße in einer Tabellen

Die Schriftgröße einer Tabelle kann über die Schriftgrößen Umgebungen beeinflusst werden, daneben steht auch die Möglichkeit zur Verfügung, die Schriftgröße in einer einzelnen Spalte zu verändern.

Das erste Beispiel zeigt eine Tabelle in extra groß.

\documentclass[margin=10pt]{standalone}
%...
\begin{document}
%...
\begin{Large}
\begin{tabular}{|r|c|l|}
\hline
AAA & BBB & CCC \\
\hline
111 & 222 & 333 \\
\hline
\end{tabular}
\end{Large}
%...
\end{document}

Mit der folgenden Ausgabe.

Das zweite Beispiel zeigt, wie mithilfe des array Paketes eine Spalte in ihrer Schriftgröße beeinflusst wird.

\documentclass[margin=10pt]{standalone}
%...
\usepackage{array}
%...
\begin{document}
%...
\begin{tabular}{rc>{\tiny}b{2cm}}
\hline
A & B & {\normalsize C} \\
\hline 
1 & 2 & 3 \\
\hline
4 & 5 & 6 \\
\hline
7 & 8 & 9 \\
\hline
\end{tabular}
%...
\end{document}

Mit der folgenden Ausgabe.


Beitrag veröffentlicht

in

von

Schlagwörter: