Ich habe eine Tabelle mit vier Spalten, die in zwei größere Spalten gruppiert sind. Ich verwende das Paket tabularx
. Wenn ich eingebe \cline{2-5}
, dass eine Linie über diesen Spalten platziert werden soll, ist sie sichtbar, wenn die Tabelle keine Farbe hat, aber die Farbe in der Zelle verbirgt sie, sobald sie vorhanden ist. Ich habe viele Beiträge zu diesem Problem gelesen, aber festgestellt, dass sich die meisten Beiträge auf dieses Problem tiefer in einer Tabelle und nicht ganz am Anfang einer Tabelle beziehen, und ich konnte keine Beispiele erstellen, um mein Problem zu beheben. Ich freue mich über Feedback und Profi-Tipps. Unten ist ein funktionierendes Beispiel meines Codes.
\documentclass{article}
\usepackage{tabularx,booktabs}
\usepackage{tabularx,colortbl}
\usepackage{color, colortbl}
\usepackage[table,xcdraw]{xcolor}
\definecolor{Gray}{gray}{0.9}
\definecolor{yellow}{rgb}{1,0.98,0.46}
\usepackage{multirow, hhline}
\newcolumntype{Y}{>{\centering\arraybackslash}X}
\begin{document}
\begin{tabularx}{\textwidth}{ |l| *{4}{Y|} }
\cline{2-5}
\multicolumn{1}{c|}{}
\rowcolor{Gray}
& \multicolumn{2}{c|}{\textbf{Number of Dogs}}
& \multicolumn{2}{c|}{\textbf{Dogs Per Household}}\\
\hline
\rowcolor{Gray}
\textbf{Group and Home} & \textbf{2022} & \textbf{2023} & \textbf{2022} & \textbf{2023} \\
\hline
{\cellcolor{yellow}1} & 2 & 2 & 1.24 & 1.42 \\ \hline
{\cellcolor{yellow}2} & 5 & 45 & 1.15 & 1.13 \\ \hline
{\cellcolor{yellow}3} & 3 & 3 & 1.03 & 1.01 \\ \hline
\end{tabularx}
\end{document}
Hier ist ein Foto. Sie werden sehen, dass die oberste Zeile über den Spalten 2-5 fehlt:
Antwort1
Mit {NiceTabular}
von nicematrix
.
\documentclass{article}
\usepackage{xcolor}
\usepackage{nicematrix}
\begin{document}
\renewcommand{\arraystretch}{1.3}
\begin{NiceTabular}{>{\columncolor{yellow!50}}l*{4}{X[c]}}[hvlines,corners]
\RowStyle[nb-rows=2,rowcolor=gray!15]{\bfseries}
& \Block{1-2}{Number of Dogs}
&& \Block{1-2}{Dogs Per Household} \\
Group and Home & 2022 & 2023 & 2022 & 2023 \\
1 & 2 & 2 & 1.24 & 1.42 \\
2 & 5 & 45 & 1.15 & 1.13 \\
3 & 3 & 3 & 1.03 & 1.01 \\
\end{NiceTabular}
\end{document}
Man braucht mehrere Zusammenstellungen.
Antwort2
Um den Vorschlag von @DavidCarlisle näher zu erläutern: Erwägen Sie, alle vertikalen und horizontalen Linien in dieser kleinen Tabelle zu entfernen. Wenn Sie der Meinung sind, dass es unbedingt erforderlich ist, eine vertikale Linie entlang der rechten Kante und eine horizontale Linie entlang der unteren Kante bereitzustellen, können Sie eine \arrayrulecolor
Anweisung verwenden, um diese Linien Gray
optisch weniger auffällig darzustellen.
Da Sie Farben als markantes Hervorhebungsmittel verwenden, könnten Sie die \textbf
Anweisungen in der Kopfzeile auch weglassen. Vermeiden Sie auf jeden Fall das Mischen und Nichtzusammenpassen visueller Metaphern.
\documentclass{article}
\usepackage{tabularx,ragged2e}
\newcolumntype{C}{>{\Centering}X}
\setlength\extrarowheight{2pt} % for a less-cramped "look"
\usepackage[table,xcdraw]{xcolor}
\definecolor{Gray}{gray}{0.9}
\definecolor{yellow}{rgb}{1,0.98,0.46}
\begin{document}
\arrayrulecolor{Gray}
\noindent % <-- don't forget this directive
\begin{tabularx}{\textwidth}{ l CCCC |}
\rowcolor{Gray}
Group and Home &
\multicolumn{2}{c}{Number of Dogs} &
\multicolumn{2}{c}{Dogs Per Household}\\
\rowcolor{Gray}
& 2022 & 2023 & 2022 & 2023 \\
\cellcolor{yellow} 1 & 2 & 2 & 1.24 & 1.42 \\
\cellcolor{yellow} 2 & 5 & 45 & 1.15 & 1.13 \\
\cellcolor{yellow} 3 & 3 & 3 & 1.03 & 1.01 \\
\cline{2-5}
\end{tabularx}
\end{document}
Antwort3
Verwenden Sie, wie in den Kommentaren vorgeschlagen \hhline
.
\documentclass{article}
\usepackage{tabularx,booktabs}
\usepackage[table,xcdraw]{xcolor}
\usepackage{hhline}
\definecolor{Gray}{gray}{0.9}
\definecolor{yellow}{rgb}{1,0.98,0.46}
\newcolumntype{Y}{>{\centering\arraybackslash}X}
\begin{document}
\begin{table}[htp]
\begin{tabularx}{\textwidth}{ |l| *{4}{Y|} }
\hhline{~|-|-|-|-|}
\rowcolor{Gray}
\multicolumn{1}{c|}{\cellcolor{white}}
& \multicolumn{2}{c|}{\textbf{Number of Dogs}}
& \multicolumn{2}{c|}{\textbf{Dogs Per Household}}\\
\hline
\rowcolor{Gray}
\textbf{Group and Home} & \textbf{2022} & \textbf{2023} & \textbf{2022} & \textbf{2023} \\
\hline
\cellcolor{yellow}1 & 2 & 2 & 1.24 & 1.42 \\ \hline
\cellcolor{yellow}2 & 5 & 45 & 1.15 & 1.13 \\ \hline
\cellcolor{yellow}3 & 3 & 3 & 1.03 & 1.01 \\ \hline
\end{tabularx}
\caption{A colorful table}
\end{table}
\begin{table}[htp]
\centering
\setlength{\tabcolsep}{0pt}
\begin{tabular*}{0.75\textwidth}{@{\extracolsep{\fill}} l c c c c}
\toprule
Groups and Home &
\multicolumn{4}{c}{Number of Dogs} \\
\cmidrule{2-5}
& \multicolumn{2}{c}{Absolute} & \multicolumn{2}{c}{\makebox[0pt]{per Household}} \\
\cmidrule{2-3} \cmidrule{4-5}
& 2022 & 2023 & 2022 & 2023 \\
\midrule
1 & 2 & 2 & 1.24 & 1.42 \\
2 & 5 & 45 & 1.15 & 1.13 \\
3 & 3 & 3 & 1.03 & 1.01 \\
\bottomrule
\end{tabular*}
\caption{A less fanciful table}
\end{table}
\end{document}
Beachten Sie, dass \rowcolor
gehen sollteVor \multicolumn
.
Wie Sie sehen, schlage ich auch eine weniger ausgefallene Realisierung vor. Der einzige Trick ist die Box mit der Breite Null, um die überschüssige Breite in der letzten Spalte zu vermeiden.
Ein letzter Kommentar: Der Code
\usepackage{tabularx,booktabs}
\usepackage{tabularx,colortbl}
\usepackage{color, colortbl}
\usepackage[table,xcdraw]{xcolor}
ist genau das gleiche wie
\usepackage{tabularx,booktabs}
\usepackage[table,xcdraw]{xcolor}