|
Hallo, Einleitung:
Ich erstelle automatisch Tabellen mit Hilfe von c#.
Die Daten lese ich aus einer Xml-Datei.
Da meine Tabellen automatisch erstellt werden (in 3er Blöcken / Spalten) musste ich die Tabelle genau so programmieren. Multicolumn ist für mich zwingend notwendig! Jetzt zu meiner Frage: Warum ändert sich die Spaltenbreite je nach Inhalt? Kann ich das mit irgendeinen Befehl sperren, ohne die Grundstruktur der Tabelle zu ändern? Danke. Open in Online-Editor
\documentclass[paper=landscape]{scrartcl} \usepackage{lscape} \usepackage{booktabs} \usepackage[copy-decimal-marker]{siunitx} \newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}} \begin{document} \begin{tabular}{L{6.6cm} L{1.2 cm} S[table-column-width=1.15cm]|S[table-column-width=1.15cm]|S[table-column-width=1.15cm]} \hline Motel & $\sigma$ & \multicolumn{1}{|S|}{4.96665663}& 135.15 & 30.29 \\ \hline Motel & $\sigma$ & \multicolumn{1}{|S|}{.53} & -147.73 & -25.44 \\ \hline Motel & $\sigma$ & \multicolumn{1}{|S|}{-9.27} & -0.01 & 1.28 \\ \end{tabular} \bigskip \begin{tabular}{L{6.6cm} L{1.2 cm} S[table-column-width=1.15cm]|S[table-column-width=1.15cm]|S[table-column-width=1.15cm]} \hline Haus & $\sigma$ & \multicolumn{1}{|S|}{4}& 135.15 & 30.29 \\ \hline Passwort & $\sigma$ & \multicolumn{1}{|S|}{1} & -147.73 & -25.44 \\ \hline Motel & $\sigma$ & \multicolumn{1}{|S|}{7} & -0.01 & 1.28 \\ \end{tabular} \end{document} |
|
Die Tabellen sind mit einer expliziten Spaltenbreite von 1,15 cm für die Zahlenspalten nicht vernünftig darstellbar, da beispielsweise die Zahl Es gibt nun mehrere Möglichkeiten, das Problem zu lösen. Zunächst einmal ist es sinnvoll, die ganzen Die erste Möglichkeit, feste Spaltenbreiten über mehrere Tabellen zu erhalten ist, das Zahlenformat so zu wählen, dass es für alle Einträge passt: Open in Online-Editor
\documentclass[paper=landscape,DIV=20]{scrartcl} \usepackage[copy-decimal-marker]{siunitx} \newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}} \begin{document} \begin{tabular}{L{6.6cm}L{1.2cm} S[table-format=2.8]|S[table-format=4.2]|S[table-format=3.2]} \hline motel & $\sigma$ & 4.96665663 & 135.15 & 30.29 \\ \hline motel & $\sigma$ & .53 & -147.73 & -25.44 \\ \hline motel & $\sigma$ & -9.27 & -0.01 & 1.28 \\ \end{tabular} \bigskip \begin{tabular}{L{6.6cm}L{1.2cm} S[table-format=2.8]|S[table-format=4.2]|S[table-format=3.2]} \hline Haus & $\sigma$ & 4 & 135.15 & 30.29 \\ \hline Passwort & $\sigma$ & 1 & -147.73 & -25.44 \\ \hline Motel & $\sigma$ & 7 & -0.01 & 1.28 \\ \end{tabular} \end{document}
Wie man sieht, ist hier Die zweite Möglichkeit besteht darin, Open in Online-Editor
\documentclass[paper=landscape,DIV=20]{scrartcl} \usepackage[copy-decimal-marker]{siunitx} \newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}} \begin{document} \sisetup{round-mode=places,round-precision=2} \begin{tabular}{L{6.6cm}L{1.2cm} S[table-column-width=1.15cm]|S[table-column-width=1.15cm]|S[table-column-width=1.15cm]} \hline motel & $\sigma$ & 4.96665663 & 135.15 & 30.29 \\ \hline motel & $\sigma$ & .53 & -147.73 & -25.44 \\ \hline motel & $\sigma$ & -9.27 & -0.01 & 1.28 \\ \end{tabular} \bigskip \begin{tabular}{L{6.6cm}L{1.2cm} S[table-column-width=1.15cm]|S[table-column-width=1.15cm]|S[table-column-width=1.15cm]} \hline Haus & $\sigma$ & 4 & 135.15 & 30.29 \\ \hline Passwort & $\sigma$ & 1 & -147.73 & -25.44 \\ \hline Motel & $\sigma$ & 7 & -0.01 & 1.28 \\ \end{tabular} \end{document} Da aber bereits Zahlen wie
Besteht man auf die Verwendung von Um die Ausrichtung zu korrigieren, müsste man mit breiteren Spalten arbeiten: Open in Online-Editor
\documentclass[paper=landscape,DIV=20]{scrartcl} \usepackage[copy-decimal-marker]{siunitx} \newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}} \begin{document} \sisetup{round-mode=places,round-precision=2}%,table-format=4.2} \begin{tabular}{L{6.6cm}L{1.2cm} S[table-column-width=1.75cm]|S[table-column-width=1.75cm]|S[table-column-width=1.75cm]} \hline motel & $\sigma$ & 4.96665663 & 135.15 & 30.29 \\ \hline motel & $\sigma$ & .53 & -147.73 & -25.44 \\ \hline motel & $\sigma$ & -9.27 & -0.01 & 1.28 \\ \end{tabular} \bigskip \begin{tabular}{L{6.6cm}L{1.2cm} S[table-column-width=1.75cm]|S[table-column-width=1.75cm]|S[table-column-width=1.75cm]} \hline Haus & $\sigma$ & 4 & 135.15 & 30.29 \\ \hline Passwort & $\sigma$ & 1 & -147.73 & -25.44 \\ \hline Motel & $\sigma$ & 7 & -0.01 & 1.28 \\ \end{tabular} \end{document}
Alternativ kann man auch hier ein passendes Open in Online-Editor
\documentclass[paper=landscape,DIV=20]{scrartcl} \usepackage[copy-decimal-marker]{siunitx} \newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}} \begin{document} \sisetup{round-mode=places,round-precision=2,table-format=4.2} \begin{tabular}{L{6.6cm}L{1.2cm}S|S|S} \hline motel & $\sigma$ & 4.96665663 & 135.15 & 30.29 \\ \hline motel & $\sigma$ & .53 & -147.73 & -25.44 \\ \hline motel & $\sigma$ & -9.27 & -0.01 & 1.28 \\ \end{tabular} \bigskip \begin{tabular}{L{6.6cm}L{1.2cm}S|S|S} \hline Haus & $\sigma$ & 4 & 135.15 & 30.29 \\ \hline Passwort & $\sigma$ & 1 & -147.73 & -25.44 \\ \hline Motel & $\sigma$ & 7 & -0.01 & 1.28 \\ \end{tabular} \end{document}
Da in diesem Beispiel Rundung und Zahlenformat mit |




\multicolumn{1}{|S[table-column-width=1.15cm]|}{4.96665663}. Du musst auch hier die gewünschte Breite eingeben, die aus dem Header wird einfach ignoriert. Bei der Breite von1.15cmverhagelt es zwar den ganzen Inhalt (weil breiter als 1.15cm), aber dafür stimmt die Breite immer.Inwiefern ist
\multicolumnfür Dich zwingend notwendig? Lässt man das weg, dann erhält man nämlich genau dasselbe Ergebnis, wie wenn man bei jedem\multicolumndie Spaltendeklaration aus dem Kopf wiederholt. Das\multicolumnnützt dann also gar nicht. Deshalb lässt man es besser weg. Weitere Anmerkungen in meiner Antwort.danke für diesen support