Problem mit \multirow und dcolumn

Tabellen und Grafiken erstellen und anordnen


Benutzeravatar
josi85
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Di 2. Dez 2008, 20:35
Wohnort: Pegau

Problem mit \multirow und dcolumn

Beitrag von josi85 »

Hallo,

ich schreibe gerade an meiner Studienarbeit mit Latex und wollte eine Tabelle einfügen. Darin wollte ich mit dcolumn die Zahlen in den Spalten 2, 3, 5 und 6 alle am Komma ausrichten. Klappt soweit ganz gut. Aber in der letzten Zeile gibt es da Schwierigkeiten. Wenn ich mit \multirow die Zeilen verbinde, haut das mit der Ausrichtung nicht mehr hin.
\documentclass[10pt, a4paper]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[macce]{inputenc}
\usepackage{multirow, booktabs, dcolumn}

\begin{document}

\begin{table}[htb]
\caption{Ergebnisse aus dem 1. Versuch}
\begin{tabular}{p{1.8cm} D{,}{,}{2.2} D{,}{,}{2.2} | p{1.8cm} D{,}{,}{2.2} D{,}{,}{2.2}}
\toprule
\multicolumn{1}{p{1.8cm}}{Einzel\-versuch} & \multicolumn{1}{c}{c in kNm} & \multicolumn{1}{c}{b in °} & \multicolumn{1}{|p{1.8cm}}{Mehr\-stufen\-versuch} & \multicolumn{1}{c}{c in kNm} & \multicolumn{1}{c}{b in °}\\
\midrule
E1.1 & 12,1 & 32,5 & M1.1 & 5,3 & 34,0\\
E1.2 & 80,2 & 27,7 & M1.2 & 10,6 & 34,0\\
\midrule
\multirow{2}{1.8cm}{E2} & \multirow{2}*{8,1} & \multirow{2}*{40,0} & M2.1 & 16,9 & 32,2\\
& & & M2.2 & 0,0 & 36,0\\
\bottomrule
\end{tabular}
\end{table}

\end{document}
Ohne das \multirow sind die Zahlen zwar noch nach Komma ausgerichtet, aber halt zu weit oben, das sieht halt nicht sehr schön aus.

Ich habe es auch schon mit einer Wertangabe statt dem Sternversucht,
\multirow{2}{1.8cm}{E2} & \multirow{2}{0.2cm}{8,1} & \multirow{2}{0.3cm}{40,0} & M2.1 & 16,9 & 32,2\\
& & & M2.2 & 0,0 & 36,0\\
aber hier muss ich dann mit den Werten rumexperimentieren, was ja nicht sehr professionell, außerdem sehr aufwendig und auch nicht exakt mit den oberen Zeilen ausrichtet ist.

Gibt es da irgendeine Möglichkeit, es hinzubekommen, dass sowohl die Zeilen verbunden sind und die Zahlen trotzdem ausgerichtet bleiben?

DonCube
Forum-Guru
Forum-Guru
Beiträge: 291
Registriert: So 29. Jun 2008, 21:17
Wohnort: Bocholt

Beitrag von DonCube »

Hallo Josi,
ich habe mir dein Problem heute shcon angeschaut und konnte es auch nachvollziehen. Leider bin ich noch zu keiner Lösung gekommen. Hatte aber auch nur ne halbe Stunde Zeit. Ist eigentlich ein einfaches, einleuchtendes Problem. Aber so ad-hoc fällt mir da nichts ein. Vielleicht können die Paket-Spezis weiterhelfen.

Grüße
DonCube
Schau mal hier rein goLaTeX-Wiki, und gaaaanz wichtig Minimalbeispiel

DonCube
Forum-Guru
Forum-Guru
Beiträge: 291
Registriert: So 29. Jun 2008, 21:17
Wohnort: Bocholt

Beitrag von DonCube »

Hallo zusammen,
noch keiner eine Lösung gefunden. Würde mich persönlich auch interessieren, da ich nämlich sehr frustiert bin keine Lösung gefunden zu haben. gggrrrrrrr :evil: :evil:
Schau mal hier rein goLaTeX-Wiki, und gaaaanz wichtig Minimalbeispiel

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag von KOMA »

Da ich selbst multirow nicht verwende und nach über zwei Stunden golatex langsam die Lust und die Zeit ausgeht, keine Lösung, sondern nur einen Hinweis: D-Spalten sind in Wirklichkeit nicht eine, sondern zwei Spalten. In der Anleitung zu dcoumn stehen dazu AFAIR Hinweise (vermutlich bezüglich \multicolumn). Man bräuchte also tatsächlich eine Anweisung, die nicht nur mehreren Zeilen, sondern auch mehrere Spalten zusammenfasst. Eventuell könnte man mit einer tabular innerhalb einer \multicolumn-Anweisung ggf. zusammen mit \raisebox etwas basteln.

Alternativ könnte man die Zahlen statt mit D-Spalten mit einer normalen Spalte und darin über eine Anweisung formatieren. Etwas in der Art (ungetestet):
\newlength{\floatnumfirst}
\newlength{\floatnumlast}
\settowidth{\floatnumfirst}{000}% drei Stellen vor dem Komma
\settowidth{\floatnumlast}{00}% zwei Stellen nach dem Komma
\newcommand*{\floatnum}[1]{\expandafter\xfloatnum#1..//}
\newcommand*{\xfloatnum}{}
\def\xfloatnum#1.#2.#3//{\makebox[\floatnumfirst][r]{#1}.\makebox[\floatnumlast][l]{#2}}
...
\floatnum{12.4}%
Das multirow-Paket ist nach meiner Erfahrung ein gute Idee, aber es hat Grenzen.

Antworten