AA_123rf-31921230_YanaGayvoronskaya-123RF.jpg

© Yana Gayvoronskaya, 123RF

Anspruchsvolle Tabellen mit LaTeX gestalten

Tafelfertig

Die LaTeX-Grundausstattung erlaubt nur das Setzen recht schlichter Tabellen. Mit einigen Zusatzpaketen bohren Sie die Funktionen für professionell gestaltete Tabellen kräftig auf.

LaTeX setzt nicht nur Ihre Texte in ansprechendem Layout, sondern bringt auch Daten und Inhalte in Tabellen übersichtlich und ansprechend in Form. Die LaTeX-Grundausstattung bringt die Umgebung tabular mit, die für grundlegende Tabellenfunktionen alles Nötige bereitstellt. Wer weitere Pakete installiert, dem liefert LaTeX noch mehr Möglichkeiten für den professionellen Einsatz von Tabellen.

Aus der Vielzahl der verfügbaren Pakete stellen wir Ihnen im Rahmen des Artikels folgende vor: Das Paket booktabs [1] optimiert Ihre Tabellen für den Druck. Wer es farbig will, liegt mit dem Paket colortbl [2] genau richtig. Das Paket multirow [3] erlaubt es, Zellen einer Spalte zu verbinden. Wer die Funktionen einer Tabellenkalkulation braucht, findet mit dem Paket spreadtab [4], was er sucht. Viele weitere Möglichkeiten für den Umgang mit Tabellen bringt das Paket tabu [5] mit.

Beispiel-Listings

Der Umfang der vollständigen LaTeX-Beispiele würde den Rahmen des Artikels sprengen, in den Listing-Kästen finden Sie daher nur die im Artikel referenzierten Passagen. Die ungekürzten Beispiele finden Sie in unserem Download-Bereich [14].

Die Möglichkeiten, die LaTeX für den Tabellensatz bietet, erläutern wir im Folgenden am Beispiel eines Stundenplans und einer Rechnung. Listing 1 enthält den Beispielcode für den Stundenplan, Abbildung 1 zeigt das Ergebnis. Den Code für die Rechnung finden Sie in Listing 2, das Ergebnis in Abbildung 2.

Listing 1

