PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tabellenlayout



slowfox
08-09-2011, 11:55
Ich habe eine Tabelle gesetzt, in der eine Reihe von Zellen durch \multicolumn zusammengefasst sind. Leider werden die Inhalte von mit \multicolumn gesetzten Zellen nicht zentriert über die "normalen" Zellen gesetzt. Mit Tabellen habe ich mich bislang nicht häufig auseinander gesetzt. Wie muss ich die \multicolumns formatieren, damit das gewünschte Bild herauskommt? (Anbei ein Scan der die unterschiedlichen Abstände visualisiert.)


\documentclass[11pt,captions=tableheading,german]{scrbook}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}

\usepackage{booktabs}

\newcommand{\mc}[3]{\multicolumn{#1}{#2}{#3}}


\begin{document}

\begin{table}[h]
\caption{Störrische Tabelle}
\centering
\begin{tabular}{@{}c*{3}{r@{$\,\cdot\,$}l@{\enspac e}r@{$\,\cdot\,$}l}@{}}
\toprule
Hauptspalte 0 & \mc{4}{c}{Hauptspalte 1} & \mc{8}{c}{Hauptspalte 2} \\
\cmidrule(r){1-1} \cmidrule(lr){2-5} \cmidrule(l){6-13}
& \mc{4}{c}{}
& \mc{4}{c}{Nebenspalte 1}
& \mc{4}{c}{Nebenspalte 2} \\
\cmidrule(lr){6-9} \cmidrule(l){10-13}
& \mc{2}{c}{Spalte 1} & \mc{2}{c}{Spalte 2}
& \mc{2}{c}{Spalte 3} & \mc{2}{c}{Spalte 4}
& \mc{2}{c}{Spalte 5} & \mc{2}{c}{Spalte 6} \\
\midrule \addlinespace
0-0-0 & 1,111 & $10^{1111}$ & 2,222 & $10^{22}$
& 3,333 & $10^{3333}$ & 4,444 & $10^{44}$
& 5,555 & $10^{5555}$ & 6,666 & $10^{66}$ \\
\bottomrule
\end{tabular}
\end{table}

\end{document}

rstuby
08-09-2011, 12:24
Also das einzige, was wirklich nicht ganz passt, sind die größeren Abstände hinten bei "Hauptspalte 2" und "Nebenspalte 2". Die bei dir auf dem Scan schwarz gemalten Blöcke haben ganz logischerweise eine unterschiedliche Größe, weil die Spaltenüberschriften jeweils (korrekt zentriert) über unterschiedlich breiten Spalten stehen. Also die Spalten 1, 3 und 5 sind breiter als die Spalten 2, 4 und 6, die Überschriften aber gleich breit, so dass logischerweise an den Seiten der Überschriften 1, 3 und 5 mehr Platz bleibt.

slowfox
09-09-2011, 06:03
Erstmal meinen Dank an Dich rstuby, dass Du Dich meinem Problem angenommen hast. Allerdings kann ich Deiner Beurteilung der Situation nicht beipflichten. Ich habe das Beispiel überarbeitet, so dass die Zellen nun hinsichtlich ihrer Breite einheitlich sind:


\documentclass[11pt,captions=tableheading,german]{scrbook}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}

\usepackage{booktabs}

\newcommand{\mc}[3]{\multicolumn{#1}{#2}{#3}}

\newcommand{\B}{\rule{1cm}{.3cm}} % Platzhalter

\begin{document}

\begin{table}[h]
\caption{Störrische Tabelle}
\centering
\begin{tabular}{@{}c*{3}{r@{$\,\cdot\,$}l@{\enspac e}r@{$\,\cdot\,$}l}@{}}
\toprule
\B\ \B & \mc{4}{c}{\B\ \B} & \mc{8}{c}{\B\ \B} \\
\cmidrule(r){1-1} \cmidrule(lr){2-5} \cmidrule(l){6-13}
& \mc{4}{c}{}
& \mc{4}{c}{\B\ \B}
& \mc{4}{c}{\B\ \B} \\
\cmidrule(lr){6-9} \cmidrule(l){10-13}
& \mc{2}{c}{\B\ \B} & \mc{2}{c}{\B\ \B}
& \mc{2}{c}{\B\ \B} & \mc{2}{c}{\B\ \B}
& \mc{2}{c}{\B\ \B} & \mc{2}{c}{\B\ \B} \\
\midrule \addlinespace
\B & \B & \B & \B & \B
& \B & \B & \B & \B
& \B & \B & \B & \B \\
\bottomrule
\end{tabular}
\end{table}

\end{document}

Im beigefügten PDF ist zu sehen, dass die mit \multicolumn gesetzten Zellen zentriert übereinander liegen, dabei aber gegenüber den "normalen" Zellen horizontal verschoben sind.

rstuby
09-09-2011, 06:39
Jetzt sehe ich es auch.
Wunderschönes Minimalbeispiel! Da könnten sich die anderen ein "Beispiel" daran nehmen!

Die Multicolumn-Spalten sind schön gleichmäßig ausgerichtet, während bei den normalen Spalten jeweils die zwei, die mit \enspace getrennt sind, ein bisschen zusammenkleben im Vergleich zu denen, bei denen einer der drei Blöcke neu anfängt.

Leider wird der Abstand nicht vergleichmäßigt, wenn ich \enspace durch \hspace{\tabcolsep} ersetze. Zusätzlich scheinen die Einzelspalten noch insgesamt zur ersten Spalte hin verschoben zu sein, wenn man sie mit den Multispalten vergleicht.
Auch das Entfernen aller Leerzeichen und Setzen von Prozentzeichen an allen Zeilenenden führt diesmal nicht weiter. Ich werde noch ein bisschen experimentieren, aber hier muss wohl jemand her, der sich besser auskennt.