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! (-:
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 ...
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! (-:
[img]http://i.imgur.com/CZj2knZ.png[/img]
[b]1. Versuch: Zwei Minipages in Frame[/b]
[code]\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}[/code]
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 ...
[b]2. Versuch: Geschachtelte Tabelle[/b]
[code]\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}[/code]
Hier müsste die innere Tabelle noch auf der linken Seite mit den Rändern der äußeren zusammentreffen.
[b]3. Versuch: Multirow[/b]
[code]\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}[/code]
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 ...