longtable: Zeilen mit mehrzeiligen Texten farbig hinterlegen

Tabellen und Grafiken erstellen und anordnen


fs
Forum-Anfänger
Forum-Anfänger
Beiträge: 35
Registriert: Di 2. Jan 2018, 09:24
Kontaktdaten:

longtable: Zeilen mit mehrzeiligen Texten farbig hinterlegen

Beitrag 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

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2456
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag 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}

fs
Forum-Anfänger
Forum-Anfänger
Beiträge: 35
Registriert: Di 2. Jan 2018, 09:24
Kontaktdaten:

Beitrag 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?
Dipl.-Inform. Frank Seitz
IT Consultant / {Web, Database, Linux} Developer + Admin
Tel: +49-176-78243503, Hauptstr. 32-34, D-25462 Rellingen

Blog: http://fseitz.de/blog

Antworten