PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tabellensatz: Zahlen in Klammern, am Komma zentrieren und Schriftart ändern



stats
10-06-2010, 15:39
Hallo,

ich will eine Tabelle erstellen, in der die Zahlen am Komma ausgerichtet werden. In einigen Spalten sind die Zahlen außerdem eingeklammert und prinzipiell soll für die Zahlen die Schriftart helvet verwendet werden. Zur Zentrierung von Zahlen am Dezimalzeichen habe ich folgende Pakete gefunden: dcolumn, siunitx, rccol und numprint. Mit keinem dieser Pakete erziele ich aber das gewünschte Ergebnis: dcolumn und siunitx erlauben scheinbar kein wechsel der Schriftart (Mathemodus), bei rccol gelingt es mir nicht, die Zahlen in Klammern zu setzen und bei numprint bleiben leere Stellen bei Zahlen mit nur einer Stelle vor dem Komma, wenn andere Zahlen in derselben Spalte mehr Zahlen vor dem Komma haben. Jemand eine Idee?


---- Minimalbeispiel (mit rccol: Die Zahlen in den beiden Spalten (SE) sollten in Klammern stehen, also z.B. (4,7) anstelle von 4,7) ----



\documentclass[10pt,a4paper]{article}
\usepackage[latin9]{inputenc}
\usepackage{ngerman}
\usepackage{booktabs}
\usepackage{lscape}
\usepackage{multirow}
\usepackage{helvet}
\usepackage{fltpoint}
\usepackage{rccol}

