Ausrichtung an der Dezimalstelle (in siunitx-Umgebung)

Tabellen und Grafiken erstellen und anordnen


-steffi-
Forum-Newbie
Forum-Newbie
Beiträge: 6
Registriert: Mo 10. Okt 2016, 17:24

Ausrichtung an der Dezimalstelle (in siunitx-Umgebung)

Beitrag 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}

markusv
Forum-Meister
Forum-Meister
Beiträge: 947
Registriert: Do 3. Sep 2015, 17:20
Wohnort: Leipzig

Beitrag 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}
Wäre Microsoft Word für das Schreiben von Büchern entwickelt worden,
würde es Microsoft Book heißen.

Unkomplizierte und schnelle LaTeX-Hilfe, bspw. Erstellung von Vorlagen und Bewerbungen.

-steffi-
Forum-Newbie
Forum-Newbie
Beiträge: 6
Registriert: Mo 10. Okt 2016, 17:24

Beitrag 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
]

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2466
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag 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}  

-steffi-
Forum-Newbie
Forum-Newbie
Beiträge: 6
Registriert: Mo 10. Okt 2016, 17:24

Beitrag 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.

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2466
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag 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.

-steffi-
Forum-Newbie
Forum-Newbie
Beiträge: 6
Registriert: Mo 10. Okt 2016, 17:24

Beitrag 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. :)

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2466
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

-steffi- hat geschrieben:Das "per-mode=symbol%" sorgt für g/L, oder?
Ja.

Antworten