Anzeige:
Ergebnis 1 bis 8 von 8

Thema: Tabelle einfärben bei Multirow und Multicolumn

  1. #1
    Registrierter Benutzer
    Registriert seit
    09.08.2006
    Beiträge
    20

    Tabelle einfärben bei Multirow und Multicolumn

    Hallo,

    habe folgendes Beispiel:

    Code:
    \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?
    Geändert von Notwist (07-11-2006 um 20:08 Uhr)

  2. #2
    Registrierter Benutzer
    Registriert seit
    09.07.2004
    Beiträge
    2.365
    ... steht in multirow.sty, ca. Z.130ff.
    Ansonsten ist multirow keine gute Lösung, Tabelle in Tabelle meistens besser ...

    edico

  3. #3
    Registrierter Benutzer
    Registriert seit
    09.08.2006
    Beiträge
    20
    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.

  4. #4
    Registrierter Benutzer
    Registriert seit
    09.07.2004
    Beiträge
    2.365
    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
    Geändert von edico (07-11-2006 um 22:03 Uhr)

  5. #5
    Registrierter Benutzer
    Registriert seit
    09.08.2006
    Beiträge
    20
    Zitat Zitat von edico Beitrag anzeigen
    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:

    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!
    Geändert von Notwist (08-11-2006 um 08:51 Uhr)

  6. #6
    Registrierter Benutzer
    Registriert seit
    09.07.2004
    Beiträge
    2.365
    .. 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

  7. #7
    Registrierter Benutzer
    Registriert seit
    09.08.2006
    Beiträge
    20
    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.
    Geändert von Notwist (08-11-2006 um 13:53 Uhr)

  8. #8
    Registrierter Benutzer
    Registriert seit
    09.08.2006
    Beiträge
    20
    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:

    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
    Geändert von Notwist (08-11-2006 um 17:31 Uhr)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •