PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tabelle einfärben bei Multirow und Multicolumn



Notwist
07-11-2006, 20:03
Hallo,

habe folgendes Beispiel:



\documentclass[a4paper,12pt]{scrartcl}

\usepackage[T1]{fontenc}
\usepackage{colortbl}
\usepackage{capt-of}
\usepackage{multirow}
\definecolor{hellgrau}{gray}{0.9}
\begin{document}

\begin{minipage}[c]{\textwidth}
\begin{tabular}{|c|c|c|c|}
\hline
% \rowcolor{hellgrau}
&& \multicolumn{2}{|>{\columncolor{hellgrau}}c|}{Erfüllungsgrad}\\
\cline{3-4}
% \rowcolor{hellgrau}
\multirow{-2}*{Soll-Kriterium} & \multirow{-2}*{Gewichtung } & LabVIEW & SPS \\\hline
Preis & 5 &&\\ \hline
Wartbarkeit & 4&& \\ \hline
Erweiterbarkeit & 3&&\\ \hline
Betriebssicherheit & 3&&\\ \hline
Ersatzteilhaltung & 2&&\\ \hline
Umsetzungsaufwand & 1&&\\ \hline
\end{tabular}
\end{minipage}

\end{document}


Wenn ich den Kopf einfärben will, klappt das, wenn ich die \rowcolor-Befehle rein nehme, dann funktioniert aber der \cline Befehl nicht mehr und scheint dann überschrieben zu werden.
Ähnliches passierte, wenn die den Befehl \multirow{+2} benutzt habe, das wurde aber bei der Dokumentation beschrieben und konnte über den Umweg über \multirow{-2} umgangen werden. Sonst wurde die Schrift vom Grau verdeckt. Außerdem erscheinen beim Ausdrucken in den Tabellen dickere vertikale Tabellenlinien und andere scheinen dünner zu sein.

Hat jemand eine Idee?

edico
07-11-2006, 21:06
... steht in multirow.sty, ca. Z.130ff.
Ansonsten ist multirow keine gute Lösung, Tabelle in Tabelle meistens besser ...

edico

Notwist
07-11-2006, 21:25
Das habe ich ja schon gelesen und mit dem Befehl

\multirow{-2}*{Soll-Kriterium}

berücksichtigt. Da steht aber nichts zu \rowcolor.

Hast Du ein Beispiel für Tabellen in Tabellen?

Habe ein bisschen ausprobiert, aber irgendwie hebt sich die Tabelle in der Tabelle immer ab und es sieht nicht so gut aus.

Habe das Beispiel oben jetzt auch endlich als Minimalbeispiel gepostet, kannst es Dir ja mal angucken.

edico
07-11-2006, 23:00
oooh, entschuldige ... hab nicht (richtig) gelesen ...
pack in die Präambel:
\setlength{\arrayrulewidth}{1pt}

edico

P.S. .. und (wenn du dann unbedingt vertikale Striche für deine Kästchenbox brauchst) verändere:
...
&& \multicolumn{2}{>{\columncolor{hellgrau}}c|}{Erfllungsgrad}\\
...
da sonst Doppelstrich

Notwist
08-11-2006, 09:46
pack in die Präambel:
\setlength{\arrayrulewidth}{1pt}

edico

P.S. .. und (wenn du dann unbedingt vertikale Striche für deine Kästchenbox brauchst) verändere:
...
&& \multicolumn{2}{>{\columncolor{hellgrau}}c|}{Erfllungsgrad}\\
...
da sonst Doppelstrich

Also der Tipp mit der Präambel macht nur meine Tabellenstriche dicker. Der Tipp mit dem Weglassen von "|" ist aber klasse, das hatte ich immer übersehen, dass das einfach zwei "|" in der Tabelle sind. Habe mein Minimalbeispiel jetzt mal mit einer Tabelle in Tabelle abgeändert, habe aber das Problem, dass in der letzten Zelle natürlich jetzt ein Abstand zur Zelle der Haupttabelle ist. Hier der Code:



\documentclass[a4paper,12pt]{scrartcl}

\usepackage[T1]{fontenc}
\usepackage{colortbl}
\usepackage{capt-of}
\usepackage{multirow}
\definecolor{hellgrau}{gray}{0.9}

\begin{minipage}[c]{\textwidth}
\begin{tabular}{|c|c|c|}
\hline
\rowcolor{hellgrau}
Sollkriterium & Gewichtung &
\begin{tabular}{c|c}
\multicolumn{2}{>{\columncolor{hellgrau}}c}{Erfüllungsgrad}\\
\cline{1-2}
LabVIEW & SPS \\
\end{tabular} \\
\hline
Preis & 5& \begin{tabular}{c|c}&\end{tabular}\\ \hline
Wartbarkeit & 4 &\\ \hline
Erweiterbarkeit & 3 &\\ \hline
Betriebssicherheit & 3 &\\ \hline
Ersatzteilhaltung & 2 &\\ \hline
Umsetzungsaufwand & 1 &\\ \hline
\end{tabular}
\end{minipage}
\end{document}


Jetzt funktioniert der \rowcolor-Befehl auch sehr gut, nur eben das letzte Problem. Ich werd nochmal schauen, wie man den Abstand bestimmt, muss ja irgendwo stehen.

Ach, ich sehe gerade. Die Zellen darunter sind noch nicht geteilt, das muss man ja auch noch machen. Muss man da jetzt in jeder neuen Zeile eine Table in Table machen? Ist dann doch sehr viel Aufwand, oder? Außerdem sind die unteren Zellen dann nicht richtig an der Kopfzelle ausgerichtet. Habe das nochmal im Mimimalbeispiel ergänzt, wie es dann aussieht!

edico
08-11-2006, 11:59
.. naja ... etwa so:
\documentclass[a4paper,12pt]{scrartcl}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{charter}
\usepackage{tabularx,colortbl}
\usepackage{capt-of}
\usepackage{multirow}
\definecolor{hellgrau}{gray}{0.9}

\begin{document}
%\begin{minipage}[c]{\textwidth}
\begin{tabular}{|l|c|c|}
\hline
\rowcolor{hellgrau}
Sollkriterium & Gewichtung &
% \begin{tabular}{c|c}
\begin{tabularx}{.3\linewidth}{X|X}
\multicolumn{2}{>{\columncolor{hellgrau}}c}{Erfüllungsgrad}\\
\cline{1-2}
LabVIEW & SPS \\
\end{tabularx} \\
%\end{tabular} \\
\hline
Preis & 5 & \begin{tabular}{c|c}&\end{tabular}\\ \hline
Wartbarkeit & 4 & \begin{tabular}{c|c}&\end{tabular}\\ \hline
Erweiterbarkeit & 3 & \begin{tabular}{c|c}&\end{tabular}\\ \hline
Betriebssicherheit& 3 & \begin{tabular}{c|c}&\end{tabular}\\ \hline
Ersatzteilhaltung & 2 & \begin{tabular}{c|c}&\end{tabular}\\ \hline
Umsetzungsaufwand & 1 & \begin{tabular}{c|c}&\end{tabular}\\ \hline
\end{tabular}
%\end{minipage}
\end{document}

edico

Notwist
08-11-2006, 14:12
Das ist schon fast perfekt. Gibt es jetzt noch die Möglichkeit, dass der \cline-Befehl die komplette Zelle durchzieht? Da scheint der Abstand der Tabelle zur Tabelle noch im Weg zu stehen. Sieht ja ein bisschen komisch aus.

Warum werden eigentlich jetzt auch die darunterliegenden Zellen wie die Kopfzelle getrennt? Liegt das nur an der tabularx Tabelle? Schließlich sind die anderen Tabelle vom Format Tabular?

Die Doku erklärt mir das nicht so richtig bzw. ich verstehe es nicht. Aber egal, Hauptsache es klappt.

Noch was, wie kann man das SPS zB noch zentrieren? Es ist ja als Spalte mit X deklariert, aber tabularx scheint keine Zentrierung zu haben.

Notwist
08-11-2006, 17:26
Eine gute Seele hat mir den finalen Tipp gegeben. So funktioniert es. Ich verstehe zwar nicht alles, aber es klappt. Super. Danke auch Dir nochmal EDICO, dass Du Dir soviel Mühe gemacht hast. Hier also noch der Code:



\documentclass{article}
%\usepackage[applemac]{inputenc}
\usepackage{colortbl}
\usepackage{calc}
\begin{document}


\begin{tabular}{%
|m{0.18\textwidth}%
|>{\centering}m{0.18\textwidth}%
|>{\centering}p{0.1\textwidth}%
|>{\centering\columncolor[gray]{.8}}p{0.1\textwidth}%
|>{\centering}p{0.1\textwidth}%
|>{\centering\columncolor[gray]{.8}\arraybackslash}p{0.1\textwidth}|}
\hline
%
%
\rowcolor[gray]{.8}
Sollkriterium & Gewichtung & \multicolumn{4}{@{}c@{}|}{%
\begin{tabular}{p{0.2\linewidth+2\tabcolsep}|p{0.2 \linewidth+2\tabcolsep}}
\multicolumn{2}{c}{\cellcolor[gray]{.8}Erfüllungsgrad} \\ \hline
\rowcolor[gray]{.8}
\centering LabVIEW & \centering SPS
\end{tabular}} \\ \hline
%
%
a & b & c & d & e & f\\
a & b & c & d & e & f\\
a & b & c & d & e & f\\
a & b & c & d & e & f\\ \hline
\end{tabular}

\end{document}


Gruß, Notwist