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包(CTAN)。它具有\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 節點)。

上述程式碼的輸出

相關內容