Seite 1 von 1

Ausrichtungsproblem mit S-table mit dem siunitx-Paket

Verfasst: Mo 26. Mär 2018, 18:42
von shardur
Hey,

ich habe ein Problem beim erstellen der unten stehenden Tabelle (Minimalbsp.). Ich will eigentlich, dass alle Einträge zentriert unter der jeweiligen Spaltenüberschrift stehen. Jedoch ist die Ausrichtung in Spalte 2 (sieht linksbündig aus) und Spalte 4 (komplett verrutscht) nicht dementsprechend. Das Minuszeichen in den letzten zwei Spalten ist auch verschieden. Kann mir hier jemand weiterhelfen woran das liegt? Habe einiges versucht, hat aber nichts wirklich funktioniert. Man sieht vielleicht, dass ich das siunitx-Paket noch nicht sehr langen nutze :lol:
\documentclass[a4paper,12pt]{article}

\usepackage[english]{babel}
\usepackage{mathptmx}
\usepackage{courier}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
% Rotate page and header etc
\usepackage[a4paper,hmargin=3cm,vmargin=5cm]{geometry}
\usepackage{lscape,lipsum}

% Tables
\usepackage[flushleft]{threeparttable} 
\usepackage{longtable}          % zum erstellen von Tabellen ber mehrere Seiten
\usepackage{multirow}           % zum Verbinden von Zeilen innerhalb einer Tabelle
\usepackage{booktabs}
% Align table
\usepackage{siunitx}
\sisetup{table-text-alignment = center,table-align-exponent = false}

\begin{document}

\setlength{\tabcolsep}{2.5mm}
\begin{table}[h!]
\centering
  \caption{Some Caption}
\begin{threeparttable}
\begin{tabular}{c S[table-format = -1.4]*{2}{c S[table-format = -1.4]} c S[table-format = -1.4] c S[table-format = -1.4]*{2}{c S[table-format = -1.4]} c S[table-format = -1.4]}
\toprule
\multicolumn{1}{c}{\text{Nr.}} & \multicolumn{1}{c}{\text{Type}} & \multicolumn{1}{c}{\text{Option 1}} & \multicolumn{1}{c}{\text{Option 2}} & \multicolumn{1}{c}{\text{Option 3}} & \multicolumn{1}{c}{\text{Option 3}} & \multicolumn{1}{c}{\text{Option 4}}  \\  \midrule
 1 & \text{Bla} & 1000 & 1300 & 1500 & 0,00014 & -0,05480 \\
 2 & \text{Blabla} & 4108 & 2104 & 5000 & -0,00147 & 0,04804 \\
  \end{tabular}
  \begin{tablenotes}
  \item some notes
  \end{tablenotes}
  \end{threeparttable}
  \label{some_label}
\end{table}

\end{document}


Vielen Dank für eure Mühe!

Verfasst: Mo 26. Mär 2018, 19:22
von Gast
Wenn du siunitx nicht sagst, dass du Dezimalkomma verwendest, dann erkennt es das AFAIK nicht selbst. Bei englischen Texten ist es auch nicht wirklich sinnvoll, Dezimalkomma einzugeben. Man kann das trotzdem machen und siunitx anweisen, bei der Ausgabe trotzdem einen Dezimalpunkt zu setzen.

Deine Tabelle hat in Wirklichkeit 7 Spalten. Du definierst aber 16:
  • c: Spalte 1
  • S[table-format = -1.4]: Spalte 2
  • *{2}{c S[table-format = -1.4]}: Spalte 3 bis 6
  • c: Spalte 7
  • S[table-format = -1.4]: Spalte 8
  • c: Spalte 9
  • S[table-format = -1.4]: Spalte 10
  • *{2}{c S[table-format = -1.4]}: Spalte 11 bis 14
  • c: Spalte 15
  • S[table-format = -1.4]: Spalte 16
Auch ist S[table-format = -1.4] für Spalten mit 4 Integerstellen aber ohne Komma und Nachkommastellen nicht besonders sinnvoll. Da wäre S[table-format=4.0] schon sinnvoller.

Mir ist leider auch nicht klar, bezüglich was Du zentrieren willst. Wenn bezüglich eines (angenommenen) Dezimalpunkts zentriert werden soll, wäre einfach nur S sinnvoll.

Verfasst: Mo 26. Mär 2018, 20:25
von shardur
Ok, danke für die schnelle Hilfe! Ich werde es mir morgen nochmal anschauen und versuchen diesmal richtig zu überarbeiteten.

Verfasst: Di 27. Mär 2018, 07:34
von markusv
Das ganze lässt sich wesentlich einfacher und überschaulicher umsetzen.

Für Text in S-Spalten reicht hier eine Umklammerung mit {...}, da bereits in bei \sisetup die Zentrierung eingestellt wurde.

Ansonsten gilt natürlich das, was bereits erwähnt wurde: nur soviel Spalten anzugeben, wie auch nötig sind. Und diese, wenn, dann mit den richtigen Einstellungen:
\documentclass[12pt,english,captions=tableheading]{scrartcl}

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

\usepackage{booktabs}
\usepackage{siunitx}
\sisetup{table-text-alignment = center,table-align-exponent = false}

\begin{document}

\setlength{\tabcolsep}{2.5mm}
\begin{table}
\centering
\caption{Some Caption}
\begin{tabular}{cl*{3}{S[table-format=4.0]}*{2}{S[table-format=-1.5]}}
	\toprule
    Nr.& Type & {Option 1} & {Option 2} & {Option 3} & {Option 3} & {Option 4}  \\
    \midrule
    1 & Bla & 1000 & 1300 & 1500 & 0,00014 & -0,05480 \\
    2 & Blabla & 4108 & 2104 & 5000 & -0,00147 & 0,04804 \\
    \bottomrule
\end{tabular}
\label{some_label}
\end{table}
\end{document}
Dezenter Hinweis: Minimalbeispiel :wink: