PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zentrieren von Tabellenspalten



LuPi
15-03-2012, 08:16
In dem beigefügten Beispiel möchte ich auch in der zweiten und dritten
Zeile die Einträge der zweiten und dritten Spalte (horizontal) zentriert
gesetzt haben. Wie kann ich dies am elegantesten/einfachsten realisieren?


\documentclass{scrartcl}
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage{tabularx}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\begin{document}
\begin{tabularx}{\linewidth}{@{}Xr@{$\,\approx\,$} lr@{$\,\approx\,$}l@{}}
\toprule
Frequenz & \multicolumn{2}{C}{\SI{10,7}{\GHz}} &
\multicolumn{2}{C}{\SI{12,5}{\GHz}} \\
\cmidrule(r){1-1}\cmidrule(lr){2-3}\cmidrule(l){4-5}
A &
\SI{20,2}{\dB} & \num{104,6} &
\SI{21,5}{\dB} & \num{142,4} \\
B &
\SI{25,0}{\dB} & \num{317,6} &
\SI{26,4}{\dB} & \num{433,1} \\
\bottomrule
\end{tabularx}
\end{document}

hakaze
15-03-2012, 08:51
Ich sehe da drei Möglichkeiten:

1. du nimmst das approx als Spaltentrenner wieder raus und setzt die gesamte Gleichung in eine zentrierte Spalte. Da können dann natürlich nicht immer alle Relationszeichen korrekt untereinander sein.

2. du gehst für die 3 Hauptspalten von XCC auf Xcc, verlierst allerdings damit die Drittelung.

3. du justierst per Hand nach, z.B. mit etwas zusätzlichen Weissraum in der zweiten Zeile:
\documentclass{scrartcl}
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage{tabularx}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\begin{document}
\begin{tabularx}{\linewidth}{@{}Xr@{$\,\approx\,$} lr@{$\,\approx\,$}l@{}}
\toprule
Frequenz & \multicolumn{2}{C}{\SI{10,7}{\GHz}} &
\multicolumn{2}{C}{\SI{12,5}{\GHz}} \\
\cmidrule(r){1-1}\cmidrule(lr){2-3}\cmidrule(l){4-5}
A &
\hspace*{0.9cm} \SI{20,2}{\dB} & \num{104,6} &
\hspace*{0.9cm} \SI{21,5}{\dB} & \num{142,4} \\
B &
\SI{25,0}{\dB} & \num{317,6} &
\SI{26,4}{\dB} & \num{433,1} \\
\bottomrule
\end{tabularx}
\end{document}

LuPi
15-03-2012, 09:02
Besten Dank für die Tips, aber zugegebenermaßen widerstreben mir alle drei
Möglichkeiten. Ich bin mir auch relativ sicher, dass ich "irgendwo" eine
LaTeX-nische Lösung hierfür gesehen habe, finde diese allerdings nicht mehr.
Vielleicht steht auch in Herberts Tabellenbuch etwas dazu, aber das steht
daheim.

hakaze
15-03-2012, 11:02
Neuer Anlauf ;) Wie wäre es, die l- und r-Spalte auf halbe X-Breite zu setzen?

\documentclass{scrartcl}
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage{blindtext} % nur um zu testen, ob die Gesamtbreite optisch stimmt
\usepackage{tabularx}
%\newcolumntype{C}{>{\centering\arraybackslash}X}
\newcolumntype{R}{>{\raggedleft\arraybackslash\setlength{\hsize}{.5\h size}}X}
\newcolumntype{L}{>{\raggedright\arraybackslash\setlength{\hsize}{.5\ hsize}}X}
\begin{document}

\begin{table}[htb]
\begin{tabularx}{\linewidth}{@{}XR@{$\,\approx\,$} LR@{$\,\approx\,$}L@{}}
\toprule
Frequenz & \multicolumn{2}{c}{\SI{10,7}{\GHz}} &
\multicolumn{2}{c}{\SI{12,5}{\GHz}} \\
\cmidrule(r){1-1}\cmidrule(lr){2-3}\cmidrule(l){4-5}
A &
\SI{20,2}{\dB} & \num{104,6} &
\SI{21,5}{\dB} & \num{142,4} \\
B &
\SI{25,0}{\dB} & \num{317,6} &
\SI{26,4}{\dB} & \num{433,1} \\
\bottomrule
\end{tabularx}
\end{table}

\blindtext[1]
\end{document}

LuPi
15-03-2012, 11:41
Das gefällt mir - zumindest auf den ersten Blick - sogar noch besser.
Vielen Dank, das werde ich so übernehmen.

tral
15-03-2012, 20:02
Hallo,

einzelne Zellen sollte man doch mit



\multicolumn{1}{c}{Inhalt}


zentrieren können...

Christian.