Seite 1 von 1

longtable: Zeilen mit mehrzeiligen Texten farbig hinterlegen

Verfasst: Mo 29. Jan 2018, 10:22
von fs
Hallo,

ich möchte Zeilen einer Tabelle farbig hinterlegen. Hierfür verwende ich \rowcolor. Bei einzeiligem Text in den Zellen funktioniert das auch bestens. Bei mehrzeiligem Text, den ich mit \makecell behandele, wird der Hintergrund jedoch nicht vollständig ausgefüllt. Hier ein Minimalbeispiel:
\documentclass[12pt]{article}

\usepackage{longtable}
\usepackage{makecell}
\usepackage[table]{xcolor}

\definecolor{titleColor}{HTML}{e5e5e5}

\begin{document}

\begin{longtable}{|l|}
\hline
\rowcolor{titleColor} \makecell[lb]{Ein\\Titel} \\ \hline
\endfirsthead
\makecell[lt]{Dies ist die\\erste Zeile} \\ \hline
Zweite Zeile \\ \hline
\makecell[lt]{Die dritte\\Zeile} \\ \hline
\end{longtable}

\end{document}
Wie korrigiere ich dies?

Grüße
Frank

Verfasst: Mo 29. Jan 2018, 11:23
von Bartman
Da ich mich mit makecell nicht auskenne, möchte ich einen Vorschlag ohne das Paket anbieten:
\documentclass[12pt]{article}

\usepackage{longtable}
\usepackage[table]{xcolor}

\newcommand{\multilinecell}[1]{
	\begin{tabular}{@{}l@{}}#1\end{tabular}
}

\definecolor{titleColor}{HTML}{e5e5e5}

\begin{document}
\begin{longtable}{|l|}
\hline
\rowcolor{titleColor} \multilinecell{Ein\\Titel} \\ 
\hline
\endfirsthead
\multilinecell{Dies ist die\\erste Zeile} \\ 
\hline
Zweite Zeile \\ 
\hline
\multilinecell{Die dritte\\Zeile} \\ 
\hline
\end{longtable}
\end{document}

Verfasst: Mo 29. Jan 2018, 12:58
von fs
Dein Vorschlag löst das Problem mit der Hintergrundfarbe. Allerdings nutze ich von \makecell noch eine andere Eigenschaft, die in dem Minimalbeispiel nicht zum Tragen kommt, und zwar, dass die Zellen auch vertikal ausgerichtet werden können: b=bottom, verwende ich für die Kolumnentitel-Zellen, und t=top, verwende ich für die Daten-Zellen. Bei deiner Lösung werden unterschiedlich hohe Zellen einer Zeile vertikal zentriert, was in der Hinsicht die (IMHO) schlechteste Lösung ist. Lässt sich das bei deiner Lösung beheben?