\rowcolor sobrescribe el divisor de columnas

\rowcolor sobrescribe el divisor de columnas

Tengo un problema extraño en el que mi comando de color de fila sobrescribe el separador de columnas en algunos visores de PDF. Acrobat (desafortunadamente) es el único que tiene el problema de renderizado. El problema existe tanto en la pantalla renderizada como en la versión impresa.

La representación de Acrobat es la siguiente:

renderizado acróbata

La representación en TeXShop, MacOS Preview y Ghostscript desde un archivo Postscript es:

Otros renders

Con los otros motores de renderizado, puede ver que parece haber un separador de columnas de 1/2 línea, por lo que conceptualmente entiendo lo que está sucediendo, pero no sé cómo cambiar mi comando /rowcolor para solucionar el problema. Necesito asegurarme de que el comando /rowcolor no sobrescriba los divisores de la tabla, que son todos de 1 punto.

\usepackage{booktabs,xcolor,siunitx,colortbl}
\definecolor{lightgray}{HTML}{EFEFEF}

\begin{tabular}{|c|c||c|c||c|c|}
\hline
48 & 72 & 24 & 3 & \(z_0\)& 36\\
\rowcolor{lightgray}
& 96 & & 4 & \(z_1\)& 36\\
\hline
\end{tabular}

Para confirmar el problema de la línea de 1/2 ancho, agregué

\setlength{\arrayrulewidth}{1.5pt}

lo que hizo que todo fuera más grueso para que la mesa se renderizara en Acrobat, pero realmente no era agradable.

Cualquier sugerencia será muy apreciada.

Respuesta1

Eso es raro, y si tenemos suerte,David Carlisledel colortblpaquete pasará por aquí y aclarará esto. No soy lo suficientemente experto como para ir más allá y arreglar el orden z de las reglas versus el color de relleno, lo que parece ser la causa principal del problema, pero tengo un truco sucio que podría ser lo suficientemente bueno para ti:

Algunas notas: el bloque de código TeX (que comienza con \makeatletter) esesta corrección de color de doble regla, y llenará el espacio entre las reglas verticales dobles con el color que especifiques, y permite diferentes colores para cada fila.

Estoy usando la [table]{xcolor}opción porque admite colores de fila, que alternan los colores de fila automáticamente.

Para solucionar el problema del separador vertical irregular, simplemente definí un color que es muy cercano al blanco, pero que en realidad no lo es, para forzar el llenado de todas las filas.

\usepackage[table]{xcolor}
\usepackage{booktabs,siunitx}

\makeatletter
\let\old@mkpream\@mkpream
\def\@mkpream{%
\ifx\CT@drsc@\relax\else\let\CT@drsc@ @\fi
\let\CT@arc@\relax
\old@mkpream}
\makeatother

\begin{document}

\definecolor{lightgray}{HTML}{EFEFEF}
\definecolor{nearwhite}{HTML}{FEFEFE}

\doublerulesepcolor{nearwhite}
\rowcolors{1}{nearwhite}{lightgray}
\begin{tabular}{|c|c||c|c||c|c|}
\hline
48 & 72 & 24 & 3 & \(z_0\)& 36\\
\doublerulesepcolor{lightgray}
& 96 & & 4 & \(z_1\)& 36\\
\hline
\end{tabular}

Respuesta2

Con {NiceTabular}of nicematrix, tendrás directamente el resultado esperado. Las reglas no parecerán desaparecer en algunos visores de PDF en algunos niveles de zoom.

\documentclass{article}
\usepackage{xcolor}
\definecolor{lightgray}{HTML}{EFEFEF}
\usepackage{nicematrix}

\begin{document}

\begin{NiceTabular}{|c|c||c|c||c|c|}[colortbl-like]
\hline
48 & 72 & 24 & 3 & \(z_0\)& 36\\
\rowcolor{lightgray}
& 96 & & 4 & \(z_1\)& 36\\
\hline
\end{NiceTabular}

\end{document}

Necesita varias compilaciones (porque nicematrixutiliza nodos PGF/Tikz bajo el capó).

Salida del código anterior

información relacionada