\rowcolor substitui o divisor de coluna

\rowcolor substitui o divisor de coluna

Tenho um problema estranho em que meu comando rowcolor substitui o separador de colunas em alguns visualizadores de PDF. O Acrobat (infelizmente) é o único que apresenta problema de renderização. O problema existe tanto na tela renderizada quanto na versão impressa.

A renderização do Acrobat segue:

Renderização do Acrobata

A renderização no TeXShop, MacOS Preview e Ghostscript de um arquivo Postscript é:

Outras renderizações

Com os outros mecanismos de renderização, você pode ver que parece haver um separador de coluna de meia linha, então entendo conceitualmente o que está acontecendo, mas não sei como alterar meu comando /rowcolor para resolver o problema. Preciso ter certeza de que o comando /rowcolor não substitui os divisores da tabela, que são todos de 1 ponto.

\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 o problema da linha de 1/2 largura, acrescentei

\setlength{\arrayrulewidth}{1.5pt}

o que deixou tudo mais grosso para que a mesa fosse renderizada no Acrobat, mas realmente não ficou nada agradável.

Qualquer sugestão seria muito apreciada.

Responder1

Isso é estranho, e se tivermos sorte,David Carlisledo colortblpacote passarão por aqui e esclarecerão isso. Não sou adepto o suficiente para entrar nos bastidores e corrigir a ordem z das regras versus a cor de preenchimento, o que parece ser a causa raiz do problema, mas tenho um hack sujo e sujo que pode ser bom o suficiente para você:

Algumas notas: O bloco de código TeX (começando com \makeatletter) éesta correção de cor doublerulesep, e preencherá o espaço entre as réguas verticais duplas com a cor que você especificar e permitirá cores diferentes para cada linha.

Estou usando a [table]{xcolor}opção porque ela suporta rowcolors, que alterna as cores das linhas automaticamente.

Para corrigir o problema do separador vertical irregular, acabei de definir uma cor que é muito próxima do branco, mas na verdade não é, para forçar o preenchimento de todas as linhas.

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

Responder2

Com {NiceTabular}of nicematrix, você terá diretamente a saída esperada. As regras não parecerão desaparecer em alguns visualizadores de PDF em alguns níveis 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}

Você precisa de várias compilações (porque nicematrixusa nós PGF/Tikz nos bastidores).

Saída do código acima

informação relacionada