如何防止 \rowcolor 改变单元格边框的粗细?

如何防止 \rowcolor 改变单元格边框的粗细?

\rowcolor似乎会改变单元格边框的粗细。例如:

\documentclass{scrbook}
\usepackage[table]{xcolor}

\definecolor{maroon}{cmyk}{0.20,0.00,0.00,0.00}

\begin{document}

\noindent\begin{tabular}{|l|c|}
\hline
one & two \\
\rowcolor{maroon}three & four \\

five & six \\
\hline
\end{tabular}

\end{document}

输出(我添加了红色矩形来显示更改),由 Adob​​e Acrobate Pro XI 呈现:

在此处输入图片描述

输出取决于 PDF 查看器以及缩放。在某些情况下,边框甚至不可见:

在此处输入图片描述

如何防止 \rowcolor 改变单元格边框的粗细?

答案1

正如 OP 所要求的,我正在扩展评论,尤其是@cfr 的评论。

这个问题是由于观看者在不同的放大倍数下(或当看到的页面部分不同时)呈现的图像和 pdf 不同。因此,人们必须更多地依赖打印屏幕,尽管打印效果因驱动程序而异。因此,最好以不同的放大倍数检查输出,并尽可能打印。


不过,我认为您的垂直分隔符和“四四方方”的表格样式可能需要重新设计一下。另外,我认为最好使用不同深浅的灰色来增强需要增强的行/单元格(这对色盲人士来说是一个加分项!)。

下面是我所指的一个例子

\documentclass{scrbook}
\usepackage[table]{xcolor}
\usepackage{booktabs}

\begin{document}

\noindent\begin{tabular}{lc}
\toprule
header&header\\
\midrule
one & two \\
\rowcolor{gray!30}three & four \\

five & six \\
\bottomrule\end{tabular}

\end{document}

在此处输入图片描述

答案2

有了{NiceTabular}nicematrix您就有了解决方案。颜色面板在规则之前绘制。但是,您需要进行多次编译。

\documentclass{article}
\usepackage{xcolor}
\usepackage{nicematrix}

\begin{document}

\begin{NiceTabular}{|l|c|}[color-inside]
\hline
one & two \\
\rowcolor{red!15} three & four \\
five & six \\
\hline
\end{NiceTabular}

\end{document}

上述代码的输出

相关内容