PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : tabularx zentriert und am Komma ausgerichtet



menuhin
23-06-2010, 10:47
hallo,

möchte gerne, dass die sämtliche Zahlen in den 3 Spalten am Komma ausgerichtet und zentriert gesetzt werden.

Die Ausrichtung am Komma ist mir bereits mit Hilfe einer mbox gelungen.
Nur warum zentriert latex die mbox nicht???

Minimalbsp.:


\documentclass{scrartcl}
\RequirePackage{array,ragged2e,calc,booktabs}
\RequirePackage{tabularx}

\begin{document}

\begin{table}[!ht]
\small
\renewcommand{\arraystretch}{1.5}
\newcolumntype{C}{>{\Centering}X} %>{\RaggedRight\arraybackslash}
\caption{Eine Tabelle}
\label{tbl:regressionsoutput-marktrisiko}
\begin{tabularx}{\linewidth}{|@{}C|C|c@{}|}
\toprule
\multicolumn{1}{c}{\textbf{AAA}}&\textbf{BBB}&\textbf{CCC}\\\midrule
\mbox{\llap{$-0$},\rlap{$0962089984$}}&\mbox{\llap{$0$},\rlap{$0293707863$}}&\mbox{\llap{$0$},\rlap{$010$}}\\
\mbox{\llap{$0$},\rlap{$0188412182$}}&\mbox{\llap{$0$},\rlap{$0079080875$}}&\mbox{\llap{$0$},\rlap{$050$}}\\
\bottomrule
\end{tabularx}
\end{table}

\end{document}

Vielen Dank für eure Hilfe.

Und falls jemand eine zündende Idee für mein anderes Problem ("tex capacity exceeded") haben sollte, wäre ich noch mehr dankbar!!!

Grüße an alle Freunde des gepflegten Schriftsatzes.

menuhin

bobmalaria
23-06-2010, 12:00
hi,

wenn die tabelle nicht zwingend textbreit sein muss (und bei drei splaten muss sie das nicht zwingend, denke ich) dann könnte es sehr einfach mit dem siunitx paket funktionieren


\documentclass{scrartcl}
\usepackage{array,ragged2e,calc,booktabs}
\usepackage{tabularx}
\usepackage{siunitx}

\begin{document}


\small
\renewcommand{\arraystretch}{1.5}
\newcolumntype{C}{>{\Centering}X} %>{\RaggedRight\arraybackslash}
\begin{tabularx}{\linewidth}{|@{}C|C|c@{}|}
\toprule
\multicolumn{1}{c}{\textbf{AAA}}&\textbf{BBB}&\textbf{CCC}\\\midrule
\mbox{\llap{$-0$},\rlap{$0962089984$}}&\mbox{\llap{$0$},\rlap{$0293707863$}}&\mbox{\llap{$0$},\rlap{$010$}}\\
\mbox{\llap{$0$},\rlap{$0188412182$}}&\mbox{\llap{$0$},\rlap{$0079080875$}}&\mbox{\llap{$0$},\rlap{$050$}}\\
\bottomrule
\end{tabularx}

\sisetup{table-number-alignment=center,table-text-alignment=center,table-figures-decimal=10}
\begin{center}
\begin{tabular}{@{}SSS[table-figures-decimal=3]@{}}
\toprule
{AAA} & {BBB}& {CCC}\tabularnewline
\midrule
-0,0962089984& 0,0293707863& 0,010\\
0,0188412182& 0,0079080875 & 0,050\\
\bottomrule
\end{tabular}
\end{center}


\end{document}

gruss

u_fischer
23-06-2010, 12:06
Die \mbox sind zentriert. Mache einfach mal \fbox{\mbox{...}} dann siehst du es -- und auch warum du dennoch nicht das richtige Ergebnis bekommst.

menuhin
23-06-2010, 14:08
Danke bobmalaria und u.fischer!!

Ja, es stimmt die mbox wird natürlich zentriert...das Ergebnis sieht trotzdem schlecht aus. Die Suche im Forum ergab einen sehr hilfreichen Beitrag zum Thema dcolumn in Verbindung mit tabularx von edico in folgendem thread:

http://mrunix.de/forums/showthread.php?t=65970&highlight=tabularx+Komma

Minimalbsp.:


\documentclass{scrartcl}
\RequirePackage{array,ragged2e,calc,booktabs}
\RequirePackage{tabularx}
\RequirePackage{dcolumn}

\begin{document}

\begin{table}[!ht]
\small
\renewcommand{\arraystretch}{1.5}
\newcolumntype{L}{>{\RaggedRight}X}
\newcolumntype{d}{D{,}{,}{2.10}}
\newcolumntype{e}{D{,}{,}{1.10}}
\newcolumntype{h}{D{,}{,}{1.3}}
\caption{Eine Tabelle}
\label{tbl:regressionsoutput-marktrisiko}
\begin{tabularx}{\linewidth}{|@{}L|d|e|h@{}|}
\toprule
&\multicolumn{1}{c}{\textbf{AAA}}&\multicolumn{1}{c}{\textbf{BBB}}&\multicolumn{1}{c}{\textbf{CCC}}\\\midrule
\textbf{DDD}&-0,0962089984&0,0293707863&0,010\\
\textbf{EEE}&0,0188412182&0,0079080875&0,050\\
\bottomrule
\end{tabularx}
\end{table}

\end{document}

Nur in Spalte 3 werden die Zahlen am Komma ausgerichtet und korrekt zentriert ausgegeben. Warum ist dies in den Spalten 2 und 4 nicht der Fall??? Ich habe bereits für Spalte 2 links vom Komma 1 Dezimalstelle mehr in der Präambel für das Minuszeichen reserviert. Dennoch ist der horizontale Abstand zw. der vertikalen Linie und dem Minuszeichen kleiner als der Abstand links von den Zahlen zur vertikalen Linie. Sofern ich noch eine Dezimalstelle hinzufüge, also \newcolumntype{d}{D{,}{,}{3.10}}
wird der Abstand links etwas zu groß im Vgl. zu rechts.

Gibt eine Möglichkeit, daß immer die Ganze Zahl inklusive Vorzeichen zentriert und am Komma ausgerichtet gesetzt wird? In der Doku zu dcolumn hab ich nichts gefunden...(aber vielleicht auch nicht alles verstanden?)

Merci.

onkelhotte
30-08-2011, 21:50
Bingo. das ist auch exakt meine Frage..

Schade- scheint nicht zu gehen, bin auch schon am suchen wie öde ..

claus

localghost
23-10-2011, 14:28
Mit dem relativen neuen Paket tabu (http://ctan.org/pkg/tabu) ist das alles viel leichter.

\documentclass[captions=tableabove]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage{booktabs,tabu}
\usepackage{siunitx}

\sisetup{%
output-decimal-marker={,}
}

\newcolumntype Y{X[c]{S}}
\tabucolumn Y

\begin{document}
\begin{table}[!ht]
\caption{Eine Tabelle}\label{tab:table}
\begin{tabu} to \linewidth {|Y|Y|S|} \toprule
{\textbf{AAA}}& {\textbf{BBB}} & {\textbf{CCC}} \\ \midrule
-0,0962089984 & 0,0293707863 & 0,010 \\
0,0188412182 & 0,0079080875 &0,050 \\ \bottomrule
\end{tabu}
\end{table}
\end{document}
Details in der Anleitung.


Thorsten