Seite 1 von 1

multirow und colortbl vs. vertikale Zellenzentrierung

Verfasst: Do 23. Jun 2011, 11:44
von AspirinJunkie
Hallo

Folgendes Problem besteht bei mir:
Ich möchte die erste Spalte einer Tabelle mit einer Farbe belegen.
Gleichzeitig handelt es sich aber um eine MultiRow-Umgebung bei der die 1. einzelne Spalte vertikal zentriert sein soll.
Das Problem jedoch: alles unterhalb der 1. Zeile der 1. Zelle wird abgeschnitten.

Ich denke am deutlichsten wird dies durch folgendes Minimalbeispiel:
\documentclass{scrartcl}

\usepackage{colortbl}	
\usepackage{multirow}

\begin{document}

\begin{tabular}{|>{\columncolor[rgb]{0.95,0.95,0.95}}m{0.1\textwidth}|l|}
	\hline
	Test A & BlaBla 1 \\
	\hline
	\multirow{2}{*}{Test B} & BlaBla 2 \\
		 				     	& BlaBla 3 \\
	\hline 
	\multirow{3}{*}{Test C} & BlaBla 4 \\
			 			     	& BlaBla 5 \\
			 			     	& BlaBla 6 \\
	\hline
\end{tabular}
		
\end{document}[/quote]
Wie könnte ich dies am einfachsten beheben?

Besten Dank im Voraus

Verfasst: Do 23. Jun 2011, 11:55
von AspirinJunkie
Ok sorry für den Doppelpost aber ich hab soeben selbst die Lösung gefunden.
Die multirow muss in der letzten Spalte beginnen und mit "-" entsprechend nach oben versetzt werden.

Falls also mal einer das selbe Problem hat:
\documentclass{scrartcl}

\usepackage{colortbl}	
\usepackage{multirow}

\begin{document}

\begin{tabular}{|>{\columncolor[rgb]{0.95,0.95,0.95}}m{0.1\textwidth}|l|}
	\hline
	Test A & BlaBla 1 \\
	\hline
							      	& BlaBla 2 \\
	\multirow{-2}{*}{Test B}	& BlaBla 3 \\
	\hline 
						 	     	& BlaBla 4 \\
			 				     	& BlaBla 5 \\
	\multirow{-3}{*}{Test C}	& BlaBla 6 \\
	\hline
\end{tabular}
		
\end{document}

Verfasst: So 29. Sep 2013, 09:37
von johannes_
Hallo zusammen,

ich habe ein ähnliches Problem wie AspirinJunkie, jedoch hilft es bei mir nicht, \multirow nach unten zu setzen. Das Phänomen kehrt sich nur um.

Hier das Beispiel:
\documentclass[fontsize=12pt, paper=a4]{scrreprt}
\usepackage[T1]{fontenc} 
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{multirow}
\usepackage{multicol}
\usepackage{colortbl}
\usepackage[babel,german=guillemets]{csquotes}

\begin{document}

\begin{tabular}{|c|c|c|c|}
\cline{3-4}
{}&{}&\multicolumn{2}{|>{\columncolor[gray]{0.5}}c|} {\textcolor {white}{\textbf {Rasen}}}\\
\cline{3-4}
{}&{}& \cellcolor[gray]{0.9}{hoher Preis} & \cellcolor[gray]{0.9}{niedriger Preis}\\
\hline
& \cellcolor[gray]{0.9}{hoher Preis} & 4;4 & 1;6 \\
\hline
\multirow{-2}{*}{\cellcolor[gray]{0.5}\textcolor {white}{\textbf {Wiese}}}  & \cellcolor[gray]{0.9}{niedriger Preis} & 6;1 & 3;3\\
\hline
\end{tabular}

\end{document}

Ich hoffe, es hat jemand eine Idee.

Ein weiteres Problem in dem Beispiel, das ich noch nicht gelöst habe, sind die senkrechten Linien in vor der ersten und der zweiten Spalte, jeweils in der ersten und zweiten Zeile. Diese Linien möchte ich nicht darstellen.

Vielen Dank.

MfG Johannes

Verfasst: So 29. Sep 2013, 13:03
von Stefan Kottwitz
Hallo Johannes,

