Post on 06-Mar-2018
Christian Degenkolb
Tabellen in LATEXAll the fun you never wanted to have
16. Januar 2011
LATEX-User-Treffen Freiberg
Inhalt
Am Anfang war die Tabelle. Die tabular-Umgebung
Wie breit gehts denn? Die tabular*-Umgebung
Tabellen mit eXtra. Das tabularx-Paket
Von Spalten und Definitionen. Das array-Paket
In Farbe UND Bunt. Das colortbl-Paket
Am Komma ausrichten! Das rccol-Paket
Zeigt her eure Tabellen! Das booktabs-Paket
Extra lange Tabellen. Die Qual der Wahl
Rotieren wie die Profis. Das pdflscape-Paket
Spreadsheet zu TEX. Calc2LaTeX und Excel2LaTeX
Christian Degenkolb (TUBAF) Tabellen in LATEX 1
Am Anfang war die Tabelle. Die tabular-Umgebung
1 \begin{tabular}[Position]{Spaltendefinition}2 Spalten- und Zeilen-Einträge3 \end{tabular}
ParameterPosition Position der Tabelle im Text
c zentriert (default)t oberste Kante der Tabell wird mit
Schriftlinie ausgerichtetb unterste Kante . . .
Spaltendefinition Ausrichtung des Textes in der Spaltel linksbündigr rechtsbündigc zentriertp{Breite} mehrzeilige (Absatz-)Spalte mit Breite
Spalten- und Zeilen-Einträge\\ Zeilentrenner& Spaltentrenner
Die tabular-Umgebung II
1 zentriert \begin{tabular}[c]{c} eins\\zwei\\drei \end{tabular}2 oberste \begin{tabular}[t]{c} eins\\ zwei\\ drei \end{tabular}3 unterste \begin{tabular}[b]{c} eins\\ zwei\\ drei \end{tabular}
zentrierteinszweidrei
oberste einszweidrei
unterste
einszweidrei
1 \begin{tabular}{l c r p{2.5 cm}}2 Links & Mitte & Rechts & Breite \\3 L & M & R & B \\4 \end{tabular}
Links Mitte Rechts BreiteL M R B
Die tabular-Umgebung III
zwischen Spaltendefinition| oder || senkrechte Linie oder Doppel-@{Ersatz} Füllt Spaltenzwischenraum mit Ersatz*{ n }{ Spaltendefinition } Abkürzung für n-mal
Verwendung der Spaltendefinition
1 \begin{tabular}{|| *{2}{ l@{\#} } c @{,} r | p{2.5 cm} ||}2 Links & Links2 & Mitte & Rechts & B \\3 L & L2 & M & R & B4 \end{tabular}
Links#Links2#Mitte,Rechts BL #L2 # M , R B
Die tabular-Umgebung IV
weiteres für Spalten- und Zeileneinträge\multicolumn{n}{Spaltendefinition}{Text}
folgenden n Spalten werden zu einer Neuenmit Spaltendefinition und Inhalt Text
\multirow{n}{Breite}{Text} fast n Zeilen zu Neuer mit Breite undInhalt Text zusammen\uspackage{multirow} nötigBreite kann auch * sein
\hline erzeugt horizontale Linie mit Tabellenbreite\vline erzeugt vertikale Linie in Spalte\cline{n-m} erzeugt horizontale Linie zwischen
Spalte n und m
Die tabular-Umgebung V
1 \begin{tabular}{|l|c|r|p{2,5cm}|}2 \hline3 Links & Mitte & Rechts \vline & Breite \\4 \hline5 \multicolumn{2}{|c|}{neue Linke}6 & \multirow{2}{2cm}{gemeinsame Rechte} & B \\7 \cline{1-3} \cline{4-4}8 L & M & & B \\9 \hline10 \end{tabular}
Links Mitte Rechts Breiteneue Linke gemeinsame
RechteB
L M B
Wie breit gehts denn? Die tabular*-Umgebung
1 \begin{tabular*}{Breite}{Spaltendefinition}2 Spalten- und Zeilen-Einträge3 \end{tabular*}
wie tabular, aber mit extra Breite
1 \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}|l|c|r|}2 \hline3 Links & Mitte & Rechts \\ \hline4 L & M & R \\ \hline5 \end{tabular*}
Links Mitte RechtsL M R
Tabellen mit eXtra. Das tabularx-Paket
1 \begin{tabularx}{Breite}{Spaltendefinition}2 Spalten- und Zeilen-Einträge3 \end{tabularx}
wie tabular*, aber mit extra Spaltendefinition XX passt die Spaltenbreite automatisch an
1 \begin{tabularx}{\textwidth}{|X|X|l|} \hline2 automatisch & Spaltenbreite & linksbündig\\ \hline3 zwei Spaltenbreiten & werden automatisch angepasst &
linksbündig \\ \hline4 \end{tabularx}
automatisch Spaltenbreite linksbündigzwei Spaltenbreiten werden automatisch angepasst linksbündig
Von Spalten und Definitionen. Das array-Paket
neu Spaltendefinitionenm{Breite} wie p, aber setzt Absätze zentriert an Grundlinieb{Breite} wie p, aber richtet Absätze an letzter Zeile aus>{Erklärung} Fügt Erklärung vor jedem Spalteneintrag ein<{Erklärung} Fügt Erklärung nach jedem Spalteneintrag ein!{Erklärung} Fügt Erklärung zwischen den Spalten ein
Erklärung kann Text oder Formatierungsbefehl sein
1 \begin{tabular}{| >{\small}p{2cm} | >{\bfseries}m{2cm} |>{\itshape}b{2cm} | >{\Large $}c<{$} |} \hline
2 [..]mehrzeilige[..] & [..]zentriert[..] & [..]an letzter[..] &\sqrt{\frac{a}{T}} \\ \hline
3 \end{tabular}
. . .mehrzeiligeSpalte . . .
. . .Absatzzentriert anGrundlinie. . .
. . .richtet Ab-sätze an letz-ter Zeile . . .
√aT
Das array-Paket II
eigene Spaltendefinitionen\newcolumntype{Buchstabe}{Spaltendefinition}
legt neuen Spaltentyp Buchstabe mit Spaltendefinition an
1 \newcolumntype{M}{ >{\Large $} c <{$} }2 \newcolumntype{S}[1]{>{\begin{turn}{90} \begin{minipage}{#1}}
l <{\end{minipage}\end{turn}}}3 \begin{tabular}{ S{2em} | M}4 Senkrecht & \sqrt{\frac{a}{T}} \\ \hline5 \end{tabular}
Senk
recht
√aT
Das array-Paket III
zusätzliche Anpassungen von Tabellen\setlength{\tabcolsep}{Abstand}
Abstand der vor und nach den einzelnen Spalten jeweilseingefügt wird, Standard ist 6pt
\setlength{\doublerulesep}{Abstand}Abstand zwischen Doppellinien durch ||
\renewcommand{\arraystretch}{Faktor}Spreizungs-Faktor zwischen Tabellenzeilen, Standard ist 1
Das array-Paket IV
1 \setlength{\tabcolsep}{10pt}2 \setlength{\doublerulesep}{10pt}3 \renewcommand{\arraystretch}{3}4 \begin{tabular}{|| l| c| r||} \hline5 Links & Mitte & Rechts \\ \hline6 L & M & R \\ \hline7 \end{tabular}
Links Mitte Rechts
L M R
Links Mitte RechtsL M R
In Farbe UND Bunt. Das colortbl-Paket
neu Befehle\columncolor[Farb-Modus]{Farbe}[linker Überhang ][rechter Überhang ]
Färbt Spalte mit Farbe (optional Farb-Modus) ein,Syntax wie im color-Packetrechter und linker Überhang sind optionalwird üblicherweise in >{} aus array-Paket verwendet
\rowcolor[Farb-Modus]{Farbe}[linker Überhang ][rechter Überhang ]Färbt Zeile mit Farbe (optional Farb-Modus) ein, Syntax wie\columncolor, muss zu Beginn der Zeile eingefügt werden
\cellcolor[Farb-Modus]{Farbe}Färbt Zelle mit Farbe (optional Farb-Modus) ein, Syntax wie\columncolor
Das colortbl-Paket II
1 \begin{tabular}{ l >{\columncolor{yellow}[.5\tabcolsep]}c rp{2.5cm} }
2 Links & Mitte & Rechts & \cellcolor[gray]{.5} Breite \\3 \rowcolor[rgb]{0.3,0.45,1}4 L & M & R & B \\5 L & M & \cellcolor{TUBAFgeo} R & B \\6 \rowcolor{green}[1pt][5pt]7 L & M & R & B \\8 \end{tabular}
Links Mitte Rechts BreiteL M R BL M R BL M R B
Einmal ausrichten bitte! Das rccol-Paket
neue SpaltendefinitionR-[N][M]{Zahl1}{Zahl2} erzeugt Spalte mit Zahl1 Stellen vor und Zahl2
nach dem Komma, N gibt Dezimalzeichen in denEingabedaten und M in der Ausgabe an, optiona-les - sorgt für Beachtung des Minus bei Zentrie-rung
Paketoptionennorounding Deaktiviert Rounden für das gesammte Dokumentcomma/german Benutzt Komma als Dezimalzeichenpoint/english Benutzt Punkt als Dezimalzeichen
Paketbefehle\rcRoundingtrue/false Aktiviert/Deaktiviert Runden\rcDecimalSign{N} Setzt Dezimalzeichen auf N\rcDecimalSignInput/Ouput{N} Setzt Dezimalzeichen für Input/Output auf
N
Achtung: fltpoint-Paket ist notwendig
Das rccol-Paket II
1 \begin{tabular}{| R[,]{4}{3} | R{1}{1} | R[,][..]{2}{2} |}\hline
2 \multicolumn{1}{|c|}{A} & \multicolumn{1}{c}{B} &3 \multicolumn{1}{|c|}{C} \\4 \hline5 -345,765 & 1,6 & 21 \\6 -45,130 & 0,2 & 1,658 \\7 543,000 & 2 & 9,9 \\ \hline8 \end{tabular}
1 \rcDecimalSignOutput{:}2 \rcRoundingfalse3 \begin{tabular}{|R-[,]{4}{3}[..]
A B C−345,765 1,6 21..00−45,130 0,2 1..66543,000 2,0 9..90
A B C−345,765 1:6 21−45,130 0:2 1..658543,000 2 9..9
Hinweis: Ausrichten mit siunitx
1 \begin{tabular}{lS[tabnumalign=centre,tabformat=3.6,decimalsymbol=comma]}
2 \toprule3 Name &
{$M$/\si{\gram\per\mole}}\\
4 \midrule5 Eisenoxalat & 126,062 \\6 Oxals"aure & 90,040 \\7 Schwefel & {---} \\8 Zinkoxalat & 153,406000 \\9 \bottomrule10 \end{tabular}
Name M/gmol−1
Eisenoxalat 126,062Oxalsäure 90,040Schwefel —Zinkoxalat 153,406 000
siehe http://www.suedraum.de/latex/stammtisch/archiv.html “Werte und Einheiten” Folie 10
Zeigt her eure Tabellen! Das booktabs-Paket
ein Wort zu Tabellenlayout
Benutze niemals vertikale LinienBenutze niemals doppelte Linien
siehe http://tug.ctan.org/tex-archive/macros/latex/contrib/booktabs/booktabs.pdf undhttp://www.zvisionwelt.de/typokurz.pdf Seite 11
Paketbefehle\toprule[Breite] Erste Tabellenlinie (dick), Zwischenlinie
(dünn) und Endlinie (dick), geht jeweils überdie gesammte Tabellenbreite
\midrule[Breite]\bottomrule[Breite]\cmidrule[Breite](Trimm){n-m} Linie von Spalte n bis m, Trimm ist
Konstrukt aus lr{Länge}\morecmidrule Nur nötig bei zwei cmidrule nacheinander\specialrule{Breite}{N}{M} Linie mit Breite, Abstand nach oben N und
unten M
Das booktabs-Paket II
1 \begin{tabular}{llr} \toprule2 \multicolumn{2}{c}{A} \\ \cmidrule(r){1-2}3 B & C & D\\ \midrule4 B & C & D \\5 \specialrule{2pt}{4pt}{6pt}6 & C & D \\7 B & C & D \\ \cmidrule(l{10pt}){2-3}8 B & C & D \\9 \bottomrule
AB C DB C D
C DB C DB C D
AB C DB C D
C DB C DB C D
Extra lange Tabellen. Die Qual der Wahl
supertabular ⊕ braucht nur einen Durchlauf Spaltenbreiten können pro Seite variierengeeignet für Tabellen mit festen Spaltenbreiten
xtab Weiterentwicklung von supertabular⊕ ermöglicht extra Tabellenkopf auf letzter Seite benötigt mind. 2 Durchläufe
longtable ⊕ Spaltenbreiten über alle Seiten gleich braucht mind. 2 Durchläufe, bei komplexen Tabellen mehr
ltxtable Weiterentwicklung von longtable⊕ Spaltentyp X aus tabularx⊕ Gesamtbreite der Tabelle einstellbar Einbinden über extra Datei oder mit filecontents
ltablex veraltet nur sehr kleine Tabellen möglich (Memory Limit)
stabular Keine Kopf- und Fußzeilen
siehe http://www.tex.ac.uk/cgi-bin/texfaq2html?label=longtab
Das xtab-Paket
neue Umgebung\begin{xtabular}{Spaltendefinition} Mehrseitige Tabelle\begin{mpxtabular}{Spaltendefinition} Mehrseitige Tabelle mit Fußnoten
Paketbefehle (müssen vor Umgebung definiert werden)\tablefirsthead{Inhalt} Tabellenkopf\tablehead{Inhalt} Tabellenkopf auf folgenden Seiten\tablelasthead{Inhalt} Tabellenkopf letzter Seite\tabletail{Inhalt} Tabellenfuß\tablelasttail{Inhalt} Tabellenfuß letzte Seite\tablecaption{Text} Tabellenüberschrift (Standardposition)\topcaption{Text} Tabellenüberschrift (oben)\bottomcaption{Text} Tabellenüberschrift (unten)\notablelasthead deaktiviert \tablelasthead\shrinkheight{Länge} Modifiziert erlaubte Höhe der Tabelle, positive Länge
verringert/negative Länge vergrößert\xentrystretch{Faktor} Faktor für Erwartung an vertikalem Platz pro Eintrag
Standard 0.1 = 10% Übererwartung
Das xtab-Paket II
1 \xentrystretch{-0.1}2 \tablefirsthead{ \multicolumn{5}{l}{Die Tabelle geht los} \\3 \toprule4 Links & Mitte & Rechts & Breite & Breite2 \\5 \midrule }6 \tablehead{ \multicolumn{5}{l}{Fortsetzung... }\\7 \toprule8 Links & Mitte & Rechts & Breite & Breite2 \\9 \midrule }10 \tablelasthead{ \multicolumn{5}{l}{Letzte Seite... }\\11 \toprule12 Links & Mitte & Rechts & Breite & Breite2 \\13 \midrule }14 \tabletail{ \bottomrule15 \multicolumn{5}{r}{Und weiter gehts...}\\ }16 \tablelasttail{ \bottomrule17 \multicolumn{5}{r}{Aus die Maus!} \\ }18 \tablecaption{Ein Beispiel für xtab}19 \begin{xtabular}{ l c r p{2cm} p{2cm}} [...] \end{xtabular}
Das xtab-Paket III
Table 1: Ein Beispiel fur xtab
Die Tabelle geht los
Links Mitte Rechts Breite Breite2
L M R B B2L M R B B2L M R B B2L M R B B2L M R B B2L M R B B2L M R B B2L M R B B2L M R B B2L M R B B2L M R B B2L M R B B2L M R B B2L M R B B2L M R B B2L M R B B2L M R B B2L M R B B2
Und weiter gehts...
Fortsetzung...
Links Mitte Rechts Breite Breite2
L M R B B2Eine etwas breiter Zeile mit mal
etwaslanger
L M R B B2L M R B B2L M R B B2L M R B B2L M R B B2L M R B B2L M R B B2L M R B B2L M R B B2L M R B B2L M R B B2L M R B B2L M R B B2L M R B B2L M R B B2L M R B B2L M R B B2L M R B B2L M R B B2
Und weiter gehts...
Das xtab-Paket IV
Letzte Seite...
Links Mitte Rechts Breite Breite2
L M R B B2L M R B B2L M R B B2L M R B B2L M R B B2L M R B B2Dies ist die letzte aller Zeile in der Tabelle
Aus die Maus!
Das ltxtable-Paket
Verwendung\LTXtable{Breite}{Datei} Einbinden von Datei mit longtable-Umgebung
Verwendung von filecontents-Paket angeraten\begin{filecontents}{Datei.tex} [. . .]
Paketbefehle\endfirsthead Tabellenkopf\endhead Tabellenkopf auf folgenden Seiten\endfoot Tabellenfuß\endlastfoot Tabellenfuß letzte Seite\caption{Text} Tabellenüberschrift
Das ltxtable-Paket II
1 \begin{longtable}[c]{l c r p{2cm} X}2 \caption{Ein Beispiel für ltxtable} \\3 \multicolumn{5}{l}{Die Tabelle geht los} \\4 \toprule5 Links & Mitte & Rechts & Breite & eXtra \\6 \midrule7 \endfirsthead8 \multicolumn{5}{l}{Fortsetzung... }\\9 \toprule10 Links & Mitte & Rechts & Breite & eXtra \\11 \midrule12 \endhead13 \bottomrule14 \multicolumn{5}{r}{Und weiter gehts...}\\15 \endfoot16 \bottomrule17 \multicolumn{5}{r}{Aus die Maus!} \\18 \endlastfoot19 L& M & R & B & X \\ [..] \end{longtable}
Das ltxtable-Paket III
Table 1: Ein Beispiel fur ltxtableDie Tabelle geht los
Links Mitte Rechts Breite eXtra
L M R B XL M R B XL M R B XL M R B XL M R B XL M R B XL M R B XL M R B XL M R B XL M R B XL M R B XL M R B XL M R B XL M R B XL M R B XL M R B XL M R B XL M R B XL M R B XL M R B X
Und weiter gehts...
Fortsetzung...
Links Mitte Rechts Breite eXtra
L M R B XL M R B XEine etwas breiter Zeile mit mal
etwaslanger
L M R B XL M R B XL M R B XL M R B XL M R B XL M R B XL M R B XL M R B XL M R B XL M R B XL M R B XDies ist die letzte aller Zeile in der Tabelle
Aus die Maus!
Rotieren wie die Profis. Das pdflscape-Paket
Verwendung\usepackage{pdflscape}\begin{landscape} Tabelle \end{landscape}
Setzt Tabelle im Querformat
Hinweisegeht nur mit pdftex/pdflatexfunktioniert auch mit longtable,supertabular,etceher für Tabellen mit feste Spaltenbreiten bzw. fester Gesamtbreite geeignet
Das pdflscape-Paket II
Table 1: Ein Beispiel fur pdflscapeDie Tabelle geht los
Links Mitte Rechts Breite eXtra
L M R B XL M R B XL M R B XL M R B XL M R B XL M R B XL M R B XL M R B XL M R B XL M R B XL M R B XL M R B X
Und weiter gehts...
1
Calc2LaTeX
Installationhttp://extensions.services.openoffice.org/project/calc2latex v0.2.4calc2latex.oxt herunterladen “Get it”Extras > Extension Manager > Hinzufügen
Verwendung
Daten eingebenzu exportierenden Bereich markierenExtras > Makros > Makros ausführen > Meine Makros > Calc2Latex >Main > Ausführen
Calc2LaTeX II
Calc2LaTeX III1 \begin{tabular}{|l|c|r|l|}2 \hline3 Links & Mitte & Rechts & Breite \\ \hline4 L & M & R & Ein langer Text5 mit Zeilenumbrüchen \\ \hline6 L & M & R & B \\ \hline7 \end{tabular}
Links Mitte Rechts BreiteL M R Ein langer Text mit ZeilenumbrüchenL M R B
HinweiseSpaltentyp nur l, c und rkeine booktabs, colortbl, etc.nur \hline und |keine Unterstützung für lange Tabellen
Excel2LaTeX
Installationhttp://www.ctan.org/tex-archive/support/excel2latex/ v3.0Excel2LaTeX.xla herunterladenNach /Application Data/Microsoft/AddIns kopierenüber Excel-Options > Add-Ins > Manage “Excel Add-ins” aktivieren
Verwendung
Daten eingebenzu exportierenden Bereich markierenMakros > Excel2LaTeX
Excel2LaTeX II
Excel2LaTeX III
1 \begin{tabular}{r c r r } \addlinespace \toprule2 Links & Mitte & Rechts & Breite \\ \midrule3 L & M & R & Ein langer Text4 mit Zeilenumbrüchen \\5 L & M & R & B \\ \bottomrule6 \end{tabular}
Links Mitte Rechts BreiteL M R Ein langer Text mit ZeilenumbrüchenL M R B
HinweiseSpaltentyp anscheinend nur c und rbooktabs werden unterstütztkeine Unterstützung für lange Tabellen
Dokumentation
www.torsten-schuetze.de/tex/tabsatz-2004.pdfwww2.informatik.hu-berlin.de/~piefel/LaTeX-PS/V05-tabellen.pdfhttp://en.wikibooks.org/wiki/LaTeX/Tableshttp://www.ctan.org/tex-archive/help/Catalogue/entries/tabularx.htmlhttp://www.ctan.org/tex-archive/help/Catalogue/entries/array.htmlhttp://www.ctan.org/tex-archive/help/Catalogue/entries/colortbl.htmlhttp://www.ctan.org/tex-archive/help/Catalogue/entries/rccol.htmlhttp://www.ctan.org/tex-archive/help/Catalogue/entries/booktabs.htmlhttp://www.ctan.org/tex-archive/help/Catalogue/entries/xtabs.htmlhttp://www.ctan.org/tex-archive/help/Catalogue/entries/ltxtable.htmlhttp://www.ctan.org/tex-archive/help/Catalogue/entries/pdflscape.html
Christian Degenkolb (TUBAF) Tabellen in LATEX 36
\endinput