L A T E X und Tabellen Sammlung einiger Kniffe v1.10 vom 1. Dezember 2017 Inhaltsverzeichnis 1 Grundaufbau 2 1.1 Tabelle in Gleitumgebung..................... 3 1.2 Tabellen mit vorgegebener Breite................. 4 1.3 Vorgegebene Spaltenbreiten................... 4 1.4 Vorgegebene Spaltenbreiten mit automatischen Wortumbruch 5 1.5 Vorgegebene Spaltenbreiten mit manuellen Wortumbruch... 6 1.6 Übersichtliche Definition von gleichartigen Spaltentypen.... 6 1.7 Drehung der Spaltenköpfe um 90................ 6 1.8 Drehung einer ganzen Tabelle um 90.............. 7 1.9 Spalteninhalte nach Dezimaltrenner ausrichten......... 7 2 Anpassung der tabular-vorgaben 8 2.1 Schönere Linien.......................... 8 2.2 Überstehende Linien stutzen................... 9 2.3 Nur teilweise durchgängige, horizontale Linien......... 10 2.4 Schriftgröße und Schriftfamilie.................. 11 2.5 Spaltenabstand einpassen (einheitlich für alle Spalten)..... 11 2.6 Spaltenabstand einpassen (nur ausgewählte Spalten)..... 12 2.7 Zeilenabstand einpassen (einheitlich für alle Tabellen)..... 12 2.8 Zeilenabstand einpassen (für einzelne Zeilen).......... 13 2.9 Formatdefinition für eine ganze Spalte.............. 14 2.10 Formatdefinition für eine ganze Zeile............... 15 3 Zusammenfassung von Zellen 16 3.1 Zellen horizontal zusammenfassen (multicolumn)........ 16 3.2 multicolumn für Zeilenumbruch auf Breite zwingen....... 17 1
3.3 Zellen vertikal zusammenfassen (multirow)........... 17 3.4 Manuelle Anpassungen der multirow-ausrichtung....... 18 3.5 multirow mit geschachtelter Tabelle imitiert........... 19 4 Diagramme mit Tabellen 20 5 Import/Export 20 Vorwort An dieser Stelle möchte ich kurz erklären, dass auch ich nicht darum herumkomme, meine Erfahrungen mit Tabellen in L A T E X, einem berüchtigten Arbeitsfeld mit dieser Software, vorzuweisen. Es handelt sich bislang um eine einfache Sammlung von Tipps, um die meisten ästhetischen und typografischen Hürden beim Erstellen einfacher Tabellen zu überwinden. Generell ist empfehlenswert, die folgenden Pakete zu laden, sofern man Tabellen in sein Dokument aufnehmen möchte: booktabs, array, ragged2e 1 Grundaufbau 1 \begin{tabular}{ l cr } 3 A & B & C \\ 4 9 & 22 & a \\ 5 \hline 6 \end{tabular} erzeugt 9 22 a Die tabular-umgebung gilt als grundlegende Tabellenumgebung, zwischen der der Tabelleninhalt eingefasst wird. Im Kopf definiert man die Anzahl der Spalten, wobei jeder der Buchstaben l (linksbündig), c (zentriert),r (rechtsbündig) einer Spalte entspricht und gleichzeitig die Ausrichtung ihres Inhalts bestimmt. Durch die Eingabe einer Pipe ( ) kann man vertikale Linien zwischen den Spalten vorgeben, was aber aus ästhetischer Hinsicht verpönt ist; Tabellen 2
Tabelle 1: Meine Tabelle. 9 22 a sollten wenn möglich nur durch wenige, sinnvoll gesetzte, horizontale Linien getrennt werden! Braucht man doch horizontale Linien, kann man diese auf einfache Weise mit einem \hline-befehl erzeugen, der am Zeilenende (oder vor der vorherigen Zeile) sitzt und auch mehrfach in Form von \hline\hline benutzt werden darf; im Beispiel oben werden die \hline nur als sog. Kopfund Fußlinie gesetzt. Die Zeilenenden selbst werden mittels \\ abgeschlossen und die einzelnen Zelleninhalte innerhalb einer Zeile mit & getrennt. Damit kann man schon mal einen Großteil an Tabellen setzen. Man muss beachten, dass insbesondere bei umfangreicheren Tabellen der»wust«aus Tabelleninhalten, & und \\ dergestalt überhand nehmen kann, dass man rasch den Überblick verliert. Fehlt auch nur ein Trenner an der richtigen Stelle oder sind mit den Buchstaben l, r usw. zu wenig Spalten definiert, aber für eine Spalte mehr Inhalt hinterlegt, gibt es beim Kompilieren jede Menge Fehlermeldungen, die zu finden sehr aufwendig sein kann! 1.1 Tabelle in Gleitumgebung Meistens wird man eine Tabelle brauchen, die wie eine Abbildung gleitet, mit Überschrift und der Möglichkeit darauf zu verlinken. Man fasst sie hierfür einfach in eine table-umgebung ein: 1 \begin{table} 2 \centering 3 \caption{meine Tabelle.} 4 \label{tabelle1} 5 \begin{tabular}{ l cr } 6 \hline 7 A & B & C \\ 8 9 & 22 & a \\ 9 \hline 10 \end{tabular} 11 \end{table} 3
Das Ergebnis (Tab. 1) sieht man am Kopf der Seite. 1.2 Tabellen mit vorgegebener Breite Hierfür wird die Stern-Version der tabular-anweisung benutzt und in einem zweiten Argument die gewünschte Breite angegeben. Man beachte, dass sich die Spaltenbreite nach wie vor nach dem Inhalt richtet (kein Wortumbruch!). 1 \begin{tabular*}{8cm}{ l cr } 3 A & B & C-Spalte \\ 4 9 & 22 & mit mehr Text \\ 5 \hline 6 \end{tabular*} erzeugt -Spalte 9 22 mit mehr Text Für eine Tabelle, die exakt genauso breit ist wie der Textblock, kann man auch die \textwidth-anweisung anstatt einer konkreten Zahl benutzen: 1 \begin{tabular*}{\textwidth}{ l cr } 1.3 Vorgegebene Spaltenbreiten Will man die Spaltenbreite konkret vorgeben, benutzt man anstelle der Spaltendefinition l, c oder r die Angabe p{breite}, also z. B. p{4cm}: 1 \begin{tabular}{ p{2cm} p{1cm} p{2cm} } 3 A & B & C-Spalte \\ \hline 4 9 & 22 & mit noch mehr Text \\ 5 \hline 6 \end{tabular} 4
erzeugt -Spalte 9 22 mit noch mehr Text Wie man sieht, wird der Tabelleninhalt linksbündig ausgerichtet, aber nur unschön umgebrochen (siehe nächster Abschnitt). 1.4 Vorgegebene Spaltenbreiten mit automatischen Wortumbruch Für diesen Kniff ist das Laden des array- und ragged2e-pakets notwendig. Nun kann am Dokument-Anfang ein neuer Spaltentyp L definiert werden (statt L geht auch ein anderer Buchstabe): 1 \newcolumntype{l}[1]{>{\raggedright\arraybackslash}p{#1}} Nun lässt sich anstatt einer p-spalte eine L-Spalte setzen: 1 \begin{tabular}{ p{2cm} p{1cm} L{2cm} } 3 A & B & C-Spalte \\ \hline 4 9 & 22 & mit noch mehr Text \\ 5 \hline 6 \end{tabular} erzeugt -Spalte 9 22 mit noch mehr Text (vergleiche mit Tabelle im vorherigen Abschnitt!) Alternativ lässt sich eine Definition namens K erzeugen, bei der die Inhalte zentriert ausgerichtet und trotzdem umgebrochen werden. Dafür wird der vorherige Befehl einfach umdefiniert: 1 \newcolumntype{k}[1]{>{\centering\arraybackslash}p{#1}} 5
1.5 Vorgegebene Spaltenbreiten mit manuellen Wortumbruch Man kann auch manuell mit dem \newline-befehl einen Zeilenumbruch erzeugen, was aber nur in p-spalten mit festgelegter Breite gelingt: 1 \begin{tabular}{p{2.5cm}lr} 3 Zeilenumbruch \newline nun m"oglich & B & C \\ 4 \hline 5 \end{tabular} Zeilenumbruch nun möglich B C 1.6 Übersichtliche Definition von gleichartigen Spaltentypen Angenommen, man benötigt eine Tabelle mit 19 links ausgerichteten und nochmal 7 recht ausgerichteten Spalten. Dann würde man schreiben: 1 \begin{tabular}{lllllllllllllllllll rrrrrrr} Einfacher und übersichtlicher ginge es aber wie folgt: 1 \begin{tabular}{*{19}{l} *{7}{r}} 1.7 Drehung der Spaltenköpfe um 90 Für die Nutzung des \rotatebox-kommandos muss das rotating-paket geladen werden. Dann kann man im 1. Argument den Winkel einstellen (90 für»90 nach links«), in das 2. Argument kommt der Inhalt. Wie man sieht, wäre etwas mehr Platz gleich unter der Kopflinie nicht verkehrt, siehe Abschnitt 2.1 und 2.7. 6
1 \begin{tabular}{llr} 3 \rotatebox{90}{spalte 1} & \rotatebox{90}{spalte 2} &% 4 \rotatebox{90}{spalte 3} \\ 5 A & B & C \\ 6 \hline 7 \end{tabular} Spalte 1 Spalte 2 Spalte 3 1.8 Drehung einer ganzen Tabelle um 90 Hier bedient man sich abermals des rotating-pakets und benutzt anstatt der table-umgebung (für gleitende Tabellen) die sidewaystable-umgebung: 1 \begin{sidewaystable} 2 \caption{text} 3 \label{tabelle1} 4 \begin{tabular}{llr} 5... 6 \end{tabular} 7 \end{sidewaystable} 1.9 Spalteninhalte nach Dezimaltrenner ausrichten Dieser Kniff ist für gefüllte Zahlen-Tabellen geeignet, in denen untereinanderstehende Werte an ihrem Dezimaltrenner (Komma, Punkt) ausgerichtet werden sollen. Die Anwendung ist denkbar einfach: Das Laden des Pakets siunitx stellt eine neue Spaltendefinition namens S bereit, die alles erledigt. Der Inhalt der Spalten wird dabei insgesamt zentriert ausgerichtet. 7
1 \begin{tabular}{sss} 3 \textbf{werte 1} & \textbf{werte 2} & \textbf{werte 3} \\ 4 0,91 & 0,23 & 0,3 \\ 5 2,04 & 1,44 & 23,19 \\ 6 0,5 & 97,7 & -1,34 \\ 7 \hline 8 \end{tabular} Werte 1 Werte 2 Werte 3 0.91 0.23 0.3 2.04 1.44 23.19 0.5 97.7 1.34 2 Anpassung der tabular-vorgaben 2.1 Schönere Linien Wie in der Einführung bereits notiert, sollte in Tabellen auf vertikale Linien verzichtet werden, und horizontale Linien sollten, wenn überhaupt, nur sparsam eingesetzt werden. Linien lassen sich, wie bereits gezeigt, mit Pipes: (vertikale Linien) und \hline-kommandos (horizontale Linien) generieren. Leider setzt Standard-tabular die Linien unangenehm eng an den Text; etwas Auflockerung wäre wünschenswert. Genau das übernimmt das booktabs-paket und stellt für horizontale Linien einige neue Kommandos bereit: 1 \begin{tabular}{lll} 2 \toprule 3 \textbf{nr.} & \textbf{probe} & \textbf{fundort} \\ 4 \midrule 5 1 & Dino-Knochen & Museum \\ 6 2 & Fossiles Holz & Wald \\ 7 \bottomrule 8 \end{tabular} 8
Nr. Probe Fundort 1 Dino-Knochen Museum 2 Fossiles Holz Wald Man beachte, dass die \toprule und \bottomrule etwas fetter gezeichnet sind, während die \midrule die \hline ersetzt. Man vergleiche die Zeilenabstände mit Standard-tabular wie folgt: 1 \begin{tabular}{lll} 3 \textbf{nr.} & \textbf{probe} & \textbf{fundort} \\ 4 \hline 5 1 & Dino-Knochen & Museum \\ 6 2 & Fossiles Holz & Wald \\ 7 \hline 8 \end{tabular} Nr. Probe Fundort 1 Dino-Knochen Museum 2 Fossiles Holz Wald Es zeigt sich eindeutig eine Verbesserung der Tabellen-Ästhetik durch Auflockerung der Zeilenabstände! Die Linien-Kommandos des booktab-pakets sind uneingeschränkt zu empfehlen und sollten die Verwendung von \hline immer ersetzen! 2.2 Überstehende Linien stutzen Wie in den beiden Beispieltabellen unter Abschnitt 2.1 zu sehen, laufen die horizontalen Linien geringfügig weiter als der in der Tabelle befindliche Text. Wer das»abstellen«möchte, definiert als ersten und letzten»spaltentyp«noch ein @{} 1 \begin{tabular}{@{}lll@{}} 9
3 \textbf{nr.} & \textbf{probe} & \textbf{fundort} \\ 4 \hline 5 1 & Dino-Knochen & Museum \\ 6 2 & Fossiles Holz & Wald \\ 7 \hline 8 \end{tabular} Nr. Probe Fundort 1 Dino-Knochen Museum 2 Fossiles Holz Wald 2.3 Nur teilweise durchgängige, horizontale Linien Dies wird normalerweise mit dem \cline-kommando realisiert, das als Argument die Start- und End-Spalte aufnimmt. Wie alle Standard-tabular-Linien wird auch cline viel zu eng gesetzt, sodass sich die Verwendung von cmidrule aus dem booktabs-paket (Abschnitt 2.1) empfiehlt und wie cline bedienen lässt: 1 \begin{tabular}{llr} 2 \toprule 3 A & B & C \\ 4 \cmidrule{2-3} 5 A & B & C \\ 6 \cmidrule{1-2} 7 A & B & C \\ 8 \bottomrule 9 \end{tabular} 10
2.4 Schriftgröße und Schriftfamilie Tabellen umfangreichen Inhalts muss man manchmal hinsichtlich ihrer Schriftgröße anpassen, damit sie am Seitenrand nicht überlaufen. Für Tabellen ohne Gleitumgebung fasst man die tabular-umgebung in eine weitere Umgebung mit Schriftgrößen-Angabe ein: 1 \begin{tiny} 2 \begin{tabular}{lll} 3 \toprule 4 \textbf{nr.} & \textbf{probe} & \textbf{fundort} \\ 5 \midrule 6 1 & Dino-Knochen & Museum \\ 7 2 & Fossiles Holz & Wald \\ 8 \bottomrule 9 \end{tabular} 10 \end{tiny} Nr. Probe Fundort 1 Dino-Knochen Museum 2 Fossiles Holz Wald Werden Tabellen in Gleitumgebungen benutzt, genügt ein Schriftgrößen-Kommando innerhalb der table-umgebung; es gilt dann auch nur für diesen Bereich: 1 \begin{table} 2 \scriptsize 3 \begin{tabular}{lll} 4... 5 \end{tabular} 6 \end{table} 2.5 Spaltenabstand einpassen (einheitlich für alle Spalten) Manchmal möchte man den Standard-Spaltenabstand generell etwas verringern oder erhöhen, z. B. um eine Tabelle zu verkleinern, damit sie nicht am 11
Seitenrand überläuft. Man erreicht dies durch Veränderung des \tabcolsep- Befehls und gibt dabei einen Wert ein: 1 \setlength{\tabcolsep}{0.6mm} % Spaltenabstand anpassen 2 \begin{tabular}{llr} 3 \hline 4 A & B & C \\ 5 \hline 6 \end{tabular} 2.6 Spaltenabstand einpassen (nur ausgewählte Spalten) Nicht in jedem Fall sollen die Spalten gleich breit sein. Mittels @{\hskip 2mm}, das man an die Position des jeweiligen Spaltenübergangs setzt (z. B. zwischen Spalte 1 und 2), kann man einen Abstand vorgeben. Im Beispiel wird der Abstand zwischen Spalte 1 und 2 auf 6 mm und derjenige zwischen Spalte 2 und 3 auf 12 mm festgelegt (zur Veranschaulichung mit vertikalen Linien): 1 \begin{tabular}{ l@{\hskip 6mm} l@{\hskip 12mm} r } 3 A & B & C \\ 4 \hline 5 \end{tabular} Man beachte, dass hier der Abstand der Spalten und nicht die Spaltenbreite (Abschnitt 1.3) angepasst wird! 2.7 Zeilenabstand einpassen (einheitlich für alle Tabellen) Standard-tabular setzt die Zeilen relativ eng. Zur Auflockerung gebrauche man das booktabs-paket und seine Kommandos (Abschnitt 2.1) oder gebe einen Wert manuell vor: 12
1 \renewcommand{\arraystretch}{1.2} %Zeilenabstand anpassen 2 \begin{tabular}{llr} 3 \hline 4 A & B & C \\ 5 1 & 2 & 3 \\ 6 \hline 7 \end{tabular} 1 2 3 Das arraystretch-kommando kann man auch am Dokument-Anfang definieren und gilt dann für alle Tabellen im Dokument. 2.8 Zeilenabstand einpassen (für einzelne Zeilen) Schauen wir noch einmal auf das Beispiel aus Abschnitt 1.7: 1 \begin{tabular}{llr} 3 \rotatebox{90}{spalte 1} & \rotatebox{90}{spalte 2} &% 4 \rotatebox{90}{spalte 3} \\ 5 A & B & C \\ 6 \hline 7 \end{tabular} Spalte 1 Spalte 2 Spalte 3 Man sieht, dass der obere Rand der ersten Zeile sehr gedrängt liegt, die obere Zeilenbegrenzung liegt quasi auf den Buchstaben auf. Nun lassen sich mit folgendem Kniff zusätzliche vertikale Abstände einfügen. Zunächst definiert man zwei neue Kommandos, \T und \B: 13
1 \newcommand\t{\rule{0pt}{8ex}} %für einen Abstand nach oben 2 \newcommand\b{\rule[-1.5ex]{0pt}{0pt}} % für einen Abstand nach unten Beide Befehle definieren im Grunde eine unsichtbare Linie, die keine Länge, sondern nur eine Höhe hat; dieser regelt dann den Abstand. Beide Kommandos fügt man nach Bedarf vor und nach der betreffenden Zeile ein: 1 \begin{tabular}{llr} 3 \T \rotatebox{90}{spalte 1} & \rotatebox{90}{spalte 2} &% 4 \rotatebox{90}{spalte 3} \B \\ 5 A & B & C \\ 6 \hline 7 \end{tabular} Spalte 1 Spalte 2 Spalte 3 Durch Variation der Werte kann man seine Tabellen gut nachbessern. 2.9 Formatdefinition für eine ganze Spalte Manchmal soll eine ganze Spalte einheitlich formatiert sein, z. B. fett. Um nun nicht jedes Mal den ersten Eintrag mit einem Formatbefehl für fett zu versehen (\textbf{ }), setzt man ihn mit einem > und dem gewünschten Format vor die Spaltendefinition. Im Beispiel wurde die erste Spalte fett gemacht und die dritte wird kursiviert: 1 \begin{tabular}{>{\bfseries}ll>{\itshape}l} 2 \toprule 3 Nummer & Gestein & Mineral \\ 4 \midrule 14
5 1 & Granit & Quarz \\ 6 2 & Diabas & Pyroxen \\ 7 3 & Granulit & Feldspat \\ 8 \bottomrule 9 \end{tabular} Nummer Gestein Mineral 1 Granit Quarz 2 Diabas Pyroxen 3 Granulit Feldspat 2.10 Formatdefinition für eine ganze Zeile In viele Fällen soll die 1. Zeile einer Tabelle (Tabellenkopf) einheitlich formatiert sein, z. B. fett. Um nun nicht jeden Eintrag der 1. Zeile mit einem Format- Kommando wie \textbf{ } zu versehen, kann man sich einer Abkürzung bedienen. Hierfür wird das tabu-paket geladen und ein sog. \head definiert: 1 \newcommand*\head{\rowfont[c]{\bfseries}} Anstatt über die Option c alle Spalten zentriert auszurichten, kann man auch l (linksbündig), r (rechtsbündig) oder j (Blocksatz) nutzen. Als Format für alle Einträge wird fett (\bfseries) festgelegt. Anstatt einer tabular-umgebung nimmt man nun die tabu-umgebung und bestimmt mit \head diejenige Zeile, die nach Festlegung formatiert werden soll: 1 \newcommand*\head{\rowfont[c]{\bfseries}} 2 3 \begin{tabu}{lll} 4 \toprule 5 \head 6 Wort 1 & Wort 2 & Wort 3 \\ 7 \midrule 8 A & B & C \\ 15
9 \bottomrule 10 \end{tabu} Wort 1 Wort 2 Wort 3 3 Zusammenfassung von Zellen 3.1 Zellen horizontal zusammenfassen (multicolumn) Für die Zusammenfassung von horizontalen Zellen kommt meist das \multicolumn- Kommando zum Einsatz. Es hat drei Argument, wovon das erste die Anzahl der zusammengefassten Zellen enthält, das zweite die Ausrichtung (c für zentriert) und das dritte den Inhalt. Man beachte, dass jeweils die entsprechende Anzahl der Spaltentrenner (&) reduziert werden muss, d. h. wenn bei 3 Spalten zwei davon zusammengefasst werden, steht zwischen diesen beiden (= \multicol-bereich) und der 3. Spalte nur noch ein Spaltentrenner &! 1 \begin{tabular}{lll} 2 \toprule 3 \multicolumn{2}{c }{\textbf{gesteine}} & \textbf{fundort} \\ 4 \midrule 5 Granit & Diabas & Strand \\ 6 Sandstein & Kalkstein & Fluss \\ 7 Feuerstein & \multicolumn{2}{ c }{Berghang} \\ 8 \multicolumn{3}{c}{\emph{in die Sammlung!}} \\ 9 \bottomrule 10 \end{tabular} Gesteine Fundort Granit Diabas Strand Sandstein Kalkstein Fluss Feuerstein Berghang in die Sammlung! 16
3.2 multicolumn für Zeilenumbruch auf Breite zwingen Eine multicolumn tut sich von Haus aus schwer damit, bei Überlänge automatisch umzubrechen. Man zwingt sie auf eine gewisse Breite mittels einer parbox: 1 \begin{tabular}{ccc} 2 \toprule 3 \multicolumn{2}{c}{\parbox{2.0cm}{umbruch w"are sch"on}} & C \\ 4 \midrule 5 1 & 2 & 3 \\ 6 \bottomrule 7 \end{tabular} Umbruch C wäre schön 1 2 3 3.3 Zellen vertikal zusammenfassen (multirow) Die Anwendung erfolgt analog zum multicolumn-paket, wobei die zusammengefassten Zellen mit einem Spaltentrenner»übersprungen«werden. Es muss das Paket multirow geladen werden. Das erste Argument enthält die Anzahl der zusammengefassten Zellen, das zweite nimmt eine Breite auf (entweder konkrete Vorgabe oder automatische Anpassung mit * ), das dritte Argument enthält den eigentlichen Inhalt. Wird eine konkrete Breite vorgegeben, ist ein Zeilenumbruch möglich (2. Beispiel). Häufig wird der multirow-inhalt noch um 90 gedreht, wie in Abschnitt 1.7 beschrieben und in der Beispieltabelle unter Abschnitt 3.4 gezeigt. 1 \begin{tabular}{llr} 2 \toprule 3 \multirow{2}{*}{test} & B & C \\ 4 & B & C \\ 5 \midrule 17
6 Wort & Satz & Text \\ 7 \bottomrule 8 \end{tabular} B C Test B C Wort Satz Text 2. Beispiel mit Zeilenumbruch: 1 \begin{tabular}{llr} 2 \toprule 3 \multirow{2}{2cm}{mit einem Umbruch} & B & C \\ 4 & B & C \\ 5 \midrule 6 Wort & Satz & Text \\ 7 \bottomrule 8 \end{tabular} mit einem Umbruch B B C C Wort Satz Text 3.4 Manuelle Anpassungen der multirow-ausrichtung In vielen Fällen versagt die automatische Positionierung des multirow-bereichs. Einerseits kann man versuchen, den mit multirow positionierten Text über ein vorangestelltes \vfil mittig zu zentrieren: \multirow{4}{2cm}{\vfil Wort} Andererseits kann man ein optionales Argument (= Option) mit einer konkreten Vorgabe angeben, um die der Text versetzt werden soll (negative vs. positive Werte entsprechen einer Verschiebung nach oben bzw. unten): 18
1 \begin{tabular}{llr} 2 \toprule 3 \multirow{4}{1cm}[-0.5cm]{\rotatebox{90}{test}} & B & C \\ 4 & B & C \\ 5 & 1 & 2 \\ 6 & Test & Wort \\ 7 \bottomrule 8 \end{tabular} Test B C B C 1 2 Test Wort 3.5 multirow mit geschachtelter Tabelle imitiert Die häufig besseren Ergebnisse erzielt man, wenn man anstatt einer multirow einfach eine geschachtelte Tabelle, d. h. eine Tabelle in einer Tabelle, benutzt. Die»sekundäre«Tabelle wird anstelle des eigentlichen Zelleneintrags gesetzt und stellt in diesem Beispiel 3 Zeilen (Inhalt:»B«) einer 1-spaltigen Tabelle dar: 1 \begin{tabular}{ccc} 2 \toprule 3 Wort & 4 \begin{tabular}{c} 5 B \\ B \\ B \\ 6 \end{tabular} 7 & C \\ 8 \midrule 9 Wort & Satz & Text \\ 10 \bottomrule 11 \end{tabular} 19
Wort B B B C Wort Satz Text 4 Diagramme mit Tabellen Auch mit der L A T E X-Tabellenumgebung lassen sich einige einfache Diagramme realisieren, ohne sie über eine externe Software generieren zu lassen und z. B. als PDF einbinden zu müssen. Das folgende Beispiel habe ich dem Buch»Tabellen mit L A T E X«von H. Voß entnommen und etwas angepasst: Zusammensetzung Probe 62 % Quarz 12 % Feldspat 6 % Glimmer 20 % Turmalin Eine weitere Möglichkeit Diagramme zu erzeugen ist die Nutzung des sog. datatool-pakets, das einerseits den praktischen Import von csv-tabellen ermöglicht und die Daten z. B. als Histogramm, XY-Plot oder Tortendiagramm ausgeben kann (siehe umfangreiche Dokumentation des Pakets). 5 Import/Export Für viele gerade ungeübte Nutzer im Umgang mit L A T E X-Tabellen ist die nicht ganz unberechtigte Frage danach, ob es nicht einen einfacheren Weg gibt, den relativ unübersichtlichen Tabellencode extern bequem zu formatieren und zu befüllen, um im Anschluss daran die Tabelle zu L A T E X-Code zu exportieren. Genau das macht die Software Gnumeric, die neben z. B. Excel und Calc eine weitere Tabellenkalkulation darstellt und von diesen beiden optisch kaum unterscheidbar ist bzw. sich größtenteils genauso bedient. Auch wenn man Gnumeric nicht als Tabellenkalkulation benutzen mag, kann man mit ihr doch vorhandene Excel- und anders formatierte Tabellen öffnen und sie über den Menüpunkt Daten Daten exportieren In anderes Format exportieren... 20
zu L A T E X-Code exportieren, der dann bequem per Copy & Paste in sein L A T E X- Dokument übernommen werden kann. Zumindest umfangreiche Tabellen lassen sich erst einmal so einfach und schnell erstellen, um an ihnen dann weitere Formatierungen vorzunehmen. Neuerdings habe ich eine weitere Software, u. a. für Windows, entdeckt, nämlich LaTable, mit der man Tabellen zumindest»vorzeichnen«und befüllen kann, um sie anschließend als L A T E X-Code zu speichern. Ich halte die Nutzung von Gnumeric, auch für die Konzeption ganz neuer Tabellen, für sinnvoller. Für die Nutzer der Kommandozeile gibt es weiterhin die Pakete excel2latex und exceltex aus dem CTAN-Bestand, die ebenfalls den direkten Import eines Tabellendokuments in sein L A T E X-Dokument ermöglichen. Wer allerdings, gerade als Windows-Nutzer, keine große Affinität zu Kommandozeile und»kryptischen Befehlen«hat, sollte, wie empfohlen, Gnumeric benutzen. Darüber hinaus bringen viele T E X-Editoren (z. B. Kile) spezielle»assistenten«mit, über die sich Größe und Formatierung einer Tabelle über gewohnte Mausklicks einrichten und befüllen lässt. Für LibreOffice gibt es eine Erweiterung namens Calc2LaTeX, mit der man aus dem Tabellenkalkulationsmodul heraus L A T E X-Tabellen erzeugen kann. Leider scheint diese Erweiterung nicht mehr angeboten zu werden, oder ist nur für ältere LibreOffice-Versionen verfügbar. 21