Adobe Reader 和 xcolor 在表格内换行渲染

Adobe Reader 和 xcolor 在表格内换行渲染

我正在使用该xcolor软件包为表格的顶行着色。使用 PDF 查看器(例如 Preview 或 Skim (Mac))可以正确显示。但使用 Adob​​e Reader 10.1.3(Windows 或 Mac)无法正确显示表格线。

但删除表格的颜色可以解决这个问题。以下是按预期运行的示例:

\begin{table}
\caption{Table showing Feature 5's Functional Tests}
\hspace*{-0.5in}
\begin{tabular}[h!]{|p{0.6cm}|p{4cm}|p{5cm}|p{4cm}|p{1.5cm}|}
\hline
{\bf Test ID } & {\bf Task } & {\bf Expected} & {\bf Actual} & {\bf Outcome} \\
\hline
   5.1 & Something &  Something & Something &  Success \\
\hline
   5.2 & Something &  Something & Something &  Success \\
\hline
   5.3 & Something &  Something & Something &  Success \\
\hline
   5.4 & Something &  Something & Something &  Success \\
\hline
\end{tabular} 
\end{table}

以下是带有彩色行的示例:

\begin{table}
\caption{Table showing Feature 5's Functional Tests}
\hspace*{-0.5in}
\begin{tabular}[h!]{|p{0.6cm}|p{4cm}|p{5cm}|p{4cm}|p{1.5cm}|}
\hline
\rowcolor{gray!25}
{\bf Test ID } & {\bf Task } & {\bf Expected} & {\bf Actual} & {\bf Outcome} \\
\hline
   5.1 & Something &  Something & Something &  Success \\
\hline
   5.2 & Something &  Something & Something &  Success \\
\hline
   5.3 & Something &  Something & Something &  Success \\
\hline
   5.4 & Something &  Something & Something &  Success \\
\hline
\end{tabular} 
\end{table}

删除\rowcolor{}命令并用其替换\cellcolor{}会创建相同的视图。有什么办法可以解决这个问题吗?

我曾尝试用 Adob​​e 将其打印出来,线条打印得很好,但由于这将以软拷贝的形式阅读,因此它非常重要。这里有一个画廊展示 LaTeX 代码

知道如何修复这个问题吗?

答案1

PDF 查看器会尝试将规则“对齐”到像素边界,这可能意味着彩色面板会被拉到相邻的规则上。尝试使用

\setlength\arrayrulewidth{0.6pt}

或任何适合您屏幕的值。

答案2

该包(由的colortbl键加载)逐行构建数组,交替排列彩色矩形、规则和单元格内容。生成的 PDF,tablexcolor尽管完全正确并符合 PDF 语法,但某些 PDF 查看器(甚至是现代的)很难解释,并且可能会导致屏幕上出现伪影(而不是纸上)。

  • 一些规则似乎消失了。这是因为许多 PDF 查看器优先考虑后绘制的图形元素(这符合 PostScript 和 PDF 的“绘画模型”精神)。这个问题在 Adob​​e Reader 中尤其严重(尽管 Adob​​e 是 PDF 格式的创建者)。

  • 两个相同颜色的单元格之间可能会出现一条细白线(实际上,这条线的宽度为 0 pt,在 PostScript 和 PDF 中,这意味着宽度为 1 像素)。当每个单元格都使用自己的指令(PDF 流中编码的fillPostScript 运算符)着色时,就会出现这种现象。这就是 的情况:即使使用或,每个单元格都会单独着色。这些细白线尤其会出现在 Artifex Software 的 PDF 引擎 MuPDF(例如,在 Sumatra PDF 中使用)或Firefox 使用的 中。它们不会出现在 Adob​​e Reader 中。fillfcolortblcolumncolor\rowcolorPDF.js

该软件包试图解决这些问题。该扩展提供了类似于(软件包的)的nicematrix环境。在该环境中,彩色面板在规则之前绘制(以避免第一个问题)并逐个颜色绘制(以避免第二个问题)。{NiceTabular}{tabular}array

但是,有一个缺点:nicematrix使用 PGF/Tikz 节点和存储在aux文件中的信息,这就是为什么需要多次编译。

相关内容