Siuntix: Ausrichtung am Komma und feste Spaltenbreite

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Siuntix: Ausrichtung am Komma und feste Spaltenbreite

Vielen Dank!

von Hanni » So 21. Jan 2018, 16:03

Vielen Dank für die hilfreichen Kommentare, jetzt funktioniert alles.
Schönen Sonntag noch!

von Gast » So 21. Jan 2018, 15:45

Da ich nicht weiß, wie bei Dir der Spaltentyp L deklariert ist, kann ich Dir nicht sagen, ob das so geht. Aber natürlich kann man eine normale p-Spalte mit der gewünschten Breite verwenden. Solange der Text darin einzeilig ist, ist er ja automatisch linksbündig. Soll mehrzeiliger Text linksbündig (satt im Blocksatz) gesetzt werden, kann man mit \raggedright oder Paket ragged2e arbeiten. Am besten dann zusammen mit array, um die Anweisung bereits in die Deklaration der Spalten per >-Operator einzubauen. Siehe dazu die [d]array[/d]-Anleitung. Dergleichen ist übrigens üblicherweise auch in einer guten LaTeX-Einführung erklärt. Es gibt auch Spezialliteratur zu Tabellen mit LaTeX. Siehe beispielsweise: http://www.dante.de/index/Literatur.html

von Hanni » So 21. Jan 2018, 15:21

Super, vielen Dank, das hat mir schon sehr weitergeholfen:)
Was muss ich denn tun, wenn ich die Breite der ersten Spalte auch anpassen möchte? Kann ich einfach L{p{5cm}} vor die {l*{8}{S[table-align-text-post=false,table-column-width=1.9cm]}} setzen oder muss ich da noch etwas anderes beachten?

Ich hatte gehofft, die Klammern kann ich drin lassen. Die hat mir excel2latex automatisch gesetzt und es sind doch recht viele um sie manuell anzupassen, aber da muss ich dann wohl durch.

von Gast » So 21. Jan 2018, 14:50

Erzwingen kann man eine Spaltenbreite, wie bereits oben erwähnt, per Option:
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[a4paper,lmargin={2.5cm},rmargin={2.5cm},tmargin={3cm},bmargin = {3cm}]{geometry}
\usepackage{rotating}
\usepackage{booktabs}
\usepackage{array}
\usepackage{siunitx}
\sisetup{input-symbols = ()}

\begin{document}
\begin{sidewaystable}
    \centering
    \caption{XYZ}
    \def\sym#1{\ifmmode^{#1}\else\(^{#1}\)\fi}
\sisetup{table-space-text-post = \sym{***}}
\begin{tabular}{l*{8}{S[table-align-text-post=false,table-column-width=1.9cm]}}\\
\hline
      & 2007 & 2008 & 2009 & 2010 & 2011 & 2012 & 2013 & 2014 \\
      \hline
a & -25,51\sym{***} & -17,14\sym{***} & -26,95\sym{***} & -17,92\sym{***} & -25,00\sym{***} & -14,19\sym{***} & -65,98\sym{***} & -89,15\sym{***} \\
b & -19,13\sym{***} &  -24,98\sym{***} &  -90,50\sym{***} & -55,70\sym{***} &  {-66,07}\sym{***} & -54,80\sym{***} & -76,43 & -14,00\sym{*} \\
c &  {n.a.} &  -49,89 &  130,72 & -120,86 &  59,63 & -29,37 & 12,85 & -34,76 \\
d &  -21,79\sym{***} &  -27,71\sym{***} &  -79,04\sym{***} & -78,42\sym{***} &  -28,10\sym{***} & -55,47\sym{***} & -76,03 & -78,07 \\
e & {n.a.} &  -34,44\sym{***} &  -36,19\sym{**} & -45,28\sym{***} &  {-19,18} & -12,38\sym{***} & -15,67   & -57,98 \\
\bottomrule
\end{tabular}%
    \label{tab:XYZ}
\end{sidewaystable}

\end{document}
Natürlich sind für die verwendeten 8-Zahlenspalten auch 8 ſ-Spalten zu deklarieren und nicht nur 4. Alles überflüssige habe ich zwecks Übersichtlichkeit gemäß Minimalbeispiel-Anleitung aus der Dokumentpräambel rausgeworfen.

