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)には、色を含む現在の行のすべてのプロパティを変更できるコマンドがあります。これを使用すると、Adobe 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 ノードが使用されるため)。

上記コードの出力

関連情報