\begin{document}
\renewcommand\familydefault{phv}
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
\newcommand{\minitab}[2][l]{\begin{tabular}{#1}#2\end{tabular}}
\newcommand*\leer{\multicolumn{1}{c}{}}

\begin{table}[htbp]
\begin{center}
\begin{tabular}{lcR[.][,]{2}{1}cR[.][,]{1}{1}}
\toprule
& \multicolumn{2}{c}{\multirow{2}{*}{\minitab[c]{Kann man verstehen \\ was ich vorhab?}}}
& \multicolumn{2}{c}{\multirow{2}{*}{\minitab[c]{Oder ist alles \\ unklar?}}} \\
& & \leer & & \leer \\
& \multicolumn{1}{C{1.9cm}}{(M)} & \multicolumn{1}{C{1.9cm}}{(SE)}
& \multicolumn{1}{C{1.9cm}}{(M)} & \multicolumn{1}{C{1.9cm}}{(SE)} \\
\midrule
\emph{Text} & & \leer & & \leer \\
\emph{auch Text} & & \leer & & \leer \\
\hspace{1mm} Text & 597 & 4.7 & 568 & 3.8 \\
\hspace{1mm} Text & 587 &13.6 & 536 & 1.7 \\
\addlinespace
\addlinespace
\emph{Text} & & \leer & & \leer \\
\emph{Text} & & \leer & & \leer \\
\hspace{1mm} Text & 562 & 5.1 & 540 & 5.9 \\
\hspace{1mm} Text & 530 & 7.6 & 504 & 9.1 \\
\bottomrule
\end{tabular}
\end{center}
\end{table}
\end{document}

mechanicus
11-06-2010, 12:17
schaut her:
http://www.matheplanet.com/matheplanet/nuke/html/viewtopic.php?topic=140861&start=0&lps=1031249#v1031249

lockstep
11-06-2010, 12:26
Mit keinem dieser Pakete erziele ich aber das gewünschte Ergebnis: dcolumn und siunitx erlauben scheinbar kein wechsel der Schriftart (Mathemodus), bei rccol gelingt es mir nicht, die Zahlen in Klammern zu setzen [...]

Heißt das, dass du es mit siunitx sehr wohl geschafft hast, die Zahlen in Klammern zu setzen? Ich kann dir nämlich die ergänzende Lösung zum Schriftartenwechsel in siunitx anbieten.



\documentclass{article}

\usepackage{helvet}
\renewcommand{\familydefault}{\sfdefault}

\usepackage[detect-all]{siunitx}% Syntax für Version 2

\begin{document}

Ein bisschen Text.

\begin{table}[!ht]
\begin{tabular}{SS}
{mit} & {ohne} \\
0.18 & 90.4 \\
90.4 & 0.18
\end{tabular}
\end{table}

\end{document}


lockstep

stats
11-06-2010, 14:35
Klammern sind kein prob, einfach S[numaddn=*()] als Spaltendefinition wählen.

Legion
12-06-2010, 13:44
Klammern sind kein prob, einfach S[numaddn=*()] als Spaltendefinition wählen.

aaaahhhhhh ... cool. Muss ich gar nicht goggeln :D

lockstep
12-06-2010, 14:15
S[numaddn=*()] ist allerdings Syntax aus Version 1. Dazu brauchst du bei Verwendung von Version 2



usepackage[load-configurations=version-1]{siunitx}


lockstep

Legion
12-06-2010, 23:23
ja danke, das hatte ich schon ergänzt :)

lockstep
12-06-2010, 23:30
Hast du vielleicht herausgefunden, wie die Entsprechung zu S[numaddn=()*] in Version-2-Syntax lautet?

lockstep

Legion
13-06-2010, 12:03
Nein, das zugehörige Handbuch schweigt sich aus und selbst google ist überfragt :( Und die Klammern einfach in {} setzten ist auch nicht wirklich die Lösung. Ich bin nur froh, dass trapambigrange=false noch funktioniert :)

lockstep
13-06-2010, 12:51
Nein, das zugehörige Handbuch schweigt sich aus und selbst google ist überfragt :(

Das Problem ist ja noch recht neu. Aber sobald du die Lösung hier postest, ist sie für spätere Generationen auf Google verfügbar. ;)

lockstep

Legion
13-06-2010, 13:22
hehe ... alles klar.

Legion
13-06-2010, 19:03
So, das ist sicher nicht DIE Lösung, aber wenn man die Option
trapambigrange=false mit siunitx lädt, dann wird
S[numaddn=*()] akzeptiert. Nur zur Info: Die Option verhindert, dass bei \SIrange die Zahlen in Klammern gesetzt werden. Also statt (70-80) % eben 70-80 %.

mechanicus
13-06-2010, 19:10
Hi,

wie wäre dann ein Bug-Report an Jospeh
Vielleicht hier:
http://www.texdev.net/2010/05/23/siunitx-version-2-released/

Gruß
Marco

Legion
14-06-2010, 10:32
Das mit dem Bug kommt noch, aber für das aktuelle Problem sieht die Lösung folgendermaßen aus:

S[input-symbols=*()]

Gruß

stats
21-06-2010, 20:40
Danke für eure Hilfe. Das fertige (Minimal-)Beispiel sieht dann so aus:



\documentclass[10pt,a4paper]{article}
\usepackage[latin9]{inputenc}
\usepackage{booktabs}
\usepackage{helvet}
\usepackage[detect-all]{siunitx}

\begin{document}
\renewcommand\familydefault{phv}


\begin{tabular}{lcS[input-symbols=*()]cS[input-symbols=*()]}
\toprule
& \multicolumn{2}{c}{Text} & \multicolumn{2}{c}{Text} \\
& \multicolumn{1}{c}{(M)} & \multicolumn{1}{c}{(SE)} &
\multicolumn{1}{c}{(M)} & \multicolumn{1}{c}{(SE)} \\
\midrule
\hspace{1mm} Text & 597 & (4.7) & 568 & (3.8) \\
\hspace{1mm} Text & 587 &(13.6) & 536 & (1.7) \\
\bottomrule
\end{tabular}

\end{document}

Legion
21-06-2010, 22:28
Kein Code, und sei er noch so minimal, an dem man nicht basteln könnte ;) So kann man noch Tipparbeit sparen:

\documentclass[10pt,a4paper]{article}
\usepackage[latin9]{inputenc}
\usepackage{booktabs}
\usepackage{helvet}
\usepackage[detect-all,input-symbols=*()]{siunitx}

\begin{document}
\renewcommand\familydefault{phv}


\begin{tabular}{lcScS}
\toprule
& \multicolumn{2}{c}{Text} & \multicolumn{2}{c}{Text} \\
& \multicolumn{1}{c}{(M)} & \multicolumn{1}{c}{(SE)} &
\multicolumn{1}{c}{(M)} & \multicolumn{1}{c}{(SE)} \\
\midrule
\hspace{1mm} Text & 597 & (4.7) & 568 & (3.8) \\
\hspace{1mm} Text & 587 &(13.6) & 536 & (1.7) \\
\bottomrule
\end{tabular}

\end{document}