Ein Problem ergibt sich hier aus den Zahlen, die Du in geschweifte Klammern gesetzt hast, beispielsweise {-66.07}. Diese werden nämlich nicht als Zahl, sondern als Text behandelt! Die störenden Klammen sollten also entfernt werden. Ich vermute außerdem, dass die Ausgabe für Deutsch mit Komma erfolgen soll, also wäre es sinnvoll locale=DE zu setzen. Man landet dann bei:
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[a4paper,lmargin={2.5cm},rmargin={2.5cm},tmargin={3cm},bmargin = {3cm}]{geometry}
\usepackage{rotating}
\usepackage{booktabs}
\usepackage{array}
\usepackage{siunitx}
\sisetup{locale=DE}

\begin{document}
\begin{sidewaystable}
    \centering
    \caption{XYZ}
    \def\sym#1{\ifmmode^{#1}\else\(^{#1}\)\fi}
\sisetup{table-space-text-post = \sym{***}}
\begin{tabular}{l*{8}{S[table-align-text-post=false,table-column-width=1.9cm]}}\\
\hline
      & 2007 & 2008 & 2009 & 2010 & 2011 & 2012 & 2013 & 2014 \\
      \hline
a & -25,51\sym{***} & -17,14\sym{***} & -26,95\sym{***} & -17,92\sym{***} & -25,00\sym{***} & -14,19\sym{***} & -65,98\sym{***} & -89,15\sym{***} \\
b & -19,13\sym{***} &  -24,98\sym{***} &  -90,50\sym{***} & -55,70\sym{***} &  -66,07\sym{***} & -54,80\sym{***} & -76,43 & -14,00\sym{*} \\
c &  {n.a.} &  -49,89 &  130,72 & -120,86 &  59,63 & -29,37 & 12,85 & -34,76 \\
d &  -21,79\sym{***} &  -27,71\sym{***} &  -79,04\sym{***} & -78,42\sym{***} &  -28,10\sym{***} & -55,47\sym{***} & -76,03 & -78,07 \\
e & {n.a.} &  -34,44\sym{***} &  -36,19\sym{**} & -45,28\sym{***} &  -19,18 & -12,38\sym{***} & -15,67   & -57,98 \\
\bottomrule
\end{tabular}%
    \label{tab:XYZ}
\end{sidewaystable}

\end{document}
Auch hier gibt es noch Fehler in der Formatierung, die daraus resultieren dürften, dass die 1.9cm für einen zentrierten Punkt einfach zu wenig sind. Also fügen wir noch ein passendes Zahlenformat hinzu:
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[a4paper,lmargin={2.5cm},rmargin={2.5cm},tmargin={3cm},bmargin = {3cm}]{geometry}
\usepackage{rotating}
\usepackage{booktabs}
\usepackage{array}
\usepackage{siunitx}
\sisetup{locale=DE}

\begin{document}
\begin{sidewaystable}
    \centering
    \caption{XYZ}
    \def\sym#1{\ifmmode^{#1}\else\(^{#1}\)\fi}
\sisetup{table-space-text-post = \sym{***}}
\begin{tabular}{l*{8}{S[table-align-text-post=false,table-column-width=1.9cm,table-format=4.2]}}\\
\hline
      & 2007 & 2008 & 2009 & 2010 & 2011 & 2012 & 2013 & 2014 \\
      \hline
a & -25,51\sym{***} & -17,14\sym{***} & -26,95\sym{***} & -17,92\sym{***} & -25,00\sym{***} & -14,19\sym{***} & -65,98\sym{***} & -89,15\sym{***} \\
b & -19,13\sym{***} &  -24,98\sym{***} &  -90,50\sym{***} & -55,70\sym{***} &  -66,07\sym{***} & -54,80\sym{***} & -76,43 & -14,00\sym{*} \\
c &  {n.a.} &  -49,89 &  130,72 & -120,86 &  59,63 & -29,37 & 12,85 & -34,76 \\
d &  -21,79\sym{***} &  -27,71\sym{***} &  -79,04\sym{***} & -78,42\sym{***} &  -28,10\sym{***} & -55,47\sym{***} & -76,03 & -78,07 \\
e & {n.a.} &  -34,44\sym{***} &  -36,19\sym{**} & -45,28\sym{***} &  -19,18 & -12,38\sym{***} & -15,67   & -57,98 \\
\bottomrule
\end{tabular}%
    \label{tab:XYZ}
\end{sidewaystable}

\end{document}
Jetzt werden vier Stellen vor dem Komma und zwei danach reserviert. Das Komma ist nicht mehr in der Spaltenmitte. Die Formatierung ist einheitlich.

