Seite 1 von 1
Ausrichtung an der Dezimalstelle (in siunitx-Umgebung)
Verfasst: Do 3. Nov 2016, 15:28
von -steffi-
Hallo
Ich hab zwar schon ein, zwei Beispiele im Forum gefunden, aber die lösen leider mein Problem nicht. Ich würde gerne die Zahlen an der Dezimalstelle ausrichten, aber das scheint aufgrund der Einrahmung in das siunitx-Paket nicht zu funktionieren. Wie kann ich das alternativ realisieren? Und gibt es auch eine Lösung die Einheiten ebenfalls an einer Linie auszurichten?
\documentclass[12pt,a4paper]{scrreprt}
\usepackage[english, ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{longtable}
\usepackage{tabulary}
\usepackage{booktabs}
\usepackage{siunitx}
\sisetup{
locale = DE ,
detect-weight,
detect-family,
mode=text,
tophrase={{~bis~}}
}
\NewDocumentCommand\DeclareNewQuantity{mmm}{%
\DeclareSIUnit{#2}{#3}%
\DeclareDocumentCommand{#1}{O{}m}{\SI[##1]{##2}{#2}}%
}
\DeclareNewQuantity
\gL
\gl
{\gram\per\liter}
\DeclareNewQuantity
\mgL
\mgl
{\milli\gram\per\liter}
\begin{document}
\begin{longtable}{lS}
\caption[Zusammensetzung des CGXII-Mediums]{Zusammensetzung des CGXII-Mediums.}\\
\toprule
\textbf{Komponente} & \textbf{Endkonzentration}\\
\toprule
Ammoniumsulfat & \gL{20} \\
Kaliumdihydrogenphosphat & \gL{1} \\
Dikaliumhydrogenphosphat & \mgL{1} \\
Harnstoff & \gL{5} \\
MOPS & \gL{42} \\
\bottomrule
\end{longtable}
\end{document}
Verfasst: Do 3. Nov 2016, 16:16
von markusv
Weiß nicht genau, was du mit den ganz Befehlen erreichen willst. Aber deine beschriebenen Fragen lassen sich mMn mit folgendem Code lösen, auch wenn es auf mich ein wenig gepfuscht wirkt: die Optionen sind notwendig, um die Ausrichtung zu erreichen. Ohne werden die Einheiten unterschiedlich gesetzt. Vielleicht können die Versierteren hier noch ein paar Stellschrauben drehen.
\documentclass[12pt,a4paper]{scrreprt}
\usepackage[english, ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{longtable}
\usepackage{tabulary}
\usepackage{booktabs}
\usepackage{siunitx}
\sisetup{
locale = DE ,
detect-weight,
detect-family,
mode=text,
tophrase={{~bis~}}
}
\DeclareSIUnit{\gL}{\gram\per\liter}
\DeclareSIUnit{\mgl}{\milli\gram\per\liter}
\begin{document}
\begin{table}
\begin{tabular}{lS[table-figures-decimal=2,
table-number-alignment=center
]}
\toprule
\textbf{Komponente} & \textbf{Endkonzentration}\\
\toprule
Ammoniumsulfat &20\gL \\
Kaliumdihydrogenphosphat & 1\gL \\
Dikaliumhydrogenphosphat & 1\mgl \\
Harnstoff & 5\gL\\
MOPS & 42\gL \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
Verfasst: Do 3. Nov 2016, 20:22
von -steffi-
Das sieht sehr gut aus. Vielen Dank!
Weiß nicht genau, was du mit den ganz Befehlen erreichen willst.
Welche Befehle meinst du?
Und kannst du (oder wer anders) mir erklären, was diese Einstellungen bedeuten, die du da eingesetzt hast?
[table-figures-decimal=2,
table-number-alignment=center
]
Verfasst: Do 3. Nov 2016, 20:24
von Bartman
-steffi- hat geschrieben:Das sieht sehr gut aus. Vielen Dank!
Weiß nicht genau, was du mit den ganz Befehlen erreichen willst.
Welche Befehle meinst du?
Ich vermute er meint
\NewDocumentCommand\DeclareNewQuantity{mmm}{%
\DeclareSIUnit{#2}{#3}%
\DeclareDocumentCommand{#1}{O{}m}{\SI[##1]{##2}{#2}}%
}
\DeclareNewQuantity
\gL
\gl
{\gram\per\liter}
\DeclareNewQuantity
\mgL
\mgl
{\milli\gram\per\liter}
Verfasst: Do 3. Nov 2016, 20:31
von -steffi-
Achso.. ich war ein bisschen zu faul die Kurzbefehle in der Tabelle mit dem \SI{}{} umzuschreiben, daher habe ich den Teil aus meiner Präambel mit für das Beispiel übernommen. Die Tabelle haeb ich direkt aus meiner Abschlussarbeit kopiert und da verwende ich insgesamt sehr oft diese Einheiten, sodass ich das natürlich nicht jedes Mal in lang schreiben will.
Verfasst: Do 3. Nov 2016, 23:41
von Bartman
Die von markusv benutzten Optionen findest Du in der Dokumentation von
siunitx.
Die Vorlage für mein Beispiel entnahm ich dem Abschnitt 7.14.
\documentclass[fontsize=12pt, captions=tableabove, ngerman]{scrreprt}% <- geändert
\usepackage[english, main=ngerman]{babel}% <- geändert
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{booktabs}
\usepackage{translator}% <- ergänzt für die Übersetzung der range-phrase (früher tophrase)
\usepackage{siunitx}
\sisetup{
locale = DE,
detect-weight,
detect-family,
mode=text,
per-mode=symbol% <- ergänzt
}
\DeclareSIUnit{\gL}{\g\per\L}
\DeclareSIUnit{\mgL}{\mg\per\L}
\begin{document}
\begin{table}
\centering
\caption{Zusammensetzung des CGXII-Mediums}
\begin{tabular}{
l
l@{\hspace{1.2cm}}
S[table-format=2]@{\,}
s[table-unit-alignment=left]
}
\toprule
\textbf{Komponente} & \multicolumn{3}{l}{\textbf{Endkonzentration}}\\
\midrule% <- geändert
Ammoniumsulfat && 20 & \gL\\
Kaliumdihydrogenphosphat && 1 & \gL\\
Dikaliumhydrogenphosphat && 1 & \mgL\\
Harnstoff && 5 & \gL\\
MOPS && 42 & \gL\\
\bottomrule
\end{tabular}
\end{table}
\end{document}
Laut der Erläuterung der Option table-format dürfen stattdessen auch die zwei anderen dort genannten Optionen verwendet werden, aber in meinem Beispiel führen diese nicht zum gleichen Ergebnis.
Verfasst: Fr 4. Nov 2016, 07:03
von -steffi-
Danke, dann schau ich mir das mal in der Doku an. Als ich reingeschaut habe, habe ich nur die S-Optionen gefunden, da habe wohl zu oberflächlich geschaut..
Das "per-mode=symbol%" sorgt für g/L, oder? Das soll ich ausdrücklich nicht verwenden.

Verfasst: Fr 4. Nov 2016, 11:00
von Bartman
-steffi- hat geschrieben:Das "per-mode=symbol%" sorgt für g/L, oder?
Ja.