在表格行中添加背景颜色时出现垂直线问题

在表格行中添加背景颜色时出现垂直线问题

我创建了一个如下所示的表格:

表格1

现在,我想为第二行添加背景颜色。但是,当我这样做时,第二条垂直线消失了:

快照 2

我无法解释这种行为。另外,我想要在第一行的两列(笛卡尔坐标和参考点)之间有一条垂直线。但对我来说,最重要的是,在添加背景颜色时,我已经拥有的垂直线会留在那里。

以下是我添加表格的方式:

\begin{table}[t!]
    \centering
    \begin{tabular}{c | c | c | c | c | c | c | c}
        \hline
        \multicolumn{3}{c}{Cartesian Coordinates} & \multicolumn{5}{c}{Reference Points} \\
        \hline
        \rowcolor[gray]{.70}
        x & y & z & $\text{RP}_1$ & $\text{RP}_2$ & $\text{RP}_3$ & \dots & $\text{RP}_{80}$\\
        \hline
        $\text{x}_1$ & $\text{y}_1$ & $\text{z}_1$ & $-40$ & $-51$ & $-60$& \dots & $-84$ \\
        $\text{x}_2$ & $\text{y}_2$ & $\text{z}_2$ & $-35$ & $-91$ & $-30$ & \dots & $-55$\\
        \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\
        $\text{x}_\text{m}$ & $\text{y}_\text{m}$ & $\text{z}_\text{m}$ & $-20$ & $-320$ & $-41$ & \dots &$-23$ 
    \end{tabular}
    \caption{my Table.}
    \label{myTable}
\end{table}

有人发现这其中有什么错误吗?

答案1

当你使用colortbl,会绘制一条垂直线右侧相邻单元格的彩色面板(这意味着指令在 PDF 内部流中按该顺序排列)。

PDF 查看器在处理此类构造时存在问题:在低分辨率下,它们通常优先考虑之后绘制的面板,而垂直规则有时似乎会消失(光栅化是一个非常复杂的过程,这就是为什么结果可能不统一,具体取决于可用的像素数)。

即使是非常现代的 PDF 渲染器(例如在和中PDFium使用)似乎也有这种行为(但是在使用中可以获得更好的结果)。ChromiumChromemuPDFSumatraPDF

我已尝试在包中解决该问题nicematrix

在这个包的环境中{NiceTabular},您可以使用工具来为行、列和单元格着色。彩色面板在所有规则之前绘制,因此在 PDF 查看器中效果更佳。

\documentclass{article}
\usepackage{nicematrix}

\begin{document}
\begin{NiceTabular}{C|C|C|C|C|C|C|C}[code-before = \rowcolor[gray]{.70}{2}]
    \hline
    \multicolumn{3}{C|}{Cartesian Coordinates} & \multicolumn{5}{C}{Reference Points} \\
    \hline
    x & y & z & $\text{RP}_1$ & $\text{RP}_2$ & $\text{RP}_3$ & \dots & $\text{RP}_{80}$\\
    \hline
    $\text{x}_1$ & $\text{y}_1$ & $\text{z}_1$ & $-40$ & $-51$ & $-60$& \dots & $-84$ \\
    $\text{x}_2$ & $\text{y}_2$ & $\text{z}_2$ & $-35$ & $-91$ & $-30$ & \dots & $-55$\\
    \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\
    $\text{x}_\text{m}$ & $\text{y}_\text{m}$ & $\text{z}_\text{m}$ & $-20$ & $-320$ & $-41$ & \dots &$-23$ 
\end{NiceTabular}
\end{document}

您需要两次编译。

上述代码的输出

相关内容