PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : tabularx mit dcolumn



menuhin
22-01-2010, 21:41
Hallo liebe Setzergemeinde,

habe eine einfache Tabelle und möchte die Inhalte der letzten 2 Zeilen (mit Ausnahme der ersten Spalte, die nur Text enthält) am Komma ausrichten, was mir auch gelungen ist. Jedoch werden die am Komma ausgerichteten Zellen nicht horizontal zentriert (wie die Inhalte der ersten 3 Zeilen). Verstehe einfach nicht warum.

Habe natürlich die Doku zu dcolumn gelesen und mir außerdem so manchen thread zu diesem Thema angeschaut. Vielleicht weiß jemand weiter? Würde mich jedenfalls sehr freuen.

Darüber hinaus verstehe ich nicht warum sich durch Verwendung von \multicolumn die Schriftart der Zahlen verändert.

Minimalbeispiel:


\documentclass{scrartcl}
\RequirePackage{array,ragged2e,calc,booktabs}
\RequirePackage{tabularx}
\RequirePackage{dcolumn}
\begin{document}
\begin{table}[!ht]
\small
\renewcommand{\arraystretch}{1.5}
\newcolumntype{C}{>{\Centering}X}
\newcolumntype{d}{D{,}{,}{-1}}
\begin{tabularx}{325pt}{@{}l@{\hspace{6mm}}C@{\hsp ace{-2mm}}C@{\hspace{4.5mm}}c@{}}
\toprule
&\textbf{xxx}&\textbf{xxx}&\textbf{xxx}\\\midrule
xxx&$4.563$&$943$&$217$\\
xxx&$0,03\%$&$0,12\%$&$0,54\%$\\
xxx&$1,45\%$&$0,63\%$&$6,28\%$\\
xxx&\multicolumn{1}{d}{$-0,09$}&\multicolumn{1}{d}{$-0,66$}&\multicolumn{1}{d}{$-0,87$}\\
xxx&\multicolumn{1}{d}{$8,37$}&\multicolumn{1}{d}{$8,98$}&\multicolumn{1}{d}{$5,74$}\\
\bottomrule
\end{tabularx}
\end{table}
\end{document}

Danke und Gruss,

menuhin

ctansearch
22-01-2010, 21:55
Wozu benutzt Du multicolumn[1] ?

Das sagt doch nur, dass der Text über eine Spalte verteilt wird?

Ohne multicolumn sieht die Tabelle erheblich besser aus

menuhin
22-01-2010, 22:07
Hi ctansearch,


Ohne multicolumn sieht die Tabelle erheblich besser aus

ja stimmt...aber ohne multicolumn weiß ich nicht wie man die letzten 2 Zeilen am Komma ausrichten kann. Dies möchte ich aber unbedingt.

ctansearch
22-01-2010, 22:58
Da Du in den Zeilen so unterschiedliche Formate und Zeichen hast, glaube ich nicht, dass es dafür eine programmtechnische Mölichkeit gibt.

Wenn die Tabelle nicht zu groß ist, könntest Du die Ausrichtung der Werte "manuell" mit
\hspace{+/- WertEinheit}
anpassen, aber das ist nur ne krumme Krücke.
Aber vielleicht wissen andere einen besseren Rat.

mechanicus
22-01-2010, 23:07
Hi,

geschustert:

\documentclass{scrartcl}
\usepackage{array,ragged2e,calc,booktabs}
\usepackage{tabularx}
\usepackage{dcolumn}
\begin{document}
\begin{table}[!ht]
\small
\renewcommand{\arraystretch}{1.5}
\newcolumntype{C}{>{\Centering}X}
\newcolumntype{d}{D{,}{,}{-1}}
\begin{tabularx}{325pt}{@{}l@{\hspace{6mm}}C@{\hsp ace{-2mm}}C@{\hspace{4.5mm}}c@{}}
\toprule
&\textbf{xxx}&\textbf{xxx}&\textbf{xxx}\\\midrule
xxx&$4.563$&$943$&$217$\\
xxx&\mbox{\llap{$0$},\rlap{$03\%$}}&$0,12\%$&$0,54\%$\\
xxx&\mbox{\llap{$1$},\rlap{$45\%$}}&$0,63\%$&$6,28\%$\\
xxx&\mbox{\llap{$-0$},\rlap{$09$}}&\multicolumn{1}{d}{$-0,66$}&\multicolumn{1}{d}{$-0,87$}\\
xxx&\mbox{\llap{$8$},\rlap{$37$}}&\multicolumn{1}{d}{$8,98$}&\multicolumn{1}{d}{$5,74$}\\
\bottomrule
\end{tabularx}
\end{table}
\end{document}

Gruß
Marco

ctansearch
22-01-2010, 23:32
Nein, das geht auch nicht gut, mechanicus.
Ich glaube der Fehler ist mehr tabellenspezifisch.

menuhin sollte für alle Werte das gleiche Format und dieselbe Stellenanzahl wählen und die Bezeichner seperat angeben (% . ,), zumal die inhaltliche Mischung von Point, Komma und Prozent auch nicht so sinnvoll erscheint.


\documentclass{scrartcl}
\usepackage{array,ragged2e,calc,booktabs}
\usepackage{tabularx}
\usepackage{dcolumn}
\begin{document}
\begin{table}
\begin{tabularx}{\textwidth}{XXXXXXXX}
Name &Wert&einh&Wert&einh &Wert&einh \\
xxx&$4.563$&mm &$943.0$&mm&$217.0$ &mm \\
xxx&$4.563$&km &$943.0$&\%&$217.0$ &mm \\
\end{tabularx}
\end{table}
\end{document}

menuhin
23-01-2010, 09:18
Vielen Dank ctransearch und Marco, dein Vorschlag war super - ein richtig praktischer hack...bist ein guter "Schuster" ;D