Pregunta de la tabla: ¿Cómo evito que el color de una celda bloquee una línea?

Pregunta de la tabla: ¿Cómo evito que el color de una celda bloquee una línea?

Tengo una tabla con cuatro columnas que se agrupan en dos columnas más grandes. Estoy usando el paquete tabularx. Cuando ingreso \cline{2-5}para colocar una línea encima de esas columnas, es visible cuando la tabla no tiene color, pero el color en la celda la oculta una vez presente. He visto muchas publicaciones sobre el tema, pero encontré que la mayoría de las publicaciones se refieren a este problema más profundamente dentro de una tabla y no al comienzo de una tabla y no pude manipular ejemplos para solucionar mi problema. Agradezco cualquier comentario y consejo profesional. A continuación se muestra un ejemplo funcional de mi código.

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

Aquí hay una foto. Verá que la línea superior encima de las columnas 2 a 5 está ausente:ingrese la descripción de la imagen aquí

Respuesta1

Con {NiceTabular}de 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}

Necesitas varias compilaciones.

Salida del código anterior

Respuesta2

Para profundizar en la sugerencia de @DavidCarlisle: considere deshacerse de todas las reglas verticales y horizontales en esta pequeña tabla. Si cree que es absolutamente esencial proporcionar una regla vertical a lo largo del borde derecho y una regla horizontal a lo largo del borde inferior, puede usar una \arrayrulecolordirectiva para representar estas reglas Grayy, por lo tanto, mucho menos prominentes, visualmente hablando.

Además, dado que está utilizando colores como dispositivo de resaltado destacado, puede deshacerse de las \textbfdirectivas en el encabezado. Por supuesto, evite mezclar y no combinar metáforas visuales.

ingrese la descripción de la imagen aquí

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

Respuesta3

Como se sugiere en los comentarios, utilice \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}

Tenga en cuenta que \rowcolordebería irantes \multicolumn.

También propongo, como veis, una realización menos fantasiosa. El único truco es el cuadro de ancho cero para evitar que el exceso de ancho vaya a la última columna.

ingrese la descripción de la imagen aquí

Un comentario final: el código

\usepackage{tabularx,booktabs}
\usepackage{tabularx,colortbl}
\usepackage{color, colortbl}
\usepackage[table,xcdraw]{xcolor}

es exactamente igual que

\usepackage{tabularx,booktabs}
\usepackage[table,xcdraw]{xcolor}

información relacionada