In einer Reihe von Artikeln in der If Fase werden nützliche Elemente von LaTeX vorgestellt, die erprobt sind und bei der Arbeit der Informatiklehrerin eingesetzt werden.
In den bisher vorgelegten dreiundzwanzig Teilen der Artikelserie – Ausgaben 0 … 22: rhinodidactics.de/Archiv – finden Sie Hinweise und Anmerkungen zu den Themen: Installation, grundlegende Arbeitsweisen, Quellen zu Dokumentationen, Arbeit mit KOMAscript, PSTricks, PSfrag, Erstellung von Arbeitsblättern, Struktogrammen, Automatengraphen, Elemente von UML, Barcodes, Formularerstellung, Zitieren, Abbildungen, ER Diagramme (mehrfach), Fragen der [Mikro-]Typografie, Setzen von Briefen, Graphiken mit LaTeX erstellen, sowie Einbinden von Lizenzbedingungen in LaTeX-Quelltexte sowie in PDF-Dokumente. Mit der hier vorliegenden Ausgabe 23 wird thematisiert, wie Tabellen erfolgreich gesetzt werden können.
Die Überschrift impliziert Eulen nach Athen zu tragen, da jedem Menschen, der auch nur ansatzweise mit LaTeX gearbeitet hat, diese Eigenschaft zuvorderst begegnet (und hoffentlich froh macht – oder kennen Sie ein schnelleres Werkzeug, um direkt mit der Arbeit zu beginnen, als einen Editor – es muss ja nicht gleich der Emacs sein ;-). Allerdings sind es die mit dieser Möglichkeit verbundenen mächtigen Ausdrucksweisen, die uns ab und zu auch Zeit kosten: wer vermag schon, alle Parametrisierungen, die für die Erledigung einer konkreten Aufgabe notwendig, nützlich, bedenkenswert sind, zu behalten, wenn sie nicht täglich eingesetzt werden.
% array tabular -- ein vollständiges Beispiel \documentclass[a4paper]{scrartcl} \usepackage[latin1]{inputenc} \usepackage{array} \begin{document} \begin{tabular}{% p{1cm} p{2cm} l p{1.5cm} } Zeit & Phase & Aktivität & Medium \\ \hline $7^{45}$ & Begrüßung & & \\ & Einführung & Stiller Impuls & Folie \\ \ldots{} \end{tabular} \end{document}
Für LaTeX stehen verschiedene Pakete bereit, die spezielle Aspekte zur
Erstellung von Tabellen berücksichtigen. Im Rahmen dieses Artikels werden
einige dieser Pakete vorgestellt – eine vertiefende Auseinandersetzung
verbietet sich ob des Charakters dieser Serie. Die Standardschnittstelle ist
mit den Paketen tabular
, tabular*
und
array
gegeben. Für diese Schnittstelle sind einige Eigenschaften
identisch, so dass einmal verstandene Formatierungselemente in allen drei
Fällen funktionieren: //
trennt die Zeilen der Tabelle –
&
trennt die Spalten. Sollen waagerechte Linien gesetzt
werden, wird dies mit \hline
erreicht. Über dieses Wissen hinaus
ist es notwendig, Angaben zum konkreten Spaltenlayout vorzunehmen. Dies wird
die erste Zeile nach \begin{tabular}{
bewerkstelligt. In dem
ersten Beispiel wurden drei feste Breiten gewählt, innerhalb dieser wird der
übliche Paragraphensatz vorgenommen – die dritte Spalte hingegen wurde
beispielhaft linksbündig ohne Breitenangabe vorgesehen (alternativ sind
c
für zentriert oder r
für rechtsbündig vorgesehen.
Zwischen die Spaltenlayoutangaben können durch |
senkrechte
Linien gesetzt werden – ich lehne dies aber aus Gründen der Lesebarkeit
ab. Weitere Layoutmöglichkeiten sind der bereits empfohlenen Literatur zu
entnehmen.
Es scheint, dass die Bestimmung der Breite von Spalten durch Algorithmen
durchaus zu guten Ergebnissen führen kann – was liegt also näher, als
Pakete zu nutzen, die diese Algorithmen für LaTeX verfügbar machen:
tabluarx
, tabluary
.
Was ihr wollt – ein wenig zusätzlicher Aufwand ist notwendig, um all' die Feinheiten umzusetzen, die beim Tabellensatz immer mal wieder gewüscht werden:
% colortbl -- ein Beispiel \documentclass{article} \usepackage[latin1]{inputenc} \usepackage{array} \usepackage{colortbl} \begin{document} \begin{tabular} {>{\columncolor{blue}\color{white}\bfseries}lr} \rowcolor[gray]{0.8} \color{black} Tag & \bfseries Teilnehmende \\[2pt] Montag & 312 \\ Dienstag & 817 \\ \ldots{} & \ldots{} \\ \cellcolor[gray]{0.8}\color{black} Summe & 3124 \end{tabular} \end{document}
Sehen Sie sich die Pakete longtable
und
supertabular
an. Ein wichtiger Hinweis: in beiden Varianten ist
es unmöglich, innerhalb eines Paragraph einen automatischen Seitenumbruch zu
erreichen – hier ist gerade bei Unterrichtsentwürfen Handarbeit
angesagt, wenn der Verlauf länger als eine Seite werden sollte. Dies ist aber
auch nicht unbedingt anzuraten.
Eine der Stärken von LaTeX besteht in dem Satz von Fußnoten und der
eleganten Lösung aller damit zusammenhängenden Probleme. Bei der Verwendung
von Fußnoten in Tabellen ist diese Möglichkeit auf zwei Wegen zu erreichen:
innerhalb der Tabelle wird die Fußnote angekündigt
\footnotemark
, außerhalb wird der Fußnotentext
\footnotetext
bereitgestellt. Bei der zweiten Möglichkeit wird
wiederum ein eigenes Paket genutzt blkarray
– wobei
ergänzend zu bemerken ist, dass longtable
diese Variante auch
unterstützt. Damit kann – wie gewohnt – im laufenden Text (also
in der Tabelle) ganz normal mit \footnote{...}
gearbeitet werden
(mein Dank für den Bericht in der aktuellen Ausgabe 4/2007 der TeXnischen
Komödie von Herbert Voß).
Neben der bereits oben erwähnten LaTeX-typischen Orthogonalität existiert gerade für den Bereich Tabellen eine Eigenschaft, die durchaus häufiger eingesetzt werden kann, wenn komplexe Tabellenstrukturen realisiert werden sollen: Wir können komplette Tabellen als Zellen in andere Tabellen einbinden.
Herbert Voß bietet auf der Webseite tug.org/TeXnik/mainFAQ.cgi (im Index nach Table/Array
Tips
Ausschau halten) eine wohlsortierte Sammlung mit einigen Tipps zu
Tabellen und Verweisen auf die jeweiligen Quellen, mit Beispielen (auch im
Quellcode) und gesetzten Ergebnissen, die viele der Fragen beantworten, die
im Laufe der Zeit bei der Arbeit mit Tabellen auftauchen. Eine weitere
Möglichkeit besteht darin, über einen CTAN-Server eine Suche nach Paketen
durchzuführen, die table
enthalten. www.dante.de/cgi-bin/ctan-index Dann werden alle Pakete
gefunden, die irgendetwas mit Tabellensatz zu tun haben.
Weitere Möglichkeiten, um Tabellen zu erstellen, die mich aber nicht überzeugen konnten, bestehen darin, aus Büropaketen mit Hilfe der Exportfunktion, wie sie bei Abiword oder Openoffice.org existieren, eine LaTeX-Datei zu erzeugen. Allerdings waren die Ergebnisse nicht so, dass auf Anhieb eine weitere Arbeit gut unterstützt wurde – das Layout war einfach schlecht. Einzig die Exportfunktion von Gnumeric hat mich etwas mehr überzeugt.