Table mit multirow und rowcolors? Thema ist als GELÖST markiert

Tabellen und Grafiken erstellen und anordnen


kanra

Table mit multirow und rowcolors?

Beitrag von kanra »

Guten Morgen!

Ich arbeite gerade an einer Vorlage, mit der man in LaTeX (TeXStudio) Berichte erstellen kann. In diesem Dokument sollen alle geraden bzw. ungeraden (egal, solange konst. jede zweite Zeile betroffen ist) Zeilen der Tabellen eine farbige Hinterlegung bekommen.
Dies soll mit dem Befehl \rowcolors automatisch geschehen, also ohne, dass man jede Zeile manuell umfärben muss. Allerdings gibt es auch Tabellen, bei denen zwei Spalten viele Zeilen und eine Spalte nur eine einzige hohe Zeile haben soll, die daneben angezeigt wird (siehe Wunschtabelle aus Word).
Ich habe bereits viele unterschiedliche Varianten ausprobiert, aber bisher trifft es leider keine so ganz. Vielleicht kann mir ja jemand von euch helfen?

Danke schon mal! (-:

Bild

1. Versuch: Zwei Minipages in Frame
\documentclass[captions=nooneline, headings=normal, fontsize=12pt, a4paper, oneside]{scrartcl}
\usepackage[lmargin = {2.5cm},rmargin = {2.5cm},tmargin = {2cm},bmargin = {3.5cm}]{geometry} 

\usepackage{tabularx}
\usepackage[usenames,dvipsnames,svgnames,table,xcdraw]{xcolor}
\usepackage{framed}
\usepackage{graphicx}
\newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}

\begin{document} %% ------------------------------------------------------------------------------------------------------
	
\renewcommand{\arraystretch}{1.2}
\setlength{\arrayrulewidth}{1pt}
	
\begin{table}[ht] 
\rowcolors{2}{green}{} 
\begin{minipage}{\textwidth}
	\begin{framed}
	\begin{minipage}{.64\textwidth} 
	\begin{tabularx}{\columnwidth}{| >{\bfseries}M{.2\textwidth} | >{\centering\arraybackslash}X |}
	\hline
		Test & Test \\ \hline 
		Test & Test \\ \hline 
		Test & Test \\ \hline 
		Test & Test \\ \hline 
		Test & Test \\ \hline 
		Test & Test \\ \hline 
	\end{tabularx} 
	\end{minipage} 
	\begin{minipage}{.35\textwidth} 
	\includegraphics[width=\textwidth]{example-image-golden} 
	\end{minipage}
	\end{framed}
\end{minipage}
\end{table}

\end{document}
Der Rahmen ist hier leider zu dick. Perfekt wäre es, wenn die Außenlinien der Tabellen genau auf der äußeren Umrandung liegen würden ...

2. Versuch: Geschachtelte Tabelle
\documentclass[captions=nooneline, headings=normal, fontsize=12pt, a4paper, oneside]{scrartcl}
\usepackage[lmargin = {2.5cm},rmargin = {2.5cm},tmargin = {2cm},bmargin = {3.5cm}]{geometry} 

\usepackage{tabularx}
\usepackage[usenames,dvipsnames,svgnames,table,xcdraw]{xcolor}
\usepackage{graphicx}
\usepackage{adjustbox}
\newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}

\begin{document} %% ------------------------------------------------------------------------------------------------------
	
\renewcommand{\arraystretch}{1.2}
\setlength{\arrayrulewidth}{1pt}
	
	
\begin{table}[hr]
	\begin{adjustbox}{width={\textwidth}}
		\begin{tabular}{|p{.6\textwidth}|M{.4\textwidth}|} 
			\hline \rowcolors{1}{green}{} 
			\begin{tabular}{|>{\bfseries}M{.2\textwidth}|M{.355\textwidth}|}
				\hline
				Test & Test \\ \hline 
				Test & Test \\ \hline 
				Test & Test \\ \hline 
				Test & Test \\ \hline 
				Test & Test \\ \hline 
				Test & Test \\ \hline 
			\end{tabular} & \includegraphics[width=.35\textwidth]{example-image-golden}  \\ \hline
		\end{tabular}	
	\end{adjustbox}
\end{table}

\end{document}
Hier müsste die innere Tabelle noch auf der linken Seite mit den Rändern der äußeren zusammentreffen.

3. Versuch: Multirow
\documentclass[captions=nooneline, headings=normal, fontsize=12pt, a4paper, oneside]{scrartcl}
\usepackage[lmargin = {2.5cm},rmargin = {2.5cm},tmargin = {2cm},bmargin = {3.5cm}]{geometry} 

\usepackage{tabularx}
\usepackage[usenames,dvipsnames,svgnames,table,xcdraw]{xcolor}
\usepackage{graphicx}
\usepackage{adjustbox}
\usepackage{multirow}
\newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}

\begin{document} %% ------------------------------------------------------------------------------------------------------
	
\renewcommand{\arraystretch}{1.2}
\setlength{\arrayrulewidth}{1pt}
	
	
\begin{table}[ht]
	\rowcolors{1}{green}{} 
	\begin{adjustbox}{width={\textwidth}}
		\begin{tabular}{|>{\bfseries}M{.2\textwidth}|M{.4\textwidth}|M{.4\textwidth}|} 
			\hline 
			Test & Test & \multirow{6}{*}{\includegraphics[width=.35\textwidth]{example-image-golden}} \\ \hline 
			Test & Test & \\ \hline 
			Test & Test & \\ \hline 
			Test & Test & \\ \hline 
			Test & Test & \\ \hline 
			Test & Test & \\ \hline  
		\end{tabular}
	\end{adjustbox}
\end{table}

\end{document}
Eigentlich das naheliegendste, aber wie man sieht, wird das Bild von der Hintergrundfarbe und den Trennlinien übermalt. Wenn man statt \hline \cline{2-3} schreibt, gehen die horizontalen Trennlinien zwar nicht mehr über das Bild hinaus, dafür verschwindet dann aber auch die Hintergrundfarbe ...