\rowcolor 和自定义列分隔符

\rowcolor 和自定义列分隔符

当我使用时\rowcolor,列之间的自定义分隔符不受影响:

\documentclass{article}

\usepackage{xcolor}
\usepackage{colortbl}

\begin{document}
    \begin{tabular}{p{1cm}!{-}p{1cm}}
        \rowcolor{gray} foo & bar
    \end{tabular}
\end{document}

-尽管整行应该是灰色的,但背景却是白色的。我该如何修复?

答案1

有几种可能。抱歉,界面太差劲了,但这并不完全是我的错。

在此处输入图片描述

\documentclass{article}

\usepackage{xcolor}
\usepackage{colortbl}

\begin{document}
    \begin{tabular}{p{1cm}!{-}p{1cm}}
        \rowcolor{gray} foo & bar
    \end{tabular}

\bigskip

    \begin{tabular}{p{1cm}!{-}p{1cm}}
        \rowcolor{gray}
        \multicolumn{1}{p{1cm}!{\fboxsep=0pt\colorbox{gray}{\strut-}}}{foo} & bar
    \end{tabular}


\bigskip

    \begin{tabular}{p{1cm}!{-}p{1cm}}
    \rowcolor{gray}
    \multicolumn{1}{>{\columncolor{gray}[\tabcolsep][15pt]}p{1cm}!{-}}{foo}& bar
    \end{tabular}

\end{document}

答案2

{tabular}供参考。如果您使用{NiceTabular}nicematrix及其键)而不是color-inside,那么您将直接获得预期的输出(因为nicematrix使用 PGF/TikZ 为行添加颜色)。

\documentclass{article}
\usepackage{xcolor}
\usepackage{nicematrix}

\begin{document}
    \begin{NiceTabular}{p{1cm}!{-}p{1cm}}[color-inside]
        \rowcolor{gray!50} foo & bar
    \end{NiceTabular}
\end{document}

您需要多次编译。

上述代码的输出

相关内容