multicolumn und unsymmetrischer Spalten-Abstand

Tabellen und Grafiken erstellen und anordnen


Roman_95
Forum-Anfänger
Forum-Anfänger
Beiträge: 40
Registriert: So 5. Aug 2018, 02:07

multicolumn und unsymmetrischer Spalten-Abstand

Beitrag von Roman_95 »

Hallo zusammen,

ich möchte gerne eine Tabelle setzen, in der für zwei Lösungansätze jeweils 3 Konzepte verglichen werden, in Form einer Punkte-Bewertung. Zusätzlich wird eine Ideal-Bewertung angegeben. Zum Vermeiden der Verwendung von vertikalen Linien möchte ich die entsprechenden Blöcke gerne mit etwas größerem Spaltenabstand setzten. Das klappt alles, auch die Anpassung der Trimmung von \cmidrule.

Letzeres erwähne ich aufgrund des Verhaltens von Latex, diese sonst bis an die nächste Spalte zu ziehen. Das erkläre ich mir mit dem Verhalten, dass bei Verwendung von @{} das Einfügen von \tabcolsep unterdrückt wird und das Argument von @{} an den natürlichen Inhalt der Spalte angehangen wird. Dann folgt die nächste Spalte, vor deren Inhalt wieder \tabcolsep eingefügt wird. Habe ich das richtig verstanden?

Hieraus resultiert mein Problem: Über den entsprechenden Blöcken möchte ich zentriert eine Benennung, FS1 (Funktionsstruktur 1 etc.), setzen. Da ich aber @{} nur auf EINER Seite der entsprechenden Blöcke verwende, sind die Benennungen verschoben.
Ich habe schon ein paar Sachen versucht, das war aber offen gesagt Gemurkse mit table in einer \multicolumn.

Wie kann ich das ganze bewerkstelligen? Kann ich \multicolumn sagen den selbst eingefügten Spaltenraum wieder zu entfernen und nicht zu berücksichtigen? Oder gibt es einen besseren Weg die Gruppierung zu erreichen? Einfügen des halben Abstandes vor und hinter den Blöcken hatte auch nicht den gewünschten Effekt....

Im folgenden ein MM:
\documentclass[12pt]{article}
\usepackage{tabularx,booktabs,calc}
\usepackage{showframe}

\begin{document}

\newlength{\colgroup}   % Länge, um Spalten zu Gruppieren (höherer Abstand zwischen den Blöcken)
\setlength\colgroup{3\tabcolsep}
\newlength{\cgcmidrule}      % Länge zur Korrektur der Trimmung von \cmidrule
\setlength\cgcmidrule{\cmidrulekern+\colgroup}

\begin{table}

\small
   \begin{tabularx}{\textwidth}{p{2em} >{\raggedright\arraybackslash}X  c c c @{\hspace{\colgroup}} c c c @{\hspace{\colgroup}} c}
\toprule
      \# & Kriterium & \multicolumn{7}{c}{Punktzahl} \\ \cmidrule{3-9}
      &&\multicolumn{3}{c}{FS1} &\multicolumn{3}{c}{FS2}& \\  \cmidrule(lr){3-5} \cmidrule(lr{\cgcmidrule}){6-8}
      & \raggedleft Konzept:&  1 &  2 &  3 & 1 &  2 &  3 & I  \tabularnewline \midrule
      1 & Anforderung 1 & 1 & 3 & 4 & 3 & 2 & 3 & 4
    \end{tabularx}
\end{table}

\end{document}
Im MM habe ich die Koorektur der Breite der \cmidrule nur über dem zweiten Block angewendet, um den Unterschied zu zeigen.

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4266
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

Wenn ich dein Problem verstanden habe, dann suchst du bei FS1 \multicolumn{3}{c@{\hspace{\colgroup}}}{FS1} und bei FS2 \multicolumn{3}{@{}c@{\hspace{\colgroup}}}{FS2}.

Ich würde aber eher empfehlen, zusätzliche leere dummy Spalten zu verwenden, und so die Unsymmetrie bei den \multicolumn-Befehlen vermeiden. Da kann man sich ganz schön das Hirn verknoten.

Roman_95
Forum-Anfänger
Forum-Anfänger
Beiträge: 40
Registriert: So 5. Aug 2018, 02:07

Beitrag von Roman_95 »

Hallo Ulrike,

ja genau das war es. Hat mir sehr geholfen. Auf die Idee mit den Dummyspalten bin ich natürlich nicht gekommen - bei Microsoft Office hätte man das wohl direkt so versucht :D

Danke und VG, Roman

Antworten