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 beantwortet 22 Mär '16, 08:23 saputello |
\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.15cm
verhagelt es zwar den ganzen Inhalt (weil breiter als 1.15cm), aber dafür stimmt die Breite immer.Inwiefern ist
\multicolumn
für Dich zwingend notwendig? Lässt man das weg, dann erhält man nämlich genau dasselbe Ergebnis, wie wenn man bei jedem\multicolumn
die Spaltendeklaration aus dem Kopf wiederholt. Das\multicolumn
nützt dann also gar nicht. Deshalb lässt man es besser weg. Weitere Anmerkungen in meiner Antwort.danke für diesen support