Table mit multirow und rowcolors?

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Table mit multirow und rowcolors?

Table mit multirow und rowcolors?

von kanra » Fr 28. Aug 2015, 08:20

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

Nach oben