rowcolor 删除表格的垂直线

rowcolor 删除表格的垂直线

编译(使用 pdflatex)以下内容后

\documentclass[12pt]{amsart}
\usepackage{amsmath,amsthm,amssymb,amsxtra,amsopn}
\usepackage{xcolor}
\usepackage{colortbl}
\usepackage{etoolbox}
\begin{document}
\begin{tabular}{|c|c|c|}
\hline
\rowcolor{lime!20}Item 1 & Item 2 & Item 3 \\
\hline
text & text & text\\
\hline
\end{tabular}
\end{document}

表格的某些边框不可见。放大后,边框可见。在使用\rowcolor\cellcolor命令处理此类表格时,我观察到这种奇怪的行为。如何修复代码,以便输出表的边框在不缩放的情况下可见。

答案1

另一个选择是新tabularray方案(加拿大运输安全局)。它有一个命令\SetRow,您可以使用它来修改当前行的所有属性,包括颜色。使用该命令,垂直线在 Adob​​e Acrobat Reader 中显示正确。

正确的垂直线

\documentclass[12pt]{amsart}
\usepackage{amsmath,amsthm,amssymb,amsxtra,amsopn}
\usepackage{xcolor}
\usepackage{colortbl}
\usepackage{etoolbox}
\usepackage{tabularray}

\begin{document}
    rowcolor solution
    
    \begin{tabular}{|c|c|c|}
        \hline
        \rowcolor{lime!20}Item 1 & Item 2 & Item 3 \\
        \hline
        text & text & text\\
        \hline
    \end{tabular}
    \vspace{1cm}
    
    tabularray solution
    
    \begin{tblr}{|c|c|c|}
        \hline
        \SetRow{lime!20} Item 1 & Item 2 & Item 3 \\
        \hline
        text & text & text\\
        \hline
    \end{tblr}
\end{document}

注意:包具有不同的(更好的)默认间距,您可以根据需要使用rowsep和键进行修改。colsep

编辑:我不太清楚是什么原因造成的,但是垂直解决方案中彩色单元格的水平线宽度并不完全相同colortbl。似乎tabularray“编码”更胜一筹,因为无论缩放级别如何,它都不会造成任何瑕疵。

正如 Zarko 在他的评论中指出的那样,该tabularray包还支持一个非常好的键值接口用于格式化。

\begin{tblr}{
        hlines, vlines, cells = {c}, 
        row{1} = {bg=lime!20},
    }
    Item 1 & Item 2 & Item 3 \\ 
    text   & text   & text   \\     
\end{tblr}

答案2

您可以使用{NiceTabular}nicematrix无论您使用哪种 PDF 查看器(和缩放级别),规则似乎都不会消失。

\documentclass[12pt]{amsart}
\usepackage[table]{xcolor}
\usepackage{nicematrix}

\begin{document}

With \verb|{tabular}| (and \verb|colortbl|).

\medskip
\begin{tabular}{|c|c|c|}
\hline
\rowcolor{lime!20}Item 1 & Item 2 & Item 3 \\
\hline
text & text & text\\
\hline
\end{tabular}


\vspace{1cm}

With \verb|{NiceTabular}| of \verb|nicematrix|.

\medskip
\begin{NiceTabular}{|c|c|c|}[colortbl-like]
\hline
\rowcolor{lime!20}Item 1 & Item 2 & Item 3 \\
\hline
text & text & text\\
\hline
\end{NiceTabular}

\end{document}

您需要多次编译(因为nicematrix在后台使用 PGF/Tikz 节点)。

上述代码的输出

相关内容