使用颜色表时的线条问题

使用颜色表时的线条问题

我给表格添加颜色后,显示出现一些问题,以下是示例代码:

\documentclass{article}

\usepackage{xcolor,colortbl}
\definecolor{Gray}{gray}{0.85}

\begin{document}
test a color table:
\begin{table}[h]
\begin{center}
\begin{tabular}{|c|c|c|c|}
\hline
\rowcolor{Gray}
Version & Date & Author & Reason of Change \\
\hline 
0.1 & \today & Chen How & create initial documentation template, all content are dummy \\
\hline 
 & & & \\
\hline 
 & & & \\
\hline 
\end{tabular}
\end{center}
\caption{Document history}
\end{table}
\end{document}

当我通过 pdf 阅读时,问题就出现了: 在此处输入图片描述 当我放大和缩小时,线条也会发生变化,但如果没有颜色,它总是可以的: 在此处输入图片描述

这是正常行为还是我的问题?

答案1

您可以在表格后重新绘制线条,例如使用 tikz(示例中为红色)。另一种方法是在表格前绘制灰色背景(也使用 tikz)。参见例如 带填充的单元格的背景颜色

\documentclass{article}

\usepackage[table]{xcolor}
\definecolor{Gray}{gray}{0.85}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\begin{document}
test a color table:
\begin{table}[h]
\begin{center}
\begin{tabular}{|c|c|c|c|}
\hline
\rowcolor{Gray}
Version & \multicolumn{1}{c!{\tikzmark{x}\vrule}}{Date} & Author& Reason of Change \\
\hline
0.1 & \today & Chen How & create initial documentation template, all content are dummy \\
\hline
 & & & \\
\hline
 & & & \\
\hline
\end{tabular}%
\tikz[overlay,remember picture]\draw[line width=\arrayrulewidth,red]([xshift=0.5\arrayrulewidth,yshift=-\dp\strutbox]pic cs:x)--++(0,\baselineskip);
\end{center}
\caption{Document history}
\end{table}
\end{document}

但是根据表格的结构,这可能需要相当多的调整。

在此处输入图片描述

答案2

该软件包nicematrix提供了专为解决此类问题的工具。

环境{NiceTabular}类似于{tabular}(的array),但提供(当使用键color-inside, 别名colortbl-like时)工具来使用类似于的语法为单元格、行和列着色colortbl。它确实不是使用colortbl

您在所有 PDF 查看器中都获得了良好的结果(您没有发现在某些缩放级别下似乎消失的规则;当表格由 colortbl 构造时,您没有看到使用 MuPDF(例如 SumatraPDF)的查看器中看到的细白线)。

然而,您需要多次编译。

\documentclass{article}
\usepackage{xcolor}
\usepackage{nicematrix}
\definecolor{Gray}{gray}{0.85}
\begin{document}
test a color table:
\begin{table}[h]
\begin{center}
\begin{NiceTabular}{|c|c|c|c|}[color-inside]
\hline
\rowcolor{Gray}Version & Date & Author & Reason of Change \\
\hline
0.1 & \today & Chen How & dummy content \\
\hline
 & & & \\
\hline
 & & & \\
\hline
\end{NiceTabular}
\end{center}
\caption{Document history}
\end{table}
\end{document}

上述代码的输出

事实上,使用{NiceTabular},只需一个键 就可以绘制所有规则hvlines。也可以在“ \CodeBefore”中的数组主体之前给出颜色的说明。

\documentclass{article}
\usepackage{xcolor}
\usepackage{nicematrix}
\definecolor{Gray}{gray}{0.85}
\begin{document}
test a color table:
\begin{table}[h]
\begin{center}
\begin{NiceTabular}{cccc}[hvlines]
\CodeBefore
  \rowcolor{Gray}{1}
\Body
Version & Date & Author & Reason of Change \\
0.1 & \today & Chen How & dummy content \\
 & & & \\
 & & & \\
\end{NiceTabular}
\end{center}
\caption{Document history}
\end{table}
\end{document}

相关内容