Tabelle: Spaltenbreite bei multicolumn

Tabellen und Grafiken erstellen und anordnen


raffix

Tabelle: Spaltenbreite bei multicolumn

Beitrag von raffix »

Diese Frage ist so vermutlich schon zig mal gestellt worden, aber ich weiß nicht, nach welchen Suchbegriffen man suchen muss, um eine Lösung zu finden.

Es geht darum, in einer Tabelle die Spaltenbreite automatisiert einstellen zu lassen und nicht (!) fest vorzugeben wie bei einer normalen Tabelle üblich. Allerdings soll vorgegeben werden, wo sich was bewegen darf.

Der Grund zeigt sich in folgendem Beispiel:
 %Das Beispiel mit dem unerwünschten Ergebnis
\begin{table}[htbp]
\begin{tabular}{r|r@{ $\pm$ }|r}
\toprule
Spalte 1 & \multicolumn{2}{c}{UndhierkommteinelangeSpalte2}\\
Nr & \multicolumn{1}{c}{eng} & \multicolumn{1}{c}{weit}\\
\midrule
1 & 100\,000 & 99\\
1 & 100\,000 & 100000\\
\bottomrule
\end{tabular}
\caption{Beispieltabelle 1 - FALSCH}
\end{table}
Durch die lange Spaltenüberschrift ("UndhierkommteinelangeSpalte2und3") über Spalte 2 und 3, muss entweder Spalte 2 oder Spalte 3 extrem verbreitert werden. Man sieht deutlich, dass Latex sich für die 3. entschieden hat.

Mein Wunsch ist nun, dass bei der Entscheidung, ob Spalte 2 oder 3 breit sein soll, nicht die 3. Spalte, sondern die 2. benutzt wird.
Dann sähe das Ergebnis nämlich so aus, dass die Zahlen nahe beeinander stehen. (Linksbündig für die 3. Spalte ist keine Option, weil die einzelnen Stellen untereinander stehen sollen, also Einer unter Einer, Zehner unter Zehner, Hunderter unter Hunderter, usw.)

Kann man LaTeX so was irgendwie mitteilen? Also LaTeX sagen, welche Spalte er zum Größenausgleich nutzen soll?

Herzlichen Dank vorab für eure Hilfe!

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Latex nimmt dafür immer die letzte Spalte. Aber du kannst dir eine zusätzliche definieren, die den Platz aufnimmt. Dann bleiben auch die beiden Wörter zentriert über den Zahlen stehen.
\documentclass{scrartcl}

\usepackage{array,booktabs}

\begin{document}
\begin{table}
\centering
\begin{tabular}{r|r@{ $\pm$ }|r@{}l} 
\toprule 
 Spalte 1 & \multicolumn{3}{c}{UndhierkommteinelangeSpalte2}\\ 
 Nr & \multicolumn{1}{c}{eng} & \multicolumn{1}{c}{weit}\\ 
\midrule 
 1 & 100\,000 & 99\\ 
 1 & 100\,000 & 100000\\ 
\bottomrule 
\end{tabular} 
\captionof{table}{Beispieltabelle 1} 
\end{table}

\end{document}
Brauchst du die vertikalen Striche wirklich?

Gruß
Elke

Gast

Beitrag von Gast »

Wow, danke. Das ist eine sehr gute Idee! Darauf bin ich noch nicht gekommen.

Nein, die vertikalen Striche fehlen im Original. Sie waren lediglich drin, um zu verdeutlich, welche Spalte schmal und welche breit ist.

Antworten