Christian Degenkolb Tabellen in L A TEX All the fun you never wanted to have 16. Januar 2011 L A TEX-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 LAT E X 1
Am Anfang war die Tabelle. Die tabular-umgebung 1 \begin{tabular}[position]{spaltendefinition} 2 Spalten- und Zeilen-Einträge 3 \end{tabular} Parameter Position Spaltendefinition Position der Tabelle im Text c zentriert (default) t oberste Kante der Tabell wird mit Schriftlinie ausgerichtet b unterste Kante... l r c p{breite} Spalten- und Zeilen-Einträge \\ Zeilentrenner & Spaltentrenner Ausrichtung des Textes in der Spalte linksbündig rechtsbündig zentriert mehrzeilige (Absatz-)Spalte mit Breite
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} zentriert eins zwei drei oberste eins zwei drei unterste eins zwei drei 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 Breite L 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 & B 4 \end{tabular} Links#Links2#Mitte,Rechts B L #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 Neuen mit Spaltendefinition und Inhalt Text \multirow{n}{breite}{text} \hline \vline \cline{n-m} fast n Zeilen zu Neuer mit Breite und Inhalt Text zusammen \uspackage{multirow} nötig Breite kann auch * sein erzeugt horizontale Linie mit Tabellenbreite erzeugt vertikale Linie in Spalte erzeugt horizontale Linie zwischen Spalte n und m
Die tabular-umgebung V 1 \begin{tabular}{ l c r p{2,5cm} } 2 \hline 3 Links & Mitte & Rechts \vline & Breite \\ 4 \hline 5 \multicolumn{2}{ c }{neue Linke} 6 & \multirow{2}{2cm}{gemeinsame Rechte} & B \\ 7 \cline{1-3} \cline{4-4} 8 L & M & & B \\ 9 \hline 10 \end{tabular} Links Mitte Rechts Breite neue Linke gemeinsame B L M Rechte B
Wie breit gehts denn? Die tabular*-umgebung 1 \begin{tabular*}{breite}{spaltendefinition} 2 Spalten- und Zeilen-Einträge 3 \end{tabular*} wie tabular, aber mit extra Breite 1 \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} l c r } 2 \hline 3 Links & Mitte & Rechts \\ \hline 4 L & M & R \\ \hline 5 \end{tabular*} Links Mitte Rechts L M R
Tabellen mit extra. Das tabularx-paket 1 \begin{tabularx}{breite}{spaltendefinition} 2 Spalten- und Zeilen-Einträge 3 \end{tabularx} wie tabular*, aber mit extra Spaltendefinition X X passt die Spaltenbreite automatisch an 1 \begin{tabularx}{\textwidth}{ X X l } \hline 2 automatisch & Spaltenbreite & linksbündig\\ \hline 3 zwei Spaltenbreiten & werden automatisch angepasst & linksbündig \\ \hline 4 \end{tabularx} automatisch Spaltenbreite linksbündig zwei Spaltenbreiten werden automatisch angepasst linksbündig
Von Spalten und Definitionen. Das array-paket neu Spaltendefinitionen m{breite} b{breite} >{Erklärung} <{Erklärung}!{Erklärung} wie p, aber setzt Absätze zentriert an Grundlinie wie p, aber richtet Absätze an letzter Zeile aus Fügt Erklärung vor jedem Spalteneintrag ein Fügt Erklärung nach jedem Spalteneintrag ein 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}...mehrzeilige Spalte......Absatz zentriert an Grundlinie......richtet Absätze an letzter Zeile... a T
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}} \\ \hline 5 \end{tabular} Senkrecht a T
Das array-paket III zusätzliche Anpassungen von Tabellen \setlength{\tabcolsep}{abstand} Abstand der vor und nach den einzelnen Spalten jeweils eingefü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 } \hline 5 Links & Mitte & Rechts \\ \hline 6 L & M & R \\ \hline 7 \end{tabular} Links Mitte Rechts L M R Links Mitte Rechts L 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-packet rechter und linker Überhang sind optional wird ü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 r p{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 Breite L M R B L M R B L M R B
Achtung: fltpoint-paket ist notwendig Einmal ausrichten bitte! Das rccol-paket neue Spaltendefinition R-[N][M]{Zahl1}{Zahl2} erzeugt Spalte mit Zahl1 Stellen vor und Zahl2 nach dem Komma, N gibt Dezimalzeichen in den Eingabedaten und M in der Ausgabe an, optionales - sorgt für Beachtung des Minus bei Zentrierung Paketoptionen norounding comma/german point/english Deaktiviert Rounden für das gesammte Dokument Benutzt Komma als Dezimalzeichen Benutzt Punkt als Dezimalzeichen Paketbefehle \rcroundingtrue/false \rcdecimalsign{n} \rcdecimalsigninput/ouput{n} Aktiviert/Deaktiviert Runden Setzt Dezimalzeichen auf N Setzt Dezimalzeichen für Input/Output auf N
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 \hline 5-345,765 & 1,6 & 21 \\ 6-45,130 & 0,2 & 1,658 \\ 7 543,000 & 2 & 9,9 \\ \hline 8 \end{tabular} 1 \rcdecimalsignoutput{:} 2 \rcroundingfalse 3 \begin{tabular}{ R-[,]{4}{3}[..] A B C 345,765 1,6 21..00 45,130 0,2 1..66 543,000 2,0 9..90 A B C 345,765 1:6 21 45,130 0:2 1..658 543,000 2 9..9
Hinweis: Ausrichten mit siunitx 1 \begin{tabular}{ls[ tabnumalign=centre, tabformat=3.6, decimalsymbol=comma]} 2 \toprule 3 Name & {$M$/\si{\gram\per\mole}} \\ 4 \midrule 5 Eisenoxalat & 126,062 \\ 6 Oxals"aure & 90,040 \\ 7 Schwefel & {---} \\ 8 Zinkoxalat & 153,406000 \\ 9 \bottomrule 10 \end{tabular} Name M/g mol 1 Eisenoxalat 126,062 Oxalsäure 90,040 Schwefel 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 Linien Benutze niemals doppelte Linien siehe http://tug.ctan.org/tex-archive/macros/latex/contrib/booktabs/booktabs.pdf und http://www.zvisionwelt.de/typokurz.pdf Seite 11 Paketbefehle \toprule[breite] \midrule[breite] \bottomrule[breite] \cmidrule[breite](trimm){n-m} \morecmidrule \specialrule{breite}{n}{m} Erste Tabellenlinie (dick), Zwischenlinie (dünn) und Endlinie (dick), geht jeweils über die gesammte Tabellenbreite Linie von Spalte n bis m, Trimm ist Konstrukt aus lr{länge} Nur nötig bei zwei cmidrule nacheinander Linie mit Breite, Abstand nach oben N und unten M
Das booktabs-paket II 1 \begin{tabular}{llr} \toprule 2 \multicolumn{2}{c}{a} \\ \cmidrule(r){1-2} 3 B & C & D\\ \midrule 4 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 A B C D B C D C D B C D B C D A B C D B C D C D B C D B C D
Extra lange Tabellen. Die Qual der Wahl supertabular xtab longtable ltxtable ltablex stabular braucht nur einen Durchlauf Spaltenbreiten können pro Seite variieren geeignet für Tabellen mit festen Spaltenbreiten Weiterentwicklung von supertabular ermöglicht extra Tabellenkopf auf letzter Seite benötigt mind. 2 Durchläufe Spaltenbreiten über alle Seiten gleich braucht mind. 2 Durchläufe, bei komplexen Tabellen mehr Weiterentwicklung von longtable Spaltentyp X aus tabularx Gesamtbreite der Tabelle einstellbar Einbinden über extra Datei oder mit filecontents veraltet nur sehr kleine Tabellen möglich (Memory Limit) Keine Kopf- und Fußzeilen siehe http://www.tex.ac.uk/cgi-bin/texfaq2html?label=longtab
Das xtab-paket neue Umgebung \begin{xtabular}{spaltendefinition} \begin{mpxtabular}{spaltendefinition} Mehrseitige Tabelle Mehrseitige Tabelle mit Fußnoten Paketbefehle (müssen vor Umgebung definiert werden) \tablefirsthead{inhalt} \tablehead{inhalt} \tablelasthead{inhalt} \tabletail{inhalt} \tablelasttail{inhalt} \tablecaption{text} \topcaption{text} \bottomcaption{text} \notablelasthead \shrinkheight{länge} \xentrystretch{faktor} Tabellenkopf Tabellenkopf auf folgenden Seiten Tabellenkopf letzter Seite Tabellenfuß Tabellenfuß letzte Seite Tabellenüberschrift (Standardposition) Tabellenüberschrift (oben) Tabellenüberschrift (unten) deaktiviert \tablelasthead Modifiziert erlaubte Höhe der Tabelle, positive Länge verringert/negative Länge vergrößert 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 \toprule 4 Links & Mitte & Rechts & Breite & Breite2 \\ 5 \midrule } 6 \tablehead{ \multicolumn{5}{l}{fortsetzung... }\\ 7 \toprule 8 Links & Mitte & Rechts & Breite & Breite2 \\ 9 \midrule } 10 \tablelasthead{ \multicolumn{5}{l}{letzte Seite... }\\ 11 \toprule 12 Links & Mitte & Rechts & Breite & Breite2 \\ 13 \midrule } 14 \tabletail{ \bottomrule 15 \multicolumn{5}{r}{und weiter gehts...}\\ } 16 \tablelasttail{ \bottomrule 17 \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 für xtab Die Tabelle geht los Links Mitte Rechts Breite Breite2 Und weiter gehts... Fortsetzung... Links Mitte Rechts Breite Breite2 Eine etwas breiter Zeile mit mal etwas länger Und weiter gehts...
Das xtab-paket IV Letzte Seite... Links Mitte Rechts Breite Breite2 Dies 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 \endhead \endfoot \endlastfoot \caption{text} Tabellenkopf Tabellenkopf auf folgenden Seiten Tabellenfuß Tabellenfuß letzte Seite 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 \toprule 5 Links & Mitte & Rechts & Breite & extra \\ 6 \midrule 7 \endfirsthead 8 \multicolumn{5}{l}{fortsetzung... }\\ 9 \toprule 10 Links & Mitte & Rechts & Breite & extra \\ 11 \midrule 12 \endhead 13 \bottomrule 14 \multicolumn{5}{r}{und weiter gehts...}\\ 15 \endfoot 16 \bottomrule 17 \multicolumn{5}{r}{aus die Maus!} \\ 18 \endlastfoot 19 L& M & R & B & X \\ [..] \end{longtable}
Das ltxtable-paket III Table 1: Ein Beispiel für ltxtable Die Tabelle geht los Links Mitte Rechts Breite extra Und weiter gehts... Fortsetzung... Links Mitte Rechts Breite extra Eine etwas breiter Zeile mit mal etwas länger Dies 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 Hinweise geht nur mit pdftex/pdflatex funktioniert auch mit longtable,supertabular,etc eher für Tabellen mit feste Spaltenbreiten bzw. fester Gesamtbreite geeignet
Das pdflscape-paket II 1 Table 1: Ein Beispiel für pdflscape Die Tabelle geht los Links Mitte Rechts Breite extra Und weiter gehts...
Calc2LaTeX Installation http://extensions.services.openoffice.org/project/calc2latex v0.2.4 calc2latex.oxt herunterladen Get it Extras > Extension Manager > Hinzufügen Verwendung Daten eingeben zu exportierenden Bereich markieren Extras > Makros > Makros ausführen > Meine Makros > Calc2Latex > Main > Ausführen
Calc2LaTeX II
Calc2LaTeX III 1 \begin{tabular}{ l c r l } 2 \hline 3 Links & Mitte & Rechts & Breite \\ \hline 4 L & M & R & Ein langer Text 5 mit Zeilenumbrüchen \\ \hline 6 L & M & R & B \\ \hline 7 \end{tabular} Links Mitte Rechts Breite L M R Ein langer Text mit Zeilenumbrüchen L M R B Hinweise Spaltentyp nur l, c und r keine booktabs, colortbl, etc. nur \hline und keine Unterstützung für lange Tabellen
Excel2LaTeX Installation http://www.ctan.org/tex-archive/support/excel2latex/ v3.0 Excel2LaTeX.xla herunterladen Nach /Application Data/Microsoft/AddIns kopieren über Excel-Options > Add-Ins > Manage Excel Add-ins aktivieren Verwendung Daten eingeben zu exportierenden Bereich markieren Makros > Excel2LaTeX
Excel2LaTeX II
Excel2LaTeX III 1 \begin{tabular}{r c r r } \addlinespace \toprule 2 Links & Mitte & Rechts & Breite \\ \midrule 3 L & M & R & Ein langer Text 4 mit Zeilenumbrüchen \\ 5 L & M & R & B \\ \bottomrule 6 \end{tabular} Links Mitte Rechts Breite L M R Ein langer Text mit Zeilenumbrüchen L M R B Hinweise Spaltentyp anscheinend nur c und r booktabs werden unterstützt keine Unterstützung für lange Tabellen
Dokumentation www.torsten-schuetze.de/tex/tabsatz-2004.pdf www2.informatik.hu-berlin.de/~piefel/latex-ps/v05-tabellen.pdf http://en.wikibooks.org/wiki/latex/tables http://www.ctan.org/tex-archive/help/catalogue/entries/tabularx.html http://www.ctan.org/tex-archive/help/catalogue/entries/array.html http://www.ctan.org/tex-archive/help/catalogue/entries/colortbl.html http://www.ctan.org/tex-archive/help/catalogue/entries/rccol.html http://www.ctan.org/tex-archive/help/catalogue/entries/booktabs.html http://www.ctan.org/tex-archive/help/catalogue/entries/xtabs.html http://www.ctan.org/tex-archive/help/catalogue/entries/ltxtable.html http://www.ctan.org/tex-archive/help/catalogue/entries/pdflscape.html Christian Degenkolb (TUBAF) Tabellen in LAT E X 36
\endinput