färbe auch die vorige Zelle ein und verwende \cline statt \hline an der Stelle vor \multirow:
\begin{tabular}{|c|c|c|c|}
\cline{3-4}
{}&{}&\multicolumn{2}{|>{\columncolor[gray]{0.5}}c|} {\textcolor {white}{\textbf {Rasen}}}\\
\cline{3-4}
{}&{}& \cellcolor[gray]{0.9}{hoher Preis} & \cellcolor[gray]{0.9}{niedriger Preis}\\
\hline
\cellcolor[gray]{0.5}& \cellcolor[gray]{0.9}{hoher Preis} & 4;4 & 1;6 \\
\cline{1-4}
\multirow{-2}{*}{\cellcolor[gray]{0.5}\textcolor {white}{\textbf {Wiese}}}  & \cellcolor[gray]{0.9}{niedriger Preis} & 6;1 & 3;3\\
\hline
\end{tabular}
Übrigens werden Tabellen auch sehr viel hier diskutiert: Thema Tabellen mit LaTeX.

Stefan

Verfasst: So 29. Sep 2013, 14:33
von johannes_
Hallo,

vielen Dank für die schnelle Antwort.
Ich habe die Änderungsvorschläge übernommen, jedoch funktioniert bei mir der Befehl \cline{1-4} vor \multirow nicht. Es wird nur in Spalte 3 und 4 eine Linie erzeugt. Ebenso funktioniert \cline über und unter dem Wort "Rasen" nicht. Zusätzliches Thema wären noch die senkrechten Linien oben links.

Verfasst: So 29. Sep 2013, 15:08
von Stefan Kottwitz
Hallo Johannes,

helfen könnte hhline:
\usepackage{hhline}

...
\cellcolor[gray]{0.5}& \cellcolor[gray]{0.9}{hoher Preis} & 4;4 & 1;6 \\
\hhline{~---}
\multirow{-2}{*}{...
Wegen Entfernen der Linien oben links siehe Wie kriege ich bei ausgewählten Zellen Linien in der Tabelle weg?

Stefan


Stefan

Verfasst: So 29. Sep 2013, 15:40
von johannes_
Hallo Stefan,

ich habe nun den Befehl \hhline verwendet. Jedoch bleit in der multirow-Zelle eine weiße, eigentlich unsichtbare hline.

Hier das Beispiel:
\documentclass[fontsize=12pt, paper=a4]{scrreprt}
\usepackage[T1]{fontenc} % Ligaturen, richtige Umlaute im PDF
\usepackage[utf8]{inputenc}% UTF8-Kodierung für Umlaute usw
\usepackage[ngerman]{babel} % Silbentrennung
\usepackage{multirow} % Tabellen-Zellen über mehrere Zeilen
\usepackage{multicol} % mehre Spalten auf eine Seite
\usepackage{colortbl}
\usepackage[babel,german=guillemets]{csquotes}
\usepackage{hhline}

\begin{document}

\begin{tabular}{|c|c|c|c|}
\hhline{~~--} 
\multicolumn{2}{c|}{}&\multicolumn{2}{|>{\columncolor[gray]{0.5}}c|} {\textcolor {white}{\textbf {Rasen}}}\\
\hhline{~~--} 
\multicolumn{2}{c|}{}& \cellcolor[gray]{0.9}{hoher Preis} & \cellcolor[gray]{0.9}{niedriger Preis}\\
\hline
\cellcolor[gray]{0.5}& \cellcolor[gray]{0.9}{hoher Preis} & 4;4 & 1;6 \\
\hhline{~---} 
\multirow{-2}{*}{\cellcolor[gray]{0.5}\textcolor {white}{\textbf {Wiese}}}  & \cellcolor[gray]{0.9}{niedriger Preis} & 6;1 & 3;3\\
\hline
\end{tabular}

\end{document}
Die vertikalen Linien habe ich mit Hilfe des anderen Threats entfernen können.

Verfasst: So 29. Sep 2013, 15:48
von Stefan Kottwitz
Mit passender Einfärbung kriegen wir es hin:
\hhline{>{\arrayrulecolor[gray]{0.5}}->{\arrayrulecolor{black}}---}
Stefan

Verfasst: So 29. Sep 2013, 15:58
von johannes_
passt, danke für die schnelle Hilfe.