Ausrichtung in Tabellen mittels SIunitx

Tabellen und Grafiken erstellen und anordnen


UnknownUser
Forum-Newbie
Forum-Newbie
Beiträge: 7
Registriert: So 1. Nov 2020, 12:54

Ausrichtung in Tabellen mittels SIunitx

Beitrag von UnknownUser »

Ausrichtung falsch
Ausrichtung falsch
Bild1.png (10.77 KiB) 1778 mal betrachtet
Ausrichtung richtig, aber Inhalt größer als Tabelle
Ausrichtung richtig, aber Inhalt größer als Tabelle
Bild2.png (9.64 KiB) 1778 mal betrachtet

Hi, ich schreibe gerade an meiner Masterarbeit. Und nachdem ich jetzt seit zwei Tagen versuche die Tabelle so hinzubekommen, dass es passt, aber immer noch Probleme damit habe, hab ich mich jetzt doch dazu entschlossen professionelle Hilfe zu suchen.

Im aktuellen Fall habe ich drei Tabellen, die ich als subtables zusammengefügt habe. Das funktioniert inzw nach einigen Anfangsproblemen jetzt doch halbwegs (auch wenn ich ursprünglich vorhatte die dritte Tabelle genau unter die erste zu platzieren, aber da ich vermute, dass das nicht so einfach nur mit den subtables funktioniert leb ich jetzt damit).
Die Ausrichtung der einzelnen Spalten soll wie folgt sein:

  • linksbündig

  • zentriert

  • auf das plusminus-Zeichen zentriert

Spalte eins und zwei passen. Jedoch gibt es noch Probleme bei der Zentrierung aufs plusmins-Zeichen. Wenn ich dabei statt wie im MWE zum Beispiel

35.97+-1.39 \si{\percent}

schreibe, dann funktioniert die Ausrichtung perfekt. Jedoch wäre es zum einen inkorrekt, wenn das %-Zeichen nur hinter dem Fehlerterm steht und zum anderen erkennt Latex dann scheinbar die Abmessungen der Tabelle nicht mehr richtig und das %-Zeichen hänt immer außerhalb der Tabelle (manuelle Erhöhung der Spaltenbreite hat dabei leider auch nichts geholfen).
Ich hab schon ziemlich viel dazu probiert und gefühlt die Siunitx Anleitung mehr als einmal durchgelesen und leider hat nichts so recht geholfen.
Kann ich das irgendwie lösen, dassich die korrekte Ausrichtung bekomme, wenn ich

\SI{number}{unit}

verwenden möchte?

\documentclass{scrreprt}
\usepackage[T1]{fontenc}	% Erweitert den Standardzeichensatz (256 statt 128 Zeichen)
\usepackage[utf8]{inputenc}	% Garantiert, dass die Dokumente mit UTF8-Kodierung gelesen werden
\usepackage[
	greek,							% auch griesche Textpassagen möglich
	ngerman							% auch deutsche Textpassagen möglich, Standard, weil zuletzt
	]{babel}
\usepackage{subcaption}
\usepackage{icomma}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{dcolumn}
	\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}} % linksbündig mit Breitenangabe
\usepackage{siunitx}				% stellt die Befehle \SI, \numrange, etc bereit
	\sisetup{locale = DE}
	\sisetup{separate-uncertainty=true,
			detect-weight, % Schrifttyp übernehmen (bold, kursiv etc)
			detect-family, %Schriftart des Umgebungstextes übernehmen (mit/ohne Serifen)
			mode=text}
			
\begin{document}
\begin{table}[htbp]
\centering
\caption{Tabellenbeschriftung}
\label{tab:EDXgemittelt}
%
\begin{subtable}[t]{0.48\linewidth}
\begin{tabular}{@{} l c S[table-format = 2.2(2)] @{}}
\toprule[1.5pt]
Spektrum	& Element	& \multicolumn{1}{c}{Häufigkeit}	\\
\midrule[1.5pt]
\multirow{4}{*}{59, 61, 64}	& Fe	& \SI{41.46+-0.52}{\percent}	\\
 						& As	& \SI{38.01+-0.79}{\percent}	\\
						& Eu	& \SI{20.53+-0.28}{\percent}	\\
						& Rb	& \SI{5.50+-0.86}{\percent}	\\
