DirtyHarry
03-01-2014, 14:59
Hallo Forum,
Nach über sechsstündigem Scheitern möchte ich euch hier mein aktuelles Problem vorstellen. Ich möchte eine Tabelle erzeugen, in der eine lineare Parametrisierung für bestimmte Temperaturbereiche aufgelistet wird.
Konkret stelle ich mir das so vor:
Temperaturbereich alpha
0 - 90 1,2
>90 - 100 1,22
>100 - 200 1,5
Die Werte der linken Spalte sollen dabei am "-" zentriert werden. Leider bekomme ich das mit dem Paket siunitx und den mitgelieferten S-Spalten und dem \SIrange bzw. \numrange Befehl einfach nicht hin.
Das Internet hat mir schon geraten, anstelle von \SIrange in einer Tabelle ohnehin besser zwei eigene Spalten zu verwenden, aber das will mir einfach nicht so richtig gefallen. Selbst dann ist die ordentliche Gestaltung nicht einfach:
\documentclass[
11pt,
a4paper,
titlepage,
onecolumn,
oneside,
]{scrbook}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[USenglish, ngerman]{babel}
\usepackage{upgreek}
\usepackage{multirow}
\usepackage{booktabs}
\usepackage{bigstrut}
\usepackage[
per-mode=reciprocal,
output-decimal-marker={,},
range-phrase={\ bis\ },
list-separator={,\,},
list-pair-separator={\ und\ },
list-final-separator={\ und\ }
]{siunitx}
\begin{document}
\begin{table}[htb]
\centering
\caption{Abschnittweise definierter Parameter $\upalpha$.}
\sisetup{
table-text-alignment = center
}
\begin{tabular}{
S[table-format = >3, table-number-alignment = left] %table-number-alignment = left ist sinnlos?
%S[table-format = >3, table-number-alignment = center]
S[table-format = 3, table-number-alignment = left]
S[table-format = 1.2, table-number-alignment = center]
}
\toprule
\multicolumn{2}{c}{Temperatur / \SI{}{\celsius}} & \bigstrut[t] \\
\cmidrule{1-2}
{von} & {bis} & {$\upalpha$} \tabularnewline %\bigstrut[b] \\ funktioniert nach \tabularnewline nicht mehr
{von} & {bis} & { $\upalpha$ } \bigstrut[b] \\ %alpha mit Leerzeichen,
{von} & {bis} & {$\upalpha$} \bigstrut[b] \\ %alpha "ganz normal" -> wird in Spalte nicht korrekt zentriert
{von} & {bis} & \multicolumn{1}{c}{$\upalpha$} \bigstrut[b] \\
\multicolumn{1}{r}{von} & \multicolumn{1}{l}{bis} & \multicolumn{1}{c}{$\upalpha$} \bigstrut[b] \\
\midrule
0 & 90 & 1,2 \bigstrut[t] \\
> 90 & 100 & 1,22 \\
> 100 & 200 & 1,5 \bigstrut[b] \\
\bottomrule
\end{tabular}
\label{tab:label}
\end{table}
\end{document}
sieht auch mies aus.
Mittlerweile hab ich es aufgegeben und komme damit über die Runden:
\begin{table}[htb]
\centering
\caption{Abschnittweise definierter Parameter $\upalpha$.}
\sisetup{
table-text-alignment = center
}
\begin{tabular}{
S[table-format = >5,
table-align-comparator = false,
table-align-text-pre = false,
table-align-text-post = false,
table-number-alignment = left
]
S[table-format = 1.2]
}
\toprule
\multicolumn{1}{c}{Temperatur / \SI{}{\celsius}} & \multicolumn{1}{c}{$\upalpha$} \bigstrut[b] \\
\midrule
0{ -- 90} & 1,2 \bigstrut[t] \\
> 90{ -- 100} & 1,22 \\
> 100{ -- 200} & 1,5 \bigstrut[b] \\
\bottomrule
\end{tabular}
\label{tab:label}
\end{table}
Das hab ich hier gefunden:
Link (http://tex.stackexchange.com/questions/35911/why-does-num-not-work-in-situnitxs-s-columns)
Der Trick ist, dass man nur einen Teil von siunitx ausrichten lässt und den Rest des anzugebenden Werteintervalls in {}-Klammern setzt, wodurch es als Text interpretiert wird. Ich erreiche eine ungefähre Zentrierung unter der Überschrift aber nur dann, wenn ich die Spalte als S[table-format = >5] deklariere (obwohl ich keine 5-stelligen Zahlen eintrage), damit links von den Werten mehr Platz freigelassen wird.
Ihr merkt schon, das tut weh, und geht eigentlich ganz weit am Sinn von TeX vorbei.
Hat jemand von euch eine Idee, wie man das eleganter lösen könnte?
Vielen Dank auf jeden Fall an alle, die sich hier mal Zeit nehmen und sich das ansehen.
PS:
So Spezialitäten wie
\multicolumn{1}{c}{$\upalpha$}
damit ein griechischer Buchstabe korrekt in einer Überschriftszeile zentriert wird, sind dann noch das Salz in der Suppe wenn ohnehin schon Panik herrscht... :mad:
Nach über sechsstündigem Scheitern möchte ich euch hier mein aktuelles Problem vorstellen. Ich möchte eine Tabelle erzeugen, in der eine lineare Parametrisierung für bestimmte Temperaturbereiche aufgelistet wird.
Konkret stelle ich mir das so vor:
Temperaturbereich alpha
0 - 90 1,2
>90 - 100 1,22
>100 - 200 1,5
Die Werte der linken Spalte sollen dabei am "-" zentriert werden. Leider bekomme ich das mit dem Paket siunitx und den mitgelieferten S-Spalten und dem \SIrange bzw. \numrange Befehl einfach nicht hin.
Das Internet hat mir schon geraten, anstelle von \SIrange in einer Tabelle ohnehin besser zwei eigene Spalten zu verwenden, aber das will mir einfach nicht so richtig gefallen. Selbst dann ist die ordentliche Gestaltung nicht einfach:
\documentclass[
11pt,
a4paper,
titlepage,
onecolumn,
oneside,
]{scrbook}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[USenglish, ngerman]{babel}
\usepackage{upgreek}
\usepackage{multirow}
\usepackage{booktabs}
\usepackage{bigstrut}
\usepackage[
per-mode=reciprocal,
output-decimal-marker={,},
range-phrase={\ bis\ },
list-separator={,\,},
list-pair-separator={\ und\ },
list-final-separator={\ und\ }
]{siunitx}
\begin{document}
\begin{table}[htb]
\centering
\caption{Abschnittweise definierter Parameter $\upalpha$.}
\sisetup{
table-text-alignment = center
}
\begin{tabular}{
S[table-format = >3, table-number-alignment = left] %table-number-alignment = left ist sinnlos?
%S[table-format = >3, table-number-alignment = center]
S[table-format = 3, table-number-alignment = left]
S[table-format = 1.2, table-number-alignment = center]
}
\toprule
\multicolumn{2}{c}{Temperatur / \SI{}{\celsius}} & \bigstrut[t] \\
\cmidrule{1-2}
{von} & {bis} & {$\upalpha$} \tabularnewline %\bigstrut[b] \\ funktioniert nach \tabularnewline nicht mehr
{von} & {bis} & { $\upalpha$ } \bigstrut[b] \\ %alpha mit Leerzeichen,
{von} & {bis} & {$\upalpha$} \bigstrut[b] \\ %alpha "ganz normal" -> wird in Spalte nicht korrekt zentriert
{von} & {bis} & \multicolumn{1}{c}{$\upalpha$} \bigstrut[b] \\
\multicolumn{1}{r}{von} & \multicolumn{1}{l}{bis} & \multicolumn{1}{c}{$\upalpha$} \bigstrut[b] \\
\midrule
0 & 90 & 1,2 \bigstrut[t] \\
> 90 & 100 & 1,22 \\
> 100 & 200 & 1,5 \bigstrut[b] \\
\bottomrule
\end{tabular}
\label{tab:label}
\end{table}
\end{document}
sieht auch mies aus.
Mittlerweile hab ich es aufgegeben und komme damit über die Runden:
\begin{table}[htb]
\centering
\caption{Abschnittweise definierter Parameter $\upalpha$.}
\sisetup{
table-text-alignment = center
}
\begin{tabular}{
S[table-format = >5,
table-align-comparator = false,
table-align-text-pre = false,
table-align-text-post = false,
table-number-alignment = left
]
S[table-format = 1.2]
}
\toprule
\multicolumn{1}{c}{Temperatur / \SI{}{\celsius}} & \multicolumn{1}{c}{$\upalpha$} \bigstrut[b] \\
\midrule
0{ -- 90} & 1,2 \bigstrut[t] \\
> 90{ -- 100} & 1,22 \\
> 100{ -- 200} & 1,5 \bigstrut[b] \\
\bottomrule
\end{tabular}
\label{tab:label}
\end{table}
Das hab ich hier gefunden:
Link (http://tex.stackexchange.com/questions/35911/why-does-num-not-work-in-situnitxs-s-columns)
Der Trick ist, dass man nur einen Teil von siunitx ausrichten lässt und den Rest des anzugebenden Werteintervalls in {}-Klammern setzt, wodurch es als Text interpretiert wird. Ich erreiche eine ungefähre Zentrierung unter der Überschrift aber nur dann, wenn ich die Spalte als S[table-format = >5] deklariere (obwohl ich keine 5-stelligen Zahlen eintrage), damit links von den Werten mehr Platz freigelassen wird.
Ihr merkt schon, das tut weh, und geht eigentlich ganz weit am Sinn von TeX vorbei.
Hat jemand von euch eine Idee, wie man das eleganter lösen könnte?
Vielen Dank auf jeden Fall an alle, die sich hier mal Zeit nehmen und sich das ansehen.
PS:
So Spezialitäten wie
\multicolumn{1}{c}{$\upalpha$}
damit ein griechischer Buchstabe korrekt in einer Überschriftszeile zentriert wird, sind dann noch das Salz in der Suppe wenn ohnehin schon Panik herrscht... :mad: