Zusammenfassung
Diese Lektion erweitert die lesbare Tabelle der vorigen Lektion auf die Fälle, die das einfache Raster nicht löst. Sie zeigt, wie man Zellen in der Breite mit \multicolumn verbindet, um Spaltenköpfe unter einer Teillinie zu gruppieren und um die Ausrichtung einer einzelnen Zelle zu ändern, und leitet her, wohin die überschüssige Breite eines gruppierten Spaltenkopfs geht; sie zeigt, wie man Zellen in der Höhe mit \multirow verbindet und wann man es besser vermeidet; sie vergleicht drei Wege, einer Tabelle die Zeilenbreite zu geben (tabularx mit seiner X-Spalte, tabular* mit \extracolsep und das Skalieren mit \resizebox, von dem abgeraten wird); sie setzt mehrseitige Tabellen mit longtable, mit ihrem wiederholten Tabellenkopf und den Durchläufen, die sie brauchen; sie stellt das Drehen von Seiten für sehr breite Tabellen vor; sie erzeugt Tabellen aus einer Datendatei mit csvsimple und pgfplotstable, wobei die Datei mit filecontents angelegt wird; sie zeigt tabularray als moderne Alternative; und sie schließt mit den typischen Fehlern, gelesen in echten Logdateien.
Lernziele
- Gruppierte Spaltenköpfe mit
\multicolumnund\cmidrulebauen, die Zellen jeder Zeile zählen und das Ergebnis vorhersagen, wenn die Zählung nicht aufgeht. - Zwischen
\multirowund der leeren Zelle der booktabs-Tradition wählen und die Wahl mit dem Lesefluss begründen. - Eine Tabelle mit tabularx oder mit
tabular*auf die Zeilenbreite bringen und erklären, warum man sie nicht mit\resizeboxskaliert. - Mit longtable eine mehrseitige Tabelle mit eigenem Kopf und Fuß setzen, ihre Warnungen deuten und wissen, warum sie nicht in einer Gleitumgebung stehen kann.
- Eine Tabelle aus einer Datendatei erzeugen und erklären, was eine einzige Datenquelle gewinnt.
Zellen über mehrere Spalten
Der Befehl \multicolumn{n}{Ausrichtung}{Text} nimmt den Platz von n benachbarten Zellen einer Zeile ein und ersetzt sie durch eine einzige, mit der Ausrichtung aus seinem zweiten Argument, das wie in der Spaltenspezifikation der Tabelle geschrieben wird (l, c, r, p{…} und auch @{}). Daraus folgt eine Zählregel, die der Autor in jeder Zeile prüfen muss: Die Summe der einfachen Zellen und der in jedem \multicolumn angegebenen Breiten darf höchstens die Zahl der Spalten der Spezifikation sein.
Die Ausrichtung einer einzelnen Zelle ändern
Die bescheidenste Verwendung von \multicolumn umfasst eine einzige Spalte: \multicolumn{1}{c}{…} verbindet nichts, gibt aber dieser Zelle eine andere Ausrichtung als ihrer Spalte. So zentriert man den Kopf einer Spalte rechtsbündiger Zahlen, oder man richtet die Beschriftung einer Summenzeile rechtsbündig aus, damit sie neben ihrer Zahl steht.
\documentclass{article}\usepackage{fontspec}\usepackage[ngerman]{babel}\usepackage{booktabs}\begin{document}\begin{tabular}{llr}\toprulePosten & Einzelheiten & \multicolumn{1}{c}{Betrag} \\\midruleReisen & Zwei Archivbesuche & 1\,200 \\Material & Papier und externe Platten & 300 \\Dienste & Digitalisierung von Beständen & 850 \\\midrule\multicolumn{2}{r}{Summe} & 2\,350 \\\bottomrule\end{tabular}\end{document}Der Kopf „Betrag“ steht zentriert über einer Spalte, die rechtsbündig bleibt, und die Beschriftung „Summe“, die die ersten beiden Spalten umfasst, steht rechtsbündig neben ihrer Zahl.
Gruppierte Spaltenköpfe
Wenn mehrere Spalten eine Kategorie teilen, gewinnt die Tabelle durch einen zweistufigen Kopf: oben der Name der Gruppe, der ihre Spalten umfasst; darunter der jeder Spalte. Zwischen beiden Stufen bietet booktabs die Teillinie \cmidrule{2-3}, die nur die Spalten 2 bis 3 unterstreicht; mit den Optionen (lr), \cmidrule(lr){2-3}, wird die Linie links und rechts ein wenig gekürzt, sodass zwei benachbarte Linien sich nicht berühren und das Auge zwei Gruppen sieht.
\documentclass{article}\usepackage{fontspec}\usepackage[ngerman]{babel}\usepackage{booktabs}\begin{document}\begin{tabular}{lrrrr}\toprule& \multicolumn{2}{c}{Kontrollgruppe}& \multicolumn{2}{c}{Versuchsgruppe} \\\cmidrule(lr){2-3} \cmidrule(lr){4-5}Messung & Mittel & SD & Mittel & SD \\\midruleAnfang & 52,1 & 8,3 & 51,7 & 7,9 \\Ende & 54,0 & 8,1 & 61,2 & 7,4 \\\bottomrule\end{tabular}\end{document}Die erste Zeile hat eine leere Zelle (das anfängliche &) und zwei Zellen zu je zwei Spalten: eins plus zwei plus zwei, fünf, wie die Spezifikation. Man beachte, dass beide Spalten der Standardabweichung breiter sind, als ihre Zahlen es verlangen.
Wohin die überschüssige Breite geht
Diese zusätzliche Breite im vorigen Beispiel ist kein Zufall. Ist der Text eines \multicolumn breiter als die Summe der Spalten, die er umfasst, muss die Tabelle breiter werden, und das Satzprogramm gibt den ganzen Überschuss der letzten dieser Spalten; die übrigen behalten ihre natürliche Breite. „Versuchsgruppe“ ist breiter als „Mittel“ und „SD“ zusammen, und den Unterschied erhält die zweite. Bei einem Kopf, der viel länger ist als seine Daten, ist die Wirkung nicht mehr unauffällig.
\documentclass{article}\usepackage{fontspec}\usepackage[ngerman]{babel}\usepackage{booktabs}\begin{document}\begin{tabular}{lrr}\toprule& \multicolumn{2}{c}{Versuchsgruppe nach der Intervention} \\\cmidrule(lr){2-3}Messung & Mittel & SD \\\midruleAnfang & 51,7 & 7,9 \\Ende & 61,2 & 7,4 \\\bottomrule\end{tabular}\end{document}Der Mittelwert steht weit von seiner Standardabweichung entfernt, getrennt durch eine Lücke, die nichts bedeutet. Die Korrektur ist nicht typografisch, sondern redaktionell: ein kurzer Kopf („Versuch“) und die Erklärung in der Tabellenüberschrift oder im Text.
Inhalt wird geladen…
Abgeschlossen
Melde dich an, um deinen Fortschritt zu speichern