von Hanni » So 21. Jan 2018, 14:44

Copy-paste Fehler, entschuldige.
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[a4paper,lmargin={2.5cm},rmargin={2.5cm},tmargin={3cm},bmargin = {3cm}]{geometry}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{amsmath}
\usepackage{ragged2e}
\usepackage{rotating}
\usepackage{lscape}
\usepackage{setspace}
\usepackage{tabularx}
\usepackage{multirow}
\usepackage{booktabs}
\usepackage{array}
\usepackage{siunitx}
\sisetup{input-symbols = ()}

\begin{document}
\begin{sidewaystable}
    \centering
    \caption{XYZ}
    \def\sym#1{\ifmmode^{#1}\else\(^{#1}\)\fi}
\sisetup{table-space-text-post = \sym{***}}
\begin{tabular}{l*{9}{S[table-align-text-post=false]}}\\
\hline
      & 2007 & 2008 & 2009 & 2010 & 2011 & 2012 & 2013 & 2014 \\
      \hline
a & -25,51\sym{***} & -17,14\sym{***} & -26,95\sym{***} & -17,92\sym{***} & -25,00\sym{***} & -14,19\sym{***} & -65,98\sym{***} & -89,15\sym{***} \\
b & -19,13\sym{***} &  -24,98\sym{***} &  -90,50\sym{***} & -55,70\sym{***} &  {-66,07}\sym{***} & -54,80\sym{***} & -76,43 & -14,00\sym{*} \\
c &  {n.a.} &  -49,89 &  130,72 & -120,86 &  59,63 & -29,37 & 12,85 & -34,76 \\
d &  -21,79\sym{***} &  -27,71\sym{***} &  -79,04\sym{***} & -78,42\sym{***} &  -28,10\sym{***} & -55,47\sym{***} & -76,03 & -78,07 \\
e & {n.a.} &  -34,44\sym{***} &  -36,19\sym{**} & -45,28\sym{***} &  {-19,18} & -12,38\sym{***} & -15,67   & -57,98 \\
\bottomrule
\end{tabular}%
    \label{tab:XYZ}
\end{sidewaystable}

\end{document}

von Rolli » So 21. Jan 2018, 14:26

... das compiliert leider immer noch nicht. Du hast die Tabelle mit 4 Spalten angelegt, willst dann aber 9 Spalten dargestellt bekommen ???

Gruß vom Rolli

aktualisierter Code

von Hanni » So 21. Jan 2018, 14:09

Lieber Rollli,

vielen Dank für deinen Kommentar. Leider kompiliert im Overleaf der Code nicht, welcher bei mir in Sharelatex funktioniert. Mir ist auch nicht aufgefallen, dass ein Paket fehlt. Was bisher funktioniert hat ist das:
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[a4paper,lmargin={2.5cm},rmargin={2.5cm},tmargin={3cm},bmargin = {3cm}]{geometry}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{amsmath}
\usepackage{ragged2e}
\usepackage{rotating}
\usepackage{lscape}
\usepackage{setspace}
\usepackage{tabularx}
\usepackage{multirow}
\usepackage{booktabs}
\usepackage{array}
\usepackage{siunitx}
\sisetup{input-symbols = ()}

\begin{document}
\begin{sidewaystable}
    \centering
    \caption{XYZ}
    \def\sym#1{\ifmmode^{#1}\else\(^{#1}\)\fi}
\sisetup{table-space-text-post = \sym{***}}
\begin{tabular}{l*{4}{S[table-align-text-post=false]}}\\
\hline
      & 2007 & 2008 & 2009 & 2010 & 2011 & 2012 & 2013 & 2014 \\
      \hline
a & -25,51\sym{***} & -17,14\sym{***} & -26,95\sym{***} & -17,92\sym{***} & -25,00\sym{***} & -14,19\sym{***} & -65,98\sym{***} & -89,15\sym{***} \\
b & -19,13\sym{***} &  -24,98\sym{***} &  -90,50\sym{***} & -55,70\sym{***} &  {-66,07}\sym{***} & -54,80\sym{***} & -76,43 & -14,00\sym{*} \\
c &  {n.a.} &  -49,89 &  130,72 & -120,86 &  59,63 & -29,37 & 12,85 & -34,76 \\
d &  -21,79\sym{***} &  -27,71\sym{***} &  -79,04\sym{***} & -78,42\sym{***} &  -28,10\sym{***} & -55,47\sym{***} & -76,03 & -78,07 \\
e & {n.a.} &  -34,44\sym{***} &  -36,19\sym{**} & -45,28\sym{***} &  {-19,18} & -12,38\sym{***} & -15,67   & -57,98 \\
\bottomrule
\end{tabular}%
    \label{tab:XYZ}
