Tabellen in LaTeX - All the fun you never wanted to have
Transcription
Tabellen in LaTeX - All the fun you never wanted to have
Christian Degenkolb Tabellen in LATEX All 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 2 3 \begin{tabular}[Position]{Spaltendefinition} Spalten- und Zeilen-Einträge \end{tabular} Parameter Position b Position der Tabelle im Text zentriert (default) oberste Kante der Tabell wird mit Schriftlinie ausgerichtet unterste Kante . . . l r c p{Breite} Ausrichtung des Textes in der Spalte linksbündig rechtsbündig zentriert mehrzeilige (Absatz-)Spalte mit Breite c t Spaltendefinition Spalten- und Zeilen-Einträge \\ & Zeilentrenner Spaltentrenner Die tabular-Umgebung II 1 2 3 zentriert \begin{tabular}[c]{c} eins\\zwei\\drei \end{tabular} oberste \begin{tabular}[t]{c} eins\\ zwei\\ drei \end{tabular} unterste \begin{tabular}[b]{c} eins\\ zwei\\ drei \end{tabular} eins eins zwei zentriert zwei oberste eins unterste drei drei zwei drei 1 2 3 4 \begin{tabular}{l c r p{2.5 cm}} Links & Mitte & Rechts & Breite \\ L & M & R & B \\ \end{tabular} Links L Mitte M Rechts R Breite B Die tabular-Umgebung III zwischen Spaltendefinition | oder || @{Ersatz} *{ n }{ Spaltendefinition } 1 2 3 4 senkrechte Linie oder DoppelFüllt Spaltenzwischenraum mit Ersatz Abkürzung für n-mal Verwendung der Spaltendefinition \begin{tabular}{|| *{2}{ l@{\#} } c @{,} r | p{2.5 cm} ||} Links & Links2 & Mitte & Rechts & B \\ L & L2 & M & R & B \end{tabular} Links#Links2#Mitte,Rechts L #L2 # M , R B 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} fast n Zeilen zu Neuer mit Breite und Inhalt Text zusammen \uspackage{multirow} nötig Breite kann auch * sein \hline \vline \cline{n-m} erzeugt horizontale Linie mit Tabellenbreite erzeugt vertikale Linie in Spalte erzeugt horizontale Linie zwischen Spalte n und m Die tabular-Umgebung V 1 2 3 4 5 6 7 8 9 10 \begin{tabular}{|l|c|r|p{2,5cm}|} \hline Links & Mitte & Rechts \vline & Breite \\ \hline \multicolumn{2}{|c|}{neue Linke} & \multirow{2}{2cm}{gemeinsame Rechte} & B \\ \cline{1-3} \cline{4-4} L & M & & B \\ \hline \end{tabular} Links Mitte neue Linke L M Rechts gemeinsame Rechte Breite B B Wie breit gehts denn? Die tabular*-Umgebung 1 2 3 \begin{tabular*}{Breite}{Spaltendefinition} Spalten- und Zeilen-Einträge \end{tabular*} wie tabular, aber mit extra Breite 1 2 3 4 5 \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}|l|c|r|} \hline Links & Mitte & Rechts \\ \hline L & M & R \\ \hline \end{tabular*} Links L Mitte M Rechts R Tabellen mit eXtra. Das tabularx-Paket 1 2 3 \begin{tabularx}{Breite}{Spaltendefinition} Spalten- und Zeilen-Einträge \end{tabularx} wie tabular*, aber mit extra Spaltendefinition X X passt die Spaltenbreite automatisch an 1 2 3 4 \begin{tabularx}{\textwidth}{|X|X|l|} \hline automatisch & Spaltenbreite & linksbündig\\ \hline zwei Spaltenbreiten & werden automatisch angepasst & linksbündig \\ \hline \end{tabularx} automatisch zwei Spaltenbreiten Spaltenbreite werden automatisch angepasst linksbündig linksbündig Von Spalten und Definitionen. Das array-Paket neu Spaltendefinitionen 1 2 3 m{Breite} b{Breite} wie p, aber setzt Absätze zentriert an Grundlinie wie p, aber richtet Absätze an letzter Zeile aus >{Erklärung} <{Erklärung} !{Erklärung} 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 \begin{tabular}{| >{\small}p{2cm} | >{\bfseries}m{2cm} | >{\itshape}b{2cm} | >{\Large $}c<{$} |} \hline [..]mehrzeilige[..] & [..]zentriert[..] & [..]an letzter[..] & \sqrt{\frac{a}{T}} \\ \hline \end{tabular} . . .mehrzeilige Spalte . . . . . .Absatz zentriert an Grundlinie ... . . .richtet Absätze an letzter Zeile . . . q a T Das array-Paket II eigene Spaltendefinitionen \newcolumntype{Buchstabe}{Spaltendefinition} legt neuen Spaltentyp Buchstabe mit Spaltendefinition an 2 3 4 5 \newcolumntype{M}{ >{\Large $} c <{$} } \newcolumntype{S}[1]{>{\begin{turn}{90} \begin{minipage}{#1}} l <{\end{minipage}\end{turn}}} \begin{tabular}{ S{2em} | M} Senkrecht & \sqrt{\frac{a}{T}} \\ \hline \end{tabular} Senkrecht 1 q 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 2 3 4 5 6 7 \setlength{\tabcolsep}{10pt} \setlength{\doublerulesep}{10pt} \renewcommand{\arraystretch}{3} \begin{tabular}{|| l| c| r||} \hline Links & Mitte & Rechts \\ \hline L & M & R \\ \hline \end{tabular} Links L Mitte M Rechts R Links L Mitte M Rechts 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 2 3 4 5 6 7 8 \begin{tabular}{ l >{\columncolor{yellow}[.5\tabcolsep]}c r p{2.5cm} } Links & Mitte & Rechts & \cellcolor[gray]{.5} Breite \\ \rowcolor[rgb]{0.3,0.45,1} L & M & R & B \\ L & M & \cellcolor{TUBAFgeo} R & B \\ \rowcolor{green}[1pt][5pt] L & M & R & B \\ \end{tabular} Links L L L Mitte M M M Rechts R R R Breite B B B 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} Achtung: fltpoint-Paket ist notwendig Aktiviert/Deaktiviert Runden Setzt Dezimalzeichen auf N Setzt Dezimalzeichen für Input/Output auf N Das rccol-Paket II 1 2 3 4 5 6 7 8 \begin{tabular}{| R[,]{4}{3} | R{1}{1} | R[,][..]{2}{2} |} \hline \multicolumn{1}{|c|}{A} & \multicolumn{1}{c}{B} & \multicolumn{1}{|c|}{C} \\ \hline -345,765 & 1,6 & 21 \\ -45,130 & 0,2 & 1,658 \\ 543,000 & 2 & 9,9 \\ \hline \end{tabular} 1 2 3 A −345,765 −45,130 543,000 B 1,6 0,2 2,0 C 21..00 1..66 9..90 \rcDecimalSignOutput{:} \rcRoundingfalse \begin{tabular}{|R-[,]{4}{3}[..] A −345,765 −45,130 543,000 B 1:6 0:2 2 C 21 1..658 9..9 Hinweis: Ausrichten mit siunitx 1 2 3 4 5 6 7 8 9 10 \begin{tabular}{lS[ tabnumalign=centre, tabformat=3.6, decimalsymbol=comma]} \toprule Name & {$M$/\si{\gram\per\mole}} \\ \midrule Eisenoxalat & 126,062 \\ Oxals"aure & 90,040 \\ Schwefel & {---} \\ Zinkoxalat & 153,406000 \\ \bottomrule \end{tabular} Name M /g mol−1 Eisenoxalat Oxalsäure Schwefel Zinkoxalat 126,062 90,040 — 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] Erste Tabellenlinie (dick), Zwischenlinie (dünn) und Endlinie (dick), geht jeweils über die gesammte Tabellenbreite \cmidrule[Breite](Trimm){n-m} Linie von Spalte n bis m, Trimm ist Konstrukt aus lr{Länge} Nur nötig bei zwei cmidrule nacheinander \morecmidrule \specialrule{Breite}{N}{M} Linie mit Breite, Abstand nach oben N und unten M Das booktabs-Paket II 1 2 3 4 5 6 7 8 9 \begin{tabular}{llr} \toprule \multicolumn{2}{c}{A} \\ \cmidrule(r){1-2} B & C & D\\ \midrule B & C & D \\ \specialrule{2pt}{4pt}{6pt} & C & D \\ B & C & D \\ \cmidrule(l{10pt}){2-3} B & C & D \\ \bottomrule A A B C D B C D B B B C C D D B B B C D C C C C C D D D D D Extra lange Tabellen. Die Qual der Wahl supertabular ⊕ braucht nur einen Durchlauf Spaltenbreiten können pro Seite variieren geeignet 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} \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 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 \xentrystretch{-0.1} \tablefirsthead{ \multicolumn{5}{l}{Die Tabelle geht los} \\ \toprule Links & Mitte & Rechts & Breite & Breite2 \\ \midrule } \tablehead{ \multicolumn{5}{l}{Fortsetzung... }\\ \toprule Links & Mitte & Rechts & Breite & Breite2 \\ \midrule } \tablelasthead{ \multicolumn{5}{l}{Letzte Seite... }\\ \toprule Links & Mitte & Rechts & Breite & Breite2 \\ \midrule } \tabletail{ \bottomrule \multicolumn{5}{r}{Und weiter gehts...}\\ } \tablelasttail{ \bottomrule \multicolumn{5}{r}{Aus die Maus!} \\ } \tablecaption{Ein Beispiel für xtab} \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 Fortsetzung... Links Mitte Rechts Breite Breite2 L M Eine etwas breiter L L L L L L L L L L L L L L L L L L M M M M M M M M M M M M M M M M M M R B R B R B R B R B R B R B R B R B R B R B R B R B R B R B R B R B R B Und weiter B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 gehts... Links L L L L L L L L L L L L L L L L L L L Mitte Rechts Breite Breite2 M M M M M M M M M M M M M M M M M M M R B Zeile mit B2 mal etwas länger R B B2 R B B2 R B B2 R B B2 R B B2 R B B2 R B B2 R B B2 R B B2 R B B2 R B B2 R B B2 R B B2 R B B2 R B B2 R B B2 R B B2 R B B2 R B B2 Und weiter gehts... Das xtab-Paket IV Letzte Seite... Links Mitte Rechts Breite Breite2 L M L M L M L M L M L M Dies ist die letzte aller R R R R R R Zeile B B2 B B2 B B2 B B2 B B2 B B2 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 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 \begin{longtable}[c]{l c r p{2cm} X} \caption{Ein Beispiel für ltxtable} \\ \multicolumn{5}{l}{Die Tabelle geht los} \\ \toprule Links & Mitte & Rechts & Breite & eXtra \\ \midrule \endfirsthead \multicolumn{5}{l}{Fortsetzung... }\\ \toprule Links & Mitte & Rechts & Breite & eXtra \\ \midrule \endhead \bottomrule \multicolumn{5}{r}{Und weiter gehts...}\\ \endfoot \bottomrule \multicolumn{5}{r}{Aus die Maus!} \\ \endlastfoot L& M & R & B & X \\ [..] \end{longtable} Das ltxtable-Paket III Fortsetzung... Table 1: Ein Beispiel für ltxtable Die Tabelle geht los Links L L L L L L L L L L L L L L L L L L L L Mitte Rechts Breite eXtra M M M M M M M M M M M M M M M M M M M M R R R R R R R R R R R R R R R R R R R R B X B X B X B X B X B X B X B X B X B X B X B X B X B X B X B X B X B X B X B X Und weiter gehts... Links Mitte Rechts Breite eXtra L L Eine etwas M M breiter L L L L L L L L L L L Dies ist die letzte M M M M M M M M M M M aller R B R B Zeile mit R R R R R R R R R R R Zeile B B B B B B B B B B B in X X mal etwas länger X X X X X X X X X X X 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 Table 1: Ein Beispiel für pdflscape Die Tabelle geht los Links 1 L L L L L L L L L L L L Mitte Rechts Breite M M M M M M M M M M M M R R R R R R R R R R R R B B B B B B B B B B B B eXtra X X X X X X X X X X X X 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 2 3 4 5 6 7 \begin{tabular}{|l|c|r|l|} \hline Links & Mitte & Rechts & Breite \\ \hline L & M & R & Ein langer Text mit Zeilenumbrüchen \\ \hline L & M & R & B \\ \hline \end{tabular} Links L L Mitte M M Rechts R R Breite Ein langer Text mit Zeilenumbrüchen 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 2 3 4 5 6 \begin{tabular}{r c r r } \addlinespace \toprule Links & Mitte & Rechts & Breite \\ \midrule L & M & R & Ein langer Text mit Zeilenumbrüchen \\ L & M & R & B \\ \bottomrule \end{tabular} Links L L Mitte M M Rechts Breite R R Ein langer Text mit Zeilenumbrüchen 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 LATEX 36 \endinput