\bottomrule
\end{tabular}
\end{subtable}
%
\hspace{\fill}
%
\begin{subtable}[t]{0.48\linewidth}
\flushright
\begin{tabular}{@{} L{2cm}  c S[table-format = 2.2(2)] @{}}
\toprule[1.5pt]
Spektrum	& Element	 & \multicolumn{1}{c}{Häufigkeit} \\
\midrule[1.5pt]
\multirow{4}{=}{50, 51, 52, 53, 54}	& Fe	& \SI{40.09 \pm 0.28}{\percent} \\
							& As	& \SI{37.26 \pm 0.24}{\percent} \\
							& Eu	& \SI{17.15 \pm 0.78}{\percent} \\
							& Rb	&						   \\
\bottomrule
\end{tabular}
\end{subtable}
%
\begin{subtable}[t]{0.48\linewidth}
\flushleft
\begin{tabular}{@{} L{2cm} c S[table-format = 2.2(2)] @{}}
\toprule[1.5pt]
Spektrum	& Element	& \multicolumn{1}{c}{Häufigkeit}	\\
\midrule[1.5pt]
\multirow{4}{=}{66, 67}	& Fe	&	\SI{35.97+-1.39}{\percent}	\\
					& As	&	\SI{42.39+-1.48}{\percent}	\\
					& Eu	&	\SI{6.45+-0.96}{\percent}	\\
					& Rb	&	\SI{15.20+-1.05}{\percent}	\\
\bottomrule
\end{tabular}
\end{subtable}
\end{table}
\end{document}

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

Re: Ausrichtung in Tabellen mittels SIunitx

Beitrag von Bartman »

In meinem Vorschlag habe ich nur die erste Tabelle angepasst. Mit der Vorlage dürftest Du den Rest selbst ändern können.

\documentclass[captions=tableheading]{scrreprt}% Abstand zwischen Beschriftung und Tabelle erhöht
\usepackage[T1]{fontenc}% Erweitert den Standardzeichensatz (256 statt 128 Zeichen)
\usepackage{lmodern}
% https://texwelt.de/fragen/26496
%\usepackage[utf8]{inputenc}% Garantiert, dass die Dokumente mit UTF8-Kodierung gelesen werden
\usepackage[
    greek,% auch griesche Textpassagen möglich
    ngerman% auch deutsche Textpassagen möglich, Standard, weil zuletzt
]{babel}
\usepackage{subcaption}
\usepackage{icomma}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{siunitx}% stellt die Befehle \SI, \numrange, etc bereit
\usepackage{showframe}

\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}} % linksbündig mit Breitenangabe

\sisetup{
    locale = DE,
    separate-uncertainty=true,
    detect-weight, % Schrifttyp übernehmen (bold, kursiv etc)
    detect-family, %Schriftart des Umgebungstextes übernehmen (mit/ohne Serifen)
    mode=text
}
			
\begin{document}
\begin{table}[htbp]
\centering
\caption{Tabellenbeschriftung}
\label{tab:EDXgemittelt}
\begin{subtable}[t]{0.48\linewidth}
\begin{tabular}{@{} l c S[table-format = 2.2(2)]@{\,\%}}
\toprule[1.5pt]
Spektrum	& Element	& \multicolumn{1}{c}{Häufigkeit}	\\
\midrule[1.5pt]
\multirow{4}{*}{59, 61, 64}	& Fe	& 41.46+-0.52	\\
                            & As	& 38.01+-0.79	\\
                            & Eu	& 20.53+-0.28	\\
                            & Rb	& 5.50+-0.86	\\
\bottomrule
\end{tabular}
\end{subtable}
%
\hfill
%
\begin{subtable}[t]{0.48\linewidth}
\begin{tabular}{@{} L{2cm}  c S[table-format = 2.2(2)] @{}}
\toprule[1.5pt]
Spektrum	& Element	 & \multicolumn{1}{c}{Häufigkeit} \\
\midrule[1.5pt]
\multirow{4}{=}{50, 51, 52, 53, 54}	& Fe & \SI{40.09 \pm 0.28}{\percent} \\
                                    & As & \SI{37.26 \pm 0.24}{\percent} \\
                                    & Eu & \SI{17.15 \pm 0.78}{\percent} \\
                                    & Rb &						        \\
