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, которую вы можете использовать для изменения всех свойств текущей строки, включая цвет. Используя ее, вертикальные линии отображаются правильно в 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"кодирование" лучше, так как оно не вызывает никаких артефактов независимо от уровня масштабирования.

Как отметил Зарко в своем комментарии, 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).

Вывод кода выше

Связанный контент