S-Spalte in Tabellen mit Paketen sunitx und array
Verfasst: Do 12. Feb 2015, 11:56
Hallo zusammen,
ich möchte gerne eine Tabelle erstellen, die die Zahlen mit Hilfe der im Paket siuntx bereitgestellten S-Spalte Zahlen schön am Komma ausrichtet und außerdem automatisch nach jeder Zahl eine Einheit, bzw. ein kurzer feststehender Text, eingefügt wird (Ich weiß, normalerweise gehören Einheiten in den Tabellenkopf, hier geht es aber um Rechnungen und da ist es eben üblich, dass das Euro-Zeichen nach jeder Zahl steht). Dazu möchte ich im Tabellenkopf die vom Paket array definierte Möglichkeit nutzen, nach jedem Eintrag in der Spalte etwas hinzuzufügen. Mein Ansatz lautet deshalb, die entsprechenden Spalten mit
zu definieren. Erklärung: "S" definiert eine S-Spalte, be der die Zahlen am Komma ausgerichtet sind, "table-space-text-post ={\,E}" reserviert Platz für die "Einheit" E, "table-format=X.X" reserviert Platz für die Ziffern und "<{\,E}" fügt die eigentliche Einheit ein.
Soweit funktioniert das auch. Aber: In der letzten Spalte (und nur in der letzten Spalte) wird die Einheit plötzlich weiter von der Zahl weggerückt. Das kann ich mir nicht erkären. Eine Lösung ist, dass ich in der letzten Spalte die Einheiten von Hand reinschreibe, aber das ist natürlich unpraktisch. Es zeigt mirr ber, dass das offensichtlich irgendwo am Zusammenspiel zwischen siunitx- und array- Paket liegt. Kann mir jemand erklären, was die Ursachen des Fehlers sind und ob man den beheben kann?
Minimalbeispiel:
Vielen Dank für eure Hilfe
ich möchte gerne eine Tabelle erstellen, die die Zahlen mit Hilfe der im Paket siuntx bereitgestellten S-Spalte Zahlen schön am Komma ausrichtet und außerdem automatisch nach jeder Zahl eine Einheit, bzw. ein kurzer feststehender Text, eingefügt wird (Ich weiß, normalerweise gehören Einheiten in den Tabellenkopf, hier geht es aber um Rechnungen und da ist es eben üblich, dass das Euro-Zeichen nach jeder Zahl steht). Dazu möchte ich im Tabellenkopf die vom Paket array definierte Möglichkeit nutzen, nach jedem Eintrag in der Spalte etwas hinzuzufügen. Mein Ansatz lautet deshalb, die entsprechenden Spalten mit
S[table-space-text-post ={\,E},table-format=X.X]<{\,E}
zu definieren. Erklärung: "S" definiert eine S-Spalte, be der die Zahlen am Komma ausgerichtet sind, "table-space-text-post ={\,E}" reserviert Platz für die "Einheit" E, "table-format=X.X" reserviert Platz für die Ziffern und "<{\,E}" fügt die eigentliche Einheit ein.
Soweit funktioniert das auch. Aber: In der letzten Spalte (und nur in der letzten Spalte) wird die Einheit plötzlich weiter von der Zahl weggerückt. Das kann ich mir nicht erkären. Eine Lösung ist, dass ich in der letzten Spalte die Einheiten von Hand reinschreibe, aber das ist natürlich unpraktisch. Es zeigt mirr ber, dass das offensichtlich irgendwo am Zusammenspiel zwischen siunitx- und array- Paket liegt. Kann mir jemand erklären, was die Ursachen des Fehlers sind und ob man den beheben kann?
Minimalbeispiel:
\documentclass{scrartcl} \usepackage[ngerman]{babel} \usepackage[utf8]{inputenc} \usepackage{siunitx} \usepackage{array} \begin{document} In Tabellenkopf integriert: Großer Abstand in letzter Spalte, alle anderen Spalten sind korrekt: \begin{tabular}{|S[table-space-text-post ={\,E},table-format=4.2]<{\,E}| S[table-space-text-post ={\,E},table-format=2.2]<{\,E}| S[table-space-text-post ={\,E},table-format=2.2]<{\,E}|} \hline 4564.45 & 45.1 & 45.1 \\ 4564.45 & 4.1 & 4.1 \\ 45.4 & 45.13 & 45.13\\ 45.45 & 45.1 & 45.1 \\ \hline \end{tabular}\\ Mit einer leeren Spalte am Ende ist der Abstand korrekt, aber unschön und mit \emph{hline} geht das gar nicht: \begin{tabular}{|S[table-space-text-post ={\,E},table-format=4.2]<{\,E}| S[table-space-text-post ={\,E},table-format=2.2]<{\,E}| S[table-space-text-post ={\,E},table-format=2.2]<{\,E}|c} \hline 4564.45 & 45.1 & 45.1 &\\ 4564.45 & 4.1 & 4.1 &\\ 45.4 & 45.13 & 45.13 &\\ 45.45 & 45.1 & 45.1 &\\ \hline \end{tabular}\\ Von Hand in jede Zeile geschrieben: Korrekter Abstand, aber aufwändig: \begin{tabular}{|S[table-space-text-post ={\,E},table-format=4.2]<{\,E}| S[table-space-text-post ={\,E},table-format=2.2]<{\,E}| S[table-space-text-post ={\,E},table-format=2.2]|} \hline 4564.45 & 45.1 & 45.1\,E\\ 4564.45 & 4.1 & 4.1\,E\\ 45.4 & 45.13 & 45.13\,E\\ 45.45 & 45.1 & 45.1\,E\\ \hline \end{tabular} \end{document}