multirow und colortbl vs. vertikale Zellenzentrierung

Tabellen und Grafiken erstellen und anordnen


AspirinJunkie
Forum-Anfänger
Forum-Anfänger
Beiträge: 13
Registriert: So 11. Okt 2009, 16:05

multirow und colortbl vs. vertikale Zellenzentrierung

Beitrag 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

AspirinJunkie
Forum-Anfänger
Forum-Anfänger
Beiträge: 13
Registriert: So 11. Okt 2009, 16:05

Beitrag 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}

johannes_
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Sa 31. Aug 2013, 19:50

Beitrag 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
--
Gruß Johannes

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2759
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Beitrag 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

johannes_
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Sa 31. Aug 2013, 19:50

Beitrag 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.

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2759
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Beitrag 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

johannes_
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Sa 31. Aug 2013, 19:50

Beitrag 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.
--
Gruß Johannes

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2759
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Beitrag von Stefan Kottwitz »

Mit passender Einfärbung kriegen wir es hin:
\hhline{>{\arrayrulecolor[gray]{0.5}}->{\arrayrulecolor{black}}---}
Stefan

johannes_
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Sa 31. Aug 2013, 19:50

Beitrag von johannes_ »

passt, danke für die schnelle Hilfe.
--
Gruß Johannes

Antworten