Kategorie-Aktualisierung
Ich habe eben die Kategorie »MI1-Tutorium« allgemeiner »MI-Tutorium« umbenannt. Wer also explizit nur die Beiträge aus dieser Kategorie abonniert hat, möge bitte seinen Newsfeed-Reader aktualisieren.
Professionelle Tabellen mit LaTeX
Tabellen anlegen ist mühselig weil relativ stumpf. Insbesondere sind longtable-Umgebungen mit einheitlichem Aussehen größtenteils copy'n'paste. Um mir diese Arbeit zu erleichtern, habe ich (nicht ganz ohne Hilfe) eine kleine Umgebung geschrieben:
% Benötigte Pakete
\usepackage[table]{xcolor}
\usepackage{longtable,calc,array}
% Vorgeplenkel: "LaTeX-Kernel"-Modus betreten (es werden interne Makros benötigt)
\makeatletter
% Grundfarbe definieren
\definecolor{tabcolor}{RGB}{255,0,0}
% alternierende Hintergrundfarben; ab der zweiten Zeile ein zartes rosa verwenden
\rowcolors{1}{tabcolor!5}{}
% Zeilenhöhe um 50% vergrößern
\renewcommand\arraystretch{1.5}
% Eigentliche Definition. Es werden vier Parameter erwartet:
% 1. Spaltendefinition
% 2. Kopfzeile
% 3. Tabellenbeschriftung
% 4. (eindeutiger) Referenzschlüssel/Label
\newenvironment{tabelle}[4]{
% temp-Variable definieren
\let\xyz@tempa\@empty%
% ersten Parameter durchgehen
\@for\xyz@tempb:=#1\do{%
% Spaltendefinition der longtable erzeugen
% die Spaltenbreiten ergeben sich aus der anteiligen Textbreite
% anzüglich 2 mal der Breite der Tabellenzellenbegrenzung
% (einmal links, einmal rechts)
\edef\xyz@tempa{\xyz@tempa p{\xyz@tempb\linewidth-2tabcolsep}}%
}
% longtable-Definition vorbereiten...
\edef\xyz@tempa{\noexpand\begin{longtable}{\xyz@tempa}}
% ... und ausführen
\xyz@tempa
% Kopfzeile; wird auf jeder Seite wiederholt und hat 15& Hintergrundfarbe
\rowcolor{tabcolor!15} #2 \\
\endhead
% Fusszeile vor Seitenumbruch; angegebener Text + Hinweis, dass die
% Tabelle fortgesetzt wird
\caption[]{#3\\(wird fortgesetzt)}
\endfoot
% letzte Fusszeile ohne diesen Hinweis. Dafür mit referenzierbarem Label
% und Eintrag ins Tabellenverzeichnis (sofern vorhanden)
\caption{#3 \label{#4}}
\endlastfoot
}{
\end{longtable}%
}
% internen LaTeX-Modus wieder verlassen
\makeatother
Erläuterung der Parameter:
- Spaltendefinition. Erwartet wird eine Komma-separierte Liste mit Dezimalwerten, die der prozentualen Textbreite entsprechen. Beispiel:
{.5,.25,.25}würde eine Tabelle mit drei Spalten erzeugen, die erste 50%, die anderen beiden 25% der verfügbaren Textbreite breit. Unsinnige Angaben wie{1,3}werden nicht verhindert, veranlassen LaTeX aber dazu Warnungen auszugeben. Anmerkung: Alle Spalten sind vom Typp- und damit links ausgerichtet. - Kopfzeile. Hier wird erwartet, dass zu maximal jeder definierten Spalte ein Kopfzeileninhalt angegeben wird. Tabellen-typisch ist die Trennung der Spalten mit
&. Für das obige Spaltendefinitionsbeispiel wäre{a&&b}möglich; hier bekäme die 50% breite Spalte die Kopfzeilentexta, die dritte Spalteb. - Tabellenbeschriftung. Der Text, der unter der Tabelle angezeigt wird. Entspricht dem normalen
\caption. - Referenzschlüssel. Eindeutiger Bezeichner der Tabelle; entspricht einem
\label.
Der Einsatz ist mit diesem Wissen denkbar einfach:
\begin{tabelle}{.5,.5}{Kopf links & Kopf rechts}{Eine Tabellenunterschrift}{tab:example}
Zelle 1.1 & Zelle 1.2 \\
Zelle 2.1 & Zelle 2.2 \\
... & ... \\
Zelle n.1 & Zelle n.2 \\
\end{tabelle}
Verbesserungsmöglichkeiten:
- Parameter 4 (und vllt. auch 3) könnte man optional machen.
- Derzeit sind einzig
p-Spalten möglich - Die Farbe ist auch relativ statisch
Dass man in Tabelle keine Linien verwenden sollte, braucht hoffentlich nicht weiter erwähnt werden…
Viel Spaß beim Tabellen setzen
Dominik
(Nachbearbeitung 02.04.09, 19:13 - Blogsoftware hat einige (okay, alle) \ verschluckt…)
-
Kolophon
- Notizblog von Dominik Menke. Hier ein bisschen Studium, dort ein wenig LaTeX. Gemischt mit konservativ-linker, aber ökologisch abbaubarer Politik. Kuriose Netzfundstücke und technischer Kram. Nicht zuletzt auch Infos zur Medieninformatik.

-
Suchen
-
Kategorien
-
Archiv
-
Links
Studium
LaTeX
Privates
-
Neueste 10 Einträge
-
Meta