PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Einheiten in SIunitx-Tabellenspalte schön ausrichten



enwor
04-12-2010, 22:36
Hallo,

Ich hab ein Problem mit einer meiner Tabellen. Ich verwende das aktuelle SIunitx Paket und versuche gerade eine Tabelle zu erstellen in der die Messwerte mit den zugehörigen Einheiten stehen.
Nun ist mir aufgefallen, dass das SIunitx Paket die Einheiten Symbole zum teil schön ausrichtet manchmal aber auch total wirr platziert.

In meinem Minimalbeispiel sieht man zum Beispiel (zumindest ist es bei mir so), dass in der 3. Spalte die Einheiten direkt an die Zahlenwerte geklebt sind. In Spalte 4 hingegen haben diese einen schönen Abstand zu den Zahlenwerten und sind auch schön untereinander platziert (lösch ich in der 4. spalte bei einem der beiden Werte die Kommastelle so wird zwar die zugehörige Einheit leicht zur Zahl hin verschoben hält aber einen schönen Abstand und bleibt halbwechs mit der oberen in einer Spalte)

In einer anderen Tabelle ist es mit den Einheiten sogar soweit gekommen, dass SIunitx die Einheiten IN die Potenzwerte hineingesetzt hat... (konnte ich nun nichtmehr reproduzieren will ich hier aber mal kurz angemerkt haben.)

Ich hab bereits in der SIunitx Dokumentation, via Google und hier im Forum die SuFu konsultiert, konnte aber keine Lösung für mein Problem finden (außer dem Vorschlag, dass die Einheiten nicht in die Tabelle gehören, sondern in den Kopf der Spalte) Allerdings hätte ich gerne bei dieser Tabelle die Einheiten bei den Werten und mitlerweile interessiert es mich auch ob es tatsächlich nicht möglich sein soll die Einheiten mit dem dafür gemachten Paket zu den Werten in die Tabelle zu schreiben (und schön zu platzieren)...

mfg und danke im voraus
EnWor



\documentclass[a4paper,fontsize=12pt]{scrartcl}
\usepackage[decimalsymbol=comma]{siunitx}

\begin{document}
\begin{table}
\caption{test}
\begin{tabular}{SSSSS}
5e7\hertz & 83\volt & 6,8\decibel & 21,7\decibel & 72\decibel \\
5e8\hertz & 4,48\volt & 0,30\volt & 23,6\decibel & 78,7\decibel \\
\end{tabular}
\end{table}
\end{document}

mechanicus
04-12-2010, 23:04
Hi,

in der Doku (S. 66) wird den Einheiten eine eigene Spalte spendiert.

Gruß
Marco

enwor
05-12-2010, 00:10
in der Doku (S. 66) wird den Einheiten eine eigene Spalte spendiert.

Danke für die schnelle Antwort,
Diesen Absatz habe ich auch schon gesehen und ausprobiert. Eine Auflistung der Einheiten am Rand in einer Spalte nützt er mir leider nichts, da ich in den einzelnen Zeilen (also nebeneinander) verschiedene Einheiten aufliste.

Nun hab ich das ganze nochmals ausprobiert indem ich jeder S-Spalte eine s-Spalte zur Seite gestellt habe (ist leider nicht ganz unaufwendig). Damit der Abstand zwischen Zahlenwert und Einheit nun aber nicht aberwitzig groß wird musste ich zusätzlich die Spaltenbreite über die Kommastellenanzahl verstellen. Leider nützt dies auch nichts mehr, sobald die Spalte einen Titel bekommt der Breiter ist als die Zahlenwerte...

Dieses Manko konnte ich wieder ausmerzen, indem ich den Zahlenwert an den rechten Rand und die Einheit an den linken Spaltenrand setze.

Nun ergibt sich wieder das nächste Problem, nämlich, dass der Titel der Spalte zu weit Links steht. Mit dem Befehl \multicolumn{}{}{Dampfung pro \SI{100}{\meter}} steht er wieder schön zentral und es sieht nun schon recht akzeptabel aus.

Allerdings (ich weiß ich bin pingelig) stört mich jetzt noch, dass

Das so ein gewaltiger Aufwand ist (geht das nicht einfacher auch?)
Ich table-figures-decimal=0 definieren muss, obwohl ich ja eine dezimalzahl habe. Sobald ich nämlich table-figures-decimal=1 setze wird der Abstand schon wieder unvernünftig groß.




\begin{tabular}{S[table-figures-decimal=0,table-number-alignment=right]s[table-unit-alignment=left]}
{Dampfung pro \SI{100}{\meter}} \\
69,4 &\decibel \\
72,4 &\decibel \\
\end{tabular}

mechanicus
05-12-2010, 11:02
Hi,