\bottomrule
\end{tabular}
\end{subtable}

\bigskip
\begin{subtable}[t]{\linewidth}
\begin{tabular}{@{} L{2cm} c S[table-format = 2.2(2)] @{}}
\toprule[1.5pt]
Spektrum	& Element	& \multicolumn{1}{c}{Häufigkeit}	\\
\midrule[1.5pt]
\multirow{4}{=}{66, 67}	& Fe & \SI{35.97+-1.39}{\percent}	\\
                        & As & \SI{42.39+-1.48}{\percent}	\\
                        & Eu & \SI{6.45+-0.96}{\percent}	\\
                        & Rb & \SI{15.20+-1.05}{\percent}	\\
\bottomrule
\end{tabular}
\end{subtable}
\end{table}
\end{document}

UnknownUser
Forum-Newbie
Forum-Newbie
Beiträge: 7
Registriert: So 1. Nov 2020, 12:54

Re: Ausrichtung in Tabellen mittels SIunitx

Beitrag von UnknownUser »

Danke dir für die schnelle Antwort. Das löst schonmal das Problem mit Ausrichtung und Tabellenbreite. Aber die Zahlen sollen in Klammern stehen, also quasi (41,46 ± 0,52) %
Ich hab daher dein

\begin{tabular}{@{} l c S[table-format = 2.2(2)]@{\,\%}}

angepasst zu

\begin{tabular}{@{} l c S[table-format = 2.2(2)]@{)\,\%}}

(hier also nur die Klammer eingefügt). Wenn ich diese auch links mit

@{(}

einfügen möchte bekomme ich aber zum Beispiel in der letzten Zeile ( 5,50 ± 0,86) % statt (5,50 ± 0,86) %, was etwas unschön aussieht.
Leider kann ich auch nicht einfach in der Zelle (41.46+-0.52) eingeben, da ich dann wegen der () einen Fehler bekomme.

Wie bekomme ich dann jetzt noch die Klammern rein?


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

Re: Ausrichtung in Tabellen mittels SIunitx

Beitrag von Bartman »

Durch die Einstellung der Option table-format wird für jede Zahl in der S-Spalte der Platz für zwei Ziffern vor dem Dezimaltrennzeichen reserviert.

Falls ich recht haben sollte, dann musst Du auf die S-Spalte verzichten, um die Klammern auf die gewünschte Art einfügen zu können.

\documentclass[preview, border=5pt]{standalone}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{siunitx}% lädt das Paket array für >{} und <{}

\sisetup{
    locale = DE,
    separate-uncertainty=true,
    detect-weight, % Schrifttyp übernehmen (bold, kursiv etc)
    detect-family, %Schriftart des Umgebungstextes übernehmen (mit/ohne Serifen)
    mode=text
}
			
\begin{document}
\begin{tabular}{
    @{} l c 
    >{(}r @{\,$\pm$\,} l<{)} 
    @{\,\%}
}
\toprule[1.5pt]
Spektrum	& \multicolumn{1}{c}{Element} & \multicolumn{2}{c}{Häufigkeit}	\\
\midrule[1.5pt]
\multirow{4}{*}{59, 61, 64}	& Fe	& 41,46 & 0,52	\\
                            & As	& 38,01 & 0,79	\\
                            & Eu	& 20,53 & 0,28	\\
                            & Rb	& 5,50 & 0,86	\\
\bottomrule
\end{tabular}
\end{document}

UnknownUser
Forum-Newbie
Forum-Newbie
Beiträge: 7
Registriert: So 1. Nov 2020, 12:54

Re: Ausrichtung in Tabellen mittels SIunitx

Beitrag von UnknownUser »

Super, danke dir. Sieht genauso aus wie ich mir das vorgestellt hatte.
Ich hab schon irgendwo kurz gelesen gehabt, dass "kompliziertere" Fehler sich wohl am ehesten nur über mehrere Spalten darstellen lassen, aber hatte gehofft, dass mein Problem noch "einfach" genug ist um es mit der S-Spalte lösen zu können


Antworten