colortbl:\rowcolor 在表格中使用 \begin{tabular}{@{}ccc@{}}

colortbl:\rowcolor 在表格中使用 \begin{tabular}{@{}ccc@{}}

我正在尝试使用以下代码制作一个表格:

\begin{tabular}{@{}ccc@{}}
  \hline 
  \rowcolor[gray]{.9} a & b & c \\
  \hline
\end{tabular}

不幸的是,该\rowcolor命令似乎并不关心表中的空的前导和结束空格,即“前言”@{}中的“” tabular

非常欢迎任何解决此问题的建议。

答案1

\documentclass[a4paper,12pt]{article}
\usepackage{colortbl}
\newcolumntype{C}{c<{\kern\tabcolsep}@{}}
\begin{document}

\begin{tabular}{@{}CCc@{}}\hline 
  \rowcolor[gray]{.9}[0pt][0pt] a & b & c \\\hline
\end{tabular}
\end{document}

在此处输入图片描述

答案2

从该包的用户指南colortbl(提供命令\columncolor\rowcolor)中:

\rowcolor采用与 相同的参数形式\columncolor。它必须在行的开头使用。如果不使用可选的悬垂参数,则悬垂将默认为...\tabcolsep... [强调添加]

此处,长度\tabcolsep是列间空白宽度的一半,默认为 6pt。但是,将\rowcolor命令指定为

\rowcolor[gray]{.9}[][] % empty contents resolve to 0[pt]

我猜也不会产生您想要的结果,因为这会在表格的两个内部列中留下白色间隙。该colortbl包确实提供了一个\cellcolor命令,但不幸的是,该命令不接受左侧或右侧修剪选项,因此您将回到开始的位置。

简而言之,如果您坚持使用该\rowcolor命令,那么最好省略@{}规范最左侧和最右侧的说明符tabular

答案3

{NiceTabular}有了的环境nicematrix,您就能直接得到预期的结果。

\documentclass{article}
\usepackage{nicematrix}
\begin{document}

\begin{NiceTabular}{@{}ccc@{}}[colortbl-like]\hline 
\rowcolor[gray]{.9}a & b & c \\\hline
\end{NiceTabular}

\end{document}

您不需要,colortbl但您需要几个编译(因为nicematrix在引擎盖下使用 PGF/Tikz 节点)。

上述代码的输出

相关内容