alpe
08-05-2010, 13:25
Ich habe hier ein kleines ästhetisches Problem bei dem ich nicht weiterkomme:
Ich will grundlegend alternierende Hintergrundfarben für die Zeilen meiner Tabelle. Allerdings möchte ich dieses Verhalten abschalten sobald ich mittels \multirow mehrere Zeilen zusammenfasse.
Dazu mal mein Beispiel, was nicht mehr wirklich minimal ist.
\documentclass[11pt,a4paper]{scrreprt}
\usepackage[utf8x]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[table]{xcolor}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{tabularx}
\colorlet{tablerowcolor}{gray!10.0}
\colorlet{tableheadcolor}{gray!25}
\newcommand{\PreserveBackslash}[1]{\let\temp=\\#1\let\\=\temp}
\newcolumntype{v}[1]{>{\PreserveBackslash\raggedright\hspace{0pt}}p{#1}}
\newcommand{\tablefontsize}{ \footnotesize}
\newcommand{\tableheadfontsize}{\footnotesize}
\newcommand\tablestyle{%
\renewcommand{\arraystretch}{1.4}
\normalfont\normalsize
\sffamily\tablefontsize
\centering%
}
\newcommand\tablealtcolored{%
\rowcolors{1}{tablerowcolor}{white!100}%
}
\newcommand\tableheadcolor{%
\rowcolor{tableheadcolor}%
}
\newcommand\tablehead{%
\tableheadfontsize%
\sffamily\bfseries%
}
\newcommand\tablebody{%
\tablefontsize\sffamily\upshape%
}
\begin{document}
\begin{table}[]
\caption{Die Überschrift}\label{tab:sigtechcmp}
\tablestyle
\tablealtcolored
\begin{tabular}{v{0.2\linewidth}v{0.4\linewidth}v{ 0.3\linewidth}}
\hline
\tableheadcolor
\tablehead Merkmal &
\tablehead Vorteile &
\tablehead Nachteile\tabularnewline\hline
\tablebody
\cellcolor{white!100} &\cellcolor{white!100} a & \cellcolor{white!100}\tabularnewline
\cellcolor{white!100} &\cellcolor{white!100} a &\cellcolor{white!100} b\tabularnewline
\cellcolor{white!100}\multirow{-3}{*}{Merkmal 1} &\cellcolor{white!100} &\cellcolor{white!100} b\tabularnewline\hline
Merkmal 2 & a & b\tabularnewline
Merkmal 3 & a & b\tabularnewline
\hline
\end{tabular}
\end{table}
\end{document}
Wie man sieht könnte ich das ganze mit dem Befehl \cellcolor machen. Ich finde die Variante aber nicht so schön.
Lässt sich da nicht etwas allgemeines, wie eine Umgebung realisieren in der rowcolor abgeschaltet ist?
Idealerweise mit Berücksichtigung der dahinter folgenden korrekten Hintergrundfarbe.
Hat dazu jemand eine Idee?
EDIT: \hiderowcolors und \showrowcolors sind meiner Meinung nach nicht ganz genau das richtige, weil je nach Zeile gern bei einer bestimmten Hintergrundfarbe bleiben möchte
Gruß
alpe
Ich will grundlegend alternierende Hintergrundfarben für die Zeilen meiner Tabelle. Allerdings möchte ich dieses Verhalten abschalten sobald ich mittels \multirow mehrere Zeilen zusammenfasse.
Dazu mal mein Beispiel, was nicht mehr wirklich minimal ist.
\documentclass[11pt,a4paper]{scrreprt}
\usepackage[utf8x]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[table]{xcolor}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{tabularx}
\colorlet{tablerowcolor}{gray!10.0}
\colorlet{tableheadcolor}{gray!25}
\newcommand{\PreserveBackslash}[1]{\let\temp=\\#1\let\\=\temp}
\newcolumntype{v}[1]{>{\PreserveBackslash\raggedright\hspace{0pt}}p{#1}}
\newcommand{\tablefontsize}{ \footnotesize}
\newcommand{\tableheadfontsize}{\footnotesize}
\newcommand\tablestyle{%
\renewcommand{\arraystretch}{1.4}
\normalfont\normalsize
\sffamily\tablefontsize
\centering%
}
\newcommand\tablealtcolored{%
\rowcolors{1}{tablerowcolor}{white!100}%
}
\newcommand\tableheadcolor{%
\rowcolor{tableheadcolor}%
}
\newcommand\tablehead{%
\tableheadfontsize%
\sffamily\bfseries%
}
\newcommand\tablebody{%
\tablefontsize\sffamily\upshape%
}
\begin{document}
\begin{table}[]
\caption{Die Überschrift}\label{tab:sigtechcmp}
\tablestyle
\tablealtcolored
\begin{tabular}{v{0.2\linewidth}v{0.4\linewidth}v{ 0.3\linewidth}}
\hline
\tableheadcolor
\tablehead Merkmal &
\tablehead Vorteile &
\tablehead Nachteile\tabularnewline\hline
\tablebody
\cellcolor{white!100} &\cellcolor{white!100} a & \cellcolor{white!100}\tabularnewline
\cellcolor{white!100} &\cellcolor{white!100} a &\cellcolor{white!100} b\tabularnewline
\cellcolor{white!100}\multirow{-3}{*}{Merkmal 1} &\cellcolor{white!100} &\cellcolor{white!100} b\tabularnewline\hline
Merkmal 2 & a & b\tabularnewline
Merkmal 3 & a & b\tabularnewline
\hline
\end{tabular}
\end{table}
\end{document}
Wie man sieht könnte ich das ganze mit dem Befehl \cellcolor machen. Ich finde die Variante aber nicht so schön.
Lässt sich da nicht etwas allgemeines, wie eine Umgebung realisieren in der rowcolor abgeschaltet ist?
Idealerweise mit Berücksichtigung der dahinter folgenden korrekten Hintergrundfarbe.
Hat dazu jemand eine Idee?
EDIT: \hiderowcolors und \showrowcolors sind meiner Meinung nach nicht ganz genau das richtige, weil je nach Zeile gern bei einer bestimmten Hintergrundfarbe bleiben möchte
Gruß
alpe