\end{sidewaystable}

\end{document}
Dort kann ich aber keine feste Spaltenbreite festlegen.

Was ich stattdessen dann versucht habe ist erst mit {L{p{1,9cm}S[table-column-width=1,9cm]} als Tabular-Argument die Breite für jede Spalte festzuschreiben. Das ging auch, nur war dann der Inhalt nicht mehr ausgerichtet.

Ich hoffe ihr könnt meiner Darstellung einigermaßen folgen.

Viele Grüße

Hanni

von Gast » So 21. Jan 2018, 13:43

siunitx kennt übrigens auch eine Option, um die Breite von S-Spalten festzulegen. Siehe dazu das [d]siunitx[/d]-Manual.

von Rolli » So 21. Jan 2018, 13:17

Liebe(r) Hanni,

Dein Minimalbeispiel compiliert nicht.

Clicke mal auf "Öffne im Overleaf" und schaue Dir alle Fehler an (es sind mehrere). So muss man raten, was Du meinst, und sieht Dein Problem nicht.

Also bitte: Dein Minimalbeispiel so ändern, dass es a) fehlerfrei compiliert und man b) Dein Problem erkennen kann.

Gruß vom Rolli

Siuntix: Ausrichtung am Komma und feste Spaltenbreite

von Hanni » So 21. Jan 2018, 12:42

Liebes Forum,

ich versuche meine Tabellen möglichst gleich breit zu gestalten und trotzdem eine Ausrichtung am Koma hinzubekommen. Wenn ich die Spaltenbreite vorgebe, gelingt mir aber nicht mehr die Ausrichtung. Was mache ich falsch? Ich habe zusätzlich unterschiedliche Anzahlen von Signifikanzsternen hinter den Werten und bin mir nicht sicher wie ich das definieren soll. Soweit ich weiß, kann ich ja eine verschieden Anzahl an Stellen vorgeben, richtig?

Vielen Dank!

Hanni

Hier ein Minimalbeispiel:
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[a4paper,lmargin={2.5cm},rmargin={2.5cm},tmargin={3cm},bmargin = {3cm}]{geometry}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{amsmath}
\usepackage{ragged2e}
\usepackage{rotating}}
\usepackage{lscape}
\usepackage{tabularx}
\usepackage{multirow}
\usepackage{booktabs}
\usepackage{array}
\usepackage{siunitx}
\sisetup{input-symbols = ()}

\begin{document}
\begin{sidewaystable}
    \centering
    \caption{XYZ}
    \def\sym#1{\ifmmode^{#1}\else\(^{#1}\)\fi}
\sisetup{table-space-text-post = \sym{***}}
\begin{tabular}{L{5cm}L{1,9cm}L{1,9cm}L{1,9cm}L{1,9cm}L{1,9cm}L{1,9cm}L{1,9cm}L{1,9cm} SS[table-format=4.2---]SSSSSSSS}
      & {2007} & {2008} & {2009} & {2010} & {2011} & {2012} & {2013} & {2014} \\
\hline
Ergebnis &       &       &       &       &       &       &       &  \\
a & -25,51\sym{***} & -17,14\sym{***} & -26,95\sym{***} & -17,92\sym{***} & -25,00\sym{***} & -14,19\sym{***} & -65,98\sym{***} & -89,15\sym{***} \\
b & -19,13\sym{***} &  -24,98\sym{***} &  -90,50\sym{***} & -55,70\sym{***} &  {-66,07}\sym{***} & -54,80\sym{***} & -76,43 & -14,00\sym{*} \\
c &  {n.a.} &  -49,89 &  130,72 & -120,86 &  59,63 & -29,37 & 12,85 & -34,76 \\
d &  -21,79\sym{***} &  -27,71\sym{***} &  -79,04\sym{***} & -78,42\sym{***} &  -28,10\sym{***} & -55,47\sym{***} & -76,03 & -78,07 \\
e & {n.a.} &  -34,44\sym{***} &  -36,19\sym{**} & -45,28\sym{***} &  {-19,18} & -12,38\sym{***} & -15,67   & -57,98 \\
\bottomrule
\end{tabular}%
    \label{tab:XYZ}
\end{sidewaystable}

\end{document}

Nach oben