...
\usepackage{tabu,multirow,hyperref,colortbl,xcolor}
...
\title{Stundenplan}
\author{}
\date{WS 2014/2015}
...
\begin{document}
\maketitle
...
\newcommand{\minitab}[2][c]{\begin{tabular}{#1}#2\end{tabular}}
\begin{tabu}{|>{\columncolor[named]{lightgray}}c|X[l]X[r]|X[l]X[r]|X[l]X[r]|X[l]X[r]|X[l]X[r]|}
...
\rowcolor[named]{gray}
\textsf{\textbf{Zeit}} & \multicolumn{2}{c|}{\textsf{\textbf{Montag}}} & ... \\
...
\multirow{-2}*{\minitab[c]{\textsf{\textbf{10--12}}}} & \multicolumn{2}{c|}17 {\cellcolor[named]{green}\textbf{VL Ethik}} & ... \\
\hline
...
\multirow{-2}*{...} & ... & \multicolumn{2}{c|}{\cellcolor[named]{blue}\textbf{HS Wahrheitstheorien}\footnote{14-tägig.}} & & & & \\
...
\end{tabu}
\end{document}
Abbildung 1: Dieser Stundenplan ist ein Beispiel für die Möglichkeiten, die der Tabellensatz mit LaTeX bietet.

Gerüst aufstellen

Statt der LaTeX-Standardumgebung tabular für Tabellen verwenden Sie das Paket tabu (Listing 1, Zeile 2), das eine Vielzahl von Möglichkeiten für das Gestalten von Tabellen mitbringt. Nach den Titelinformationen in der Präambel (Zeilen 4 bis 6) und dem Befehl, der diese Titelinformationen im Dokument ausgibt (Zeile 9), kann es mit der Tabelle losgehen.

Die Tabelle steht in der tabu-Umgebung (Zeile 12). Die zweite der geschweiften Klammern des Befehls definiert elf Spalten, der senkrechte Strich | zeichnet eine vertikale Linie an der entsprechenden Stelle. Die Zellen der ersten Spalte lassen Sie zentriert ausrichten. Neben den üblichen Befehlen zum Ausrichten der Zellen stellt tabu noch den Befehl X bereit, der die so gekennzeichneten Spalten gleichmäßig über die Breite verteilt. Die Ausrichtung geben Sie in einer eckigen Klammer dahinter an, hier abwechselnd links- und rechtsbündig.

Überlänge

Sowohl die LaTeX-Standard-Umgebung tabular, als auch tabu erzeugen nur Tabellen ohne Seitenumbruch. Soll die Tabelle über mehrere Seiten laufen, dann verwenden Sie stattdessen am besten die Umgebung longtabu, die einen integralen Teil des tabu-Pakets darstellt.

Unser Stundenplan erfordert für die Uhrzeiten in der ersten Spalte jeweils zwei miteinander verbundene übereinanderliegende Zellen. Dies erledigt auch in einer tabu-Tabelle das Paket multirow. Zunächst definieren Sie dazu den neuen Befehl \minitab (Zeile 11), mit dessen Hilfe Sie dann später eine Tabelle innerhalb einer Tabelle generieren.

Übereinanderliegende Zellen verbindet der Befehl \multirow (Zeile 17). Üblicherweise steht er in der obersten der Zellen, die verbunden werden sollen; die Anzahl der Zellen geben Sie als positive Zahl innerhalb der ersten geschweiften Klammer an. Im Beispiel gehen wir umgekehrt vor, um die Zellen einfärben zu können, ohne dass dies den Text überdeckt. Der Befehl steht in der untersten der zu verbindenden Zellen, und die Anzahl der Zellen nach oben hin tragen Sie als negativen Wert in die erste geschweifte Klammer ein.

In der Titelzeile verbinden Sie für die einzelnen Wochentage horizontal jeweils zwei Zellen (Zeile 15). Dafür kommt der Befehl \multicolumn zum Einsatz, in dessen erste geschweifte Klammer die Anzahl der zu verbindenden Zellen definiert wird. Die Ausrichtung der Zellen einschließlich der zu zeichnenden vertikalen Linien gehört in die zweite der geschweiften Klammern, der Inhalt dann in die dritte.

Wie bei Tabellen üblich trennt auch in tabu ein Kaufmannsund (&) die einzelnen Zellen einer Spalte voneinander ab. Der doppelte umgekehrte Schrägstrich (\\) dient dazu, eine Zeile abzuschließen. Horizontale Linien zeichnen Sie wie gewohnt mit dem Befehl \hline.

Für die LaTeX-Standard-Umgebung tabular stellen Fußnoten und deren korrekte Verlinkung innerhalb von Tabellen ein gewisses Problem dar, das sich nur durch Tricks umgehen lässt. In tabu dagegen funktionieren Fußnoten problemlos (Zeile 20). Laden Sie wie in Zeile 2 zusätzlich das Paket hyperref [6], dann klappen auch Verlinkungen.

Farbenfroh

Tabellen müssen nicht nur aus schwarzen Linien bestehen. Möchten Sie ein wenig Farbe ins Spiel bringen, dann liegen Sie mit dem Paket colortbl genau richtig (Listing 1, Zeile 2). Das Paket lädt seinerseits automatisch das Paket color, das rudimentäre Funktionen für den Einsatz von Farben bereitstellt. Wenn Sie auf umfangreichere Möglichkeiten für den Umgang mit Farben nicht verzichten wollen, laden Sie zusätzlich das Paket xcolor [7].

Da wir bereits in einem anderen Artikel ausführlich auf die Verwendung von Farben mit LaTeX eingegangen sind [8], beschränken wir uns an dieser Stelle auf das Einfärben von Tabellen. Wie bei einem Tabellenkalkulationsprogramm lassen sich auch mit LaTeX einzelne Zelle oder auch auf einen Schlag ganze Zeilen oder Spalten einfärben.

Im Stundenplan soll die oberste Zeile mit den Wochentagen in einem dunklen Grau erscheinen. Der Befehl dafür steht im Bereich, der den Zeileninhalt beschreibt (Zeile 13). Die Spalte mit den Uhrzeiten bekommt ein helles Grau (Zeile 12). Der entsprechende Aufruf dafür findet in der zweiten geschweiften Klammer des Befehls Platz, der die tabu-Umgebung eröffnet.

Alle Zellen mit gleichen Lehrveranstaltungen bekommen jeweils dieselbe Farbe (Zeile 17). Genügt das Einfärben der Zelleninhalte nicht aus, dann bietet Ihnen die LaTeX-Klasse colortbl weitere Möglichkeiten, die Tabelle farbig zu gestalten. Mir ihr färben Sie zum Beispiel die Linien der Tabelle bunt ein.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 5 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Kommentare

Infos zur Publikation

LU 12/2017: Perfekte Videos

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Huawei
Pit Hampelmann, 13.12.2017 11:35, 2 Antworten
Welches Smartphone ist für euch momentan das beste? Sehe ja die Huawei gerade ganz weit vorne. Bi...
Fernstudium Informatik
Joe Cole, 12.12.2017 10:36, 2 Antworten
Hallo! habe früher als ich 13 Jahre angefangen mit HTML und später Java zu programmieren. Weit...
Installation Linux mint auf stick
Reiner Schulz, 10.12.2017 17:34, 3 Antworten
Hallo, ich hab ein ISO-image mit Linux Mint auf einem Stick untergebracht Jetzt kann ich auch...
Canon Maxify 2750 oder ähnlicher Drucker
Hannes Richert, 05.12.2017 20:14, 4 Antworten
Hallo, leider hat Canon mich weiterverwiesen, weil sie Linux nicht supporten.. deshalb hier die...
Ubuntu Server
Steffen Seidler, 05.12.2017 12:10, 1 Antworten
Hallo! Hat jemand eine gute Anleitung für mich, wie ich Ubuntu Server einrichte? Habe bisher...