bzgl. der Zentrierung ist es blöde, denn die S-Spalten sind einfach nicht breit genug.


\documentclass[a4paper,fontsize=12pt]{scrartcl}
\usepackage[decimalsymbol=comma]{siunitx}
\sisetup{%
locale=DE,
}
\begin{document}
\begin{table}
\caption{test}
\begin{tabular}{SSSSS}
5e7\hertz & 83\volt & 6,8\decibel & 21,7\decibel & 72\decibel \\
5e8\hertz & 4,48\volt & 0,30\volt & 23,6\decibel & 78,7\decibel \\
\end{tabular}
\end{table}

\begin{center}
{Dampfung pro \SI{100}{\meter}}\\
\begin{tabular}{S[table-figures-decimal=1,table-number-alignment=right]@{\,}s[table-unit-alignment=left]}
69,4 &\decibel \\
72,4 &\decibel \\
\end{tabular}
\end{center}
\end{document}

Gruß
Marco

enwor
16-12-2010, 21:45
Damit das Topic noch nen schönen Abschluss bekommt (falls mal wer anderes das selbe Problem hat :) )

Bei mir hab ich das ganze nun gelöst indem ich die Einheiten doch in den Kopf der Spalte gegeben habe. (für dieses Beispiel brauch ich nun zusätzlich das Paket \usepackage{booktabs} um Tabellen freier Gestalten zu können)
Das ganze hat dann folgendermassen ausgeschaut:

\begin{table}
\centering
\begin{tabular}{S|SS|SS}
\toprule
\multicolumn{1}{c}{Frequenz \( \nu \)}
& {\( \text{Uss}_1 \)}
& \multicolumn{1}{c}{\( \text{Uss}_2 \)}
& {Daempfung}
& {Daempfung pro \SI{100}{\meter}} \\
\multicolumn{1}{c}{in [\si{\hertz}]}
& {in [\si{\volt}]}
& \multicolumn{1}{c}{in [\si{\volt}]}
& {in [\si{\decibel}]}
& {in [\si{\decibel}]} \\ \midrule
\multicolumn{5}{l}{RG58-Koaxialkabel} \\
1e6 & 88 & 8 & 20,8 & 69,4 \\
5e6 & 83 & 6,8 & 21,7 & 72,4 \\
50e6 & 4,48 & 0,30 & 23,6 & 78,7 \\ \midrule
\multicolumn{5}{l}{Unbekanntes-Koaxialkabel} \\
5e6 & 100 & 9,6 & 20,4 & 67,8 \\
50e6 & 5,1 & 0,39 & 22,3 & 74,4 \\ \bottomrule
\end{tabular}
\end{table}

und (obwohl diese Lösung zwar sehr aufwendig ist, dafür aber das Resultat sehr schön ausschaut) hier noch eine Lösung für meine ursprüngliche Frage (wieder mit dem zusätzlichen Paket \usepackage{booktabs})


\begin{tabular}{ S[table-figures-decimal=0,table-figures-exponent=1,table-number-alignment=right]@{\,}s[table-unit-alignment=left]|
S[table-figures-decimal=2,table-number-alignment=right]@{\,}s[table-unit-alignment=left]
S[table-figures-decimal=2,table-number-alignment=right]@{\,}s[table-unit-alignment=left]|
S[table-figures-decimal=1,table-number-alignment=right]@{\,}s[table-unit-alignment=left]
S[table-figures-decimal=1,table-number-alignment=right]@{\,}s[table-unit-alignment=left]
}
\toprule
\multicolumn{2}{c}{Frequenz \( \nu \)}
& \multicolumn{2}{c}{\( \text{Uss}_1 \)}
& \multicolumn{2}{c}{\( \text{Uss}_2 \)}
& \multicolumn{2}{c}{Daempfung}
& \multicolumn{2}{c}{Daempfung pro \SI{100}{\meter}} \\ \midrule
\multicolumn{5}{l}{RG58-Koaxialkabel} \\
1e6 &\hertz & 88 &\volt & 8 &\volt & 20,8 &\decibel & 69,4 &\decibel \\
5e6 &\hertz & 83 &\volt & 6,8 &\volt & 21,7 &\decibel & 72,4 &\decibel \\
50e6 &\hertz & 4,48 &\volt & 0,30 &\volt & 23,6 &\decibel & 78,7 &\decibel \\ \midrule
\multicolumn{5}{l}{Unbekanntes-Koaxialkabel} \\
5e6 &\volt & 100 &\volt & 9,6 &\volt & 20,4 &\decibel & 67,8 &\decibel \\
50e6 &\volt & 5,1 &\volt & 0,39 &\volt & 22,3 &\decibel & 74,4 &\decibel \\ \bottomrule
\end{tabular}

mfg und danke für eure Hilfe
EnWor