PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fragen zu siunitx



Phantom
11-10-2013, 14:21
Liebe Helfer,

vielleicht hat jemand von euch mehr Erfahrung bezüglich siunitx (http://ctan.org/pkg/siunitx). Ich habe schon verschiedene Optionen ausprobiert, komme aber nicht zu dem gewünschten Ergebnis. Ich bin wahrscheinlich nur zu dämlich, die verschiedenen Einstellungsmöglichkeiten in der richtigen Art und Weise zu verknüpfen. Ich denke es fängt schon damit an, dass es ungeschickt ist, parse-numbers auf false zu setzen, aber sonst habe ich Probleme mit den Klammern gefolgt von einem Minuszeichen. Vielleicht sind table-align-text-pre und table-align-text-post brauchbare Optionen, aber ich bekomme es nicht hin.
Die Optionen für Tabellen findet man auf Seite 47 der Dokumentation (http://mirrors.ctan.org/macros/latex/contrib/siunitx/siunitx.pdf) - aber ich bekomme es trotzdem nicht hin :-(

Nachtrag: Ich sollte sinnvoller Weise erwähnen, was ich überhaupt erreichen möchte: Die Zahlen sollen am Dezimalzeichen (.) ausgerichtet sein und die 1 zentriert, d.h. die 1 sollte nicht am Dezimalzeichen ausgerichtet sein, sondern mittig über dem gesamten Ausdruck (z.B. .240\tsc{**} ). Dabei sollten die Spalten möglichst small sein, also es sollte nicht zu viel Platz vor den Nummern verloren gehen. (Es ist nur ein Auszug einer sonst viel breiteren Tabelle).

Hat jemand einen Tipp oder eine Idee?
Vielen Dank und liebe Grüße
Phantom




\documentclass[
fontsize=12pt, % Schriftgröße festlegen
]{scrbook}

\usepackage{geometry}
\geometry{includehead=false, includefoot=false, bindingoffset=18.5mm, inner=10.5mm, outer=21mm, top=20mm, bottom=43mm}

\usepackage[onehalfspacing]{setspace}
\usepackage[ngerman]{babel}
\usepackage[tracking=true]{microtype}
\usepackage{ellipsis}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}


\usepackage{array}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{siunitx}

% ----------------------------------------------------------------------------------------------------------------------

% Kurzbefehl: Hochgestellter Text
\newcommand{\tsc}[1]{\textsuperscript{#1}}
% Kurzbefehl: Multicolumn über eine Spalte
\newcommand{\mcc}[1]{\multicolumn{1}{c}{#1}}

\begin{document}%
\begin{table}%
\sisetup{
parse-numbers = false,
table-number-alignment = center,
table-figures-integer = 5,
table-figures-decimal = 5,
table-text-alignment = center
}
\begin{tabular}{*{4}{S}}%
\toprule
Test & Test & Test & Test \\%
\midrule
\mcc{\multirow{2}{*}{1}} & & & \\%
& & & \\%
.201{\tsc{*}} & \mcc{\multirow{2}{*}{1}} & & \\%
(.707) & & & \\%
.085 & .634\tsc{***} & \mcc{\multirow{2}{*}{1}} & \\%
(.000) & (.707) & & \\%
.038 & .467\tsc{***} & .633\tsc{***} & \mcc{\multirow{2}{*}{1}} \\%
(-.707) & (.000) & (.707) & \\%
.092 & .192\tsc{*} & .240\tsc{**} & .524\tsc{***} \\%
(-1.000) & (-.707) & (.000) & (.707) \\%
\bottomrule
\end{tabular}
\end{table}
\end{document}%

Phantom
11-10-2013, 18:10
Nachtrag:

Mit diesen Einstellung sieht es fast so aus, wie ich es gerne hätte! Allerdings sind die Spalten dann unnötig breit. Ich hätte zwar gerne die selbe Anordnung, aber jeweils links und rechts weniger "freien" Platz. Ich hoffe ihr versteht, was ich sagen möchte...



\sisetup{
parse-numbers = false,
table-number-alignment = center,
table-figures-integer = 4,
table-figures-decimal = 8,
table-text-alignment = center
}


Ich poste ein aktualisiertes lauffähiges Beispiel (siehe unten).

Einiges verstehe ich nicht. Wenn ich die Option table-number-alignment = center weglasse, dann haben table-figures-integer und table-figures-decimal keine Auswirkungen mehr. Woran liegt das?


Komplettes Beispiel:


\documentclass[
fontsize=12pt, % Schriftgröße festlegen
]{scrbook}

\usepackage{geometry}
\geometry{includehead=false, includefoot=false, bindingoffset=18.5mm, inner=10.5mm, outer=21mm, top=20mm, bottom=43mm}

\usepackage[onehalfspacing]{setspace}
\usepackage[ngerman]{babel}
\usepackage[tracking=true]{microtype}
\usepackage{ellipsis}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}


\usepackage{array}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{siunitx}

% ----------------------------------------------------------------------------------------------------------------------

% Kurzbefehl: Hochgestellter Text
\newcommand{\tsc}[1]{\textsuperscript{#1}}
% Kurzbefehl: Multicolumn über eine Spalte
\newcommand{\mcc}[1]{\multicolumn{1}{c}{#1}}

\begin{document}%
\begin{table}%
\setlength{\tabcolsep}{0mm}%
\sisetup{
parse-numbers = false,
table-number-alignment = center,
table-figures-integer = 4,
table-figures-decimal = 8,
table-text-alignment = center
}
\begin{tabular}{*{4}{S|}}%
\toprule
\mcc{Test} & \mcc{Test} & \mcc{Test} & \mcc{Test} \\%
\midrule
\mcc{\multirow{2}{*}{1}} & & & \\%
& & & \\%
.201{\tsc{*}} & \mcc{\multirow{2}{*}{1}} & & \\%
(.707) & & & \\%
.085 & .634\tsc{***} & \mcc{\multirow{2}{*}{1}} & \\%
(.000) & (.707) & & \\%
.038 & .467\tsc{***} & .633\tsc{***} & \mcc{\multirow{2}{*}{1}} \\%
(-.707) & (.000) & (.707) & \\%
.092 & .192\tsc{*} & .240\tsc{**} & .524\tsc{***} \\%
(-1.000) & (-.707) & (.000) & (.707) \\%
\bottomrule
\end{tabular}
\end{table}
\end{document}%

hakaze
11-10-2013, 19:43
Die generellen Spaltenabstände kannst du mit @{} unterdrücken (auch bei multicolumn zu beachten). Für die Ausrichtung der 1 habe ich einfach einen zusätzlichen Abstand definiert: 3 Ziffern breit vom rechten Spaltenrand entfernt (die Gesamtspaltebreite ist Anzahl Integer + Dezimaltrenner + Anzahl Dezimalstellen).


\documentclass[
fontsize=12pt, % Schriftgröße festlegen
]{scrbook}


\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}


\usepackage{array}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{siunitx}

% ----------------------------------------------------------------------------------------------------------------------

% Kurzbefehl: Hochgestellter Text
\newcommand{\tsc}[1]{\textsuperscript{#1}}
% Kurzbefehl: Multicolumn über eine Spalte
\newcommand{\mcc}[1]{\multicolumn{1}{@{}c@{}}{#1}}
\newlength{\dreizahlen}
\settowidth{\dreizahlen}{123}
\newcommand{\mcr}[1]{\multicolumn{1}{@{}r@{}}{#1\hspace*{\dreizahlen}} }


\begin{document}%
\begin{table}%
\sisetup{
parse-numbers = false,
table-number-alignment = center,
table-figures-integer = 4,
table-figures-decimal = 5,
table-text-alignment = center
}
\begin{tabular}{@{}S@{}S@{}S@{}S@{}}%
\toprule
\mcc{Test} & \mcc{Test} & \mcc{Test} & \mcc{Test} \\%
\midrule
\mcr{\multirow{2}{*}{1}} & & & \\%
& & & \\%
.201{\tsc{*}} & \mcr{\multirow{2}{*}{1}} & & \\%
(.707) & & & \\%
.085 & .634\tsc{***} & \mcr{\multirow{2}{*}{1}} & \\%
(.000) & (.707) & & \\%
.038 & (.000) & .633\tsc{***} & \mcr{\multirow{2}{*}{1}} \\%
(-0.707) & .467\tsc{***} & (-0.707) & \\%
1234.12345 & 1234.12345 & .240\tsc{**} & .524\tsc{***} \\%
-1.000\tsc{***} & (-.707) & (.000) & (.707) \\%
\bottomrule
\end{tabular}
\end{table}
\end{document}%

Phantom
12-10-2013, 18:03
@hakaze

Vielen lieben Dank! Endlich habe ich mal verstanden wofür das @{} steht. Danke für die Lösung und deine Anregungen!