Seite 1 von 2

Zahlen am Dezimalpunkt ausrichten

Verfasst: Di 26. Apr 2016, 19:04
von Guest_0
Hallo zusammen,

ich würde gerne eine Tabelle erstellen, bei der ich die Spaltenbreiten selbst festlegen kann und die enthaltenen Zahlen am Dezimalpunkt ausgerichtet werden (und dabei in der jeweiligen Spalte zentriert sind). Meine Tabelle sieht momentan so aus:
\documentclass[a4paper,10pt]{article}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{multicol}
\begin{document}
\begin{tabular}{m{2cm} m{4.85cm} m{3.5cm} m{3.5cm}}
\toprule
1.Spalte & 2. Spalte & 3. Spalte & 4 Spalte \\
\midrule
\ctab 1,2834 & \ctab -0,121 & \ctab 8,237 & \ctab 1,281 \\
\ctab -0,232 & \ctab 1,0222 & \ctab -0,212 & \ctab 1,1  \\
\bottomrule
\end{tabular}
\end{document}
Wie bekomme ich es nun hin, dass die Zahlen am Dezimalpunkt ausgerichtet werden?

Danke!

Verfasst: Di 26. Apr 2016, 19:40
von Bartman
Wo wird \ctab definiert?

Verfasst: Di 26. Apr 2016, 20:26
von Guest_0
Hier ein ergänztes Minimalbeispiel:
\documentclass[a4paper,10pt]{article}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{multicol}
\usepackage{tabularx}
\newcommand{\ltab}{\raggedright\arraybackslash}
\newcommand{\ctab}{\centering\arraybackslash}
\newcommand{\rtab}{\raggedleft\arraybackslash}

\begin{document}
\begin{table}
\begin{tabular}{m{2cm} m{4.85cm} m{3.5cm} m{3.5cm}}
\toprule
\ctab 1.Spalte & \ctab 2. Spalte & \ctab 3. Spalte & \ctab 4 Spalte \\
\midrule
\ctab 1,2834 & \ctab -0,121 & \ctab 8,237 & \ctab 1,281 \\
\ctab -0,232 & \ctab 1,0222 & \ctab -0,212 & \ctab 1,1  \\
\bottomrule
\end{tabular}
\end{table}
\end{document}

Verfasst: Di 26. Apr 2016, 20:57
von Bartman
Warum nicht die S-Spalte von siunitx nutzen?

Verfasst: Di 26. Apr 2016, 21:25
von Guest_0
Ich bin leider nicht der Experte was Latex anbelangt, habe meine Bachelorarbeit damit geschrieben was eigentlich auch ganz gut geklappt hat.. jetzt bin ich bei den Feinheiten und habe nicht mehr viel Zeit. Latex geizt nicht mit Fehlermeldungen :lol: könnte mir da jemand mit einem lauffähigen Minimalbeispiel behilflich sein? Wäre echt super!

Verfasst: Di 26. Apr 2016, 21:46
von Beinschuss
Ausnahmsweise - weil's nämlich genau so in der Doku zu [d]siunitx[/d] steht:
\documentclass[a4paper,10pt]{article}
\usepackage{siunitx}
\usepackage{booktabs}
\begin{document}
\begin{table}
\caption{Aligning the \texttt{S} column.}
\label{tab:S:align}
\centering
\sisetup{
table-figures-integer = 2,
table-figures-decimal = 4
}
\begin{tabular}{
S
S[table-number-alignment = center]
S[table-number-alignment = left]
S[table-number-alignment = right]
}
\toprule
{Some Values} & {Some Values} & {Some Values} & {Some Values} \\
\midrule
2.3456 & 2.3456 & 2.3456 & 2.3456 \\
34.2345 & 34.2345 & 34.2345 & 34.2345 \\
56.7835 & 56.7835 & 56.7835 & 56.7835 \\
90.473 & 90.473 & 90.473 & 90.473 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}

Verfasst: Di 26. Apr 2016, 21:56
von Guest_0
Vielen Dank! Im Online-Editor funktioniert dein Vorschlag ohne Probleme, in Latex erhalte ich aber die Fehlermeldung:

! Invalid numerical input 'E'.
!
! See the siunitx documentation for further information.
!
! For immediate help type H <return>.

Verfasst: Di 26. Apr 2016, 22:00
von Guest_0
Problem gelöst. :lol: Wie lässt sich nun die Spaltenbreite einstellen, damit die spalten wieder so breit sind wie zuvor?

Verfasst: Di 26. Apr 2016, 23:04
von Bartman
Du könntest z. B. die Option table-column-width mit einem geeigneten Wert verwenden oder die Spaltenbeschriftungen mit dem Befehl \multicolumn bearbeiten. Es gibt in anderen Threads dieses Unterforums Beispiele dafür.

Verfasst: Di 26. Apr 2016, 23:26
von Guest_0
Toll, das klappt genau wie ich es mir vorstelle! .. fast jedenfalls :D in der ersten Spalte (bezogen auf deinen Vorschlag) werden "Some Values" und die Werte in dieser Spalte nicht genau untereinander zentriert, sondern leicht versetzt.
Außerdem steht in der dritten Spalte statt "Some Values" ein deutlich längeres Wort und Latex erzeugt keinen Zeilenumbruch, sondern schreibt es in die nächste Spalte rein. Falls jemand für diese beiden Probleme noch eine Lösung hätte, wäre ich sehr dankbar!