使用 \cellcolor 进行填充/间距

使用 \cellcolor 进行填充/间距

我有一张带有单元格颜色的工作表:

\newcommand{\ye}{\cellcolor{yellow}}
\newcommand{\re}{\cellcolor{red}}
\begin{tabular}{l l l}
        & A        & B\\
Test1   & \gr Good & \re Bad \\
test2   & \ye OK   & \re Bad \\
test3   & \gr Good & \re Good \\
\end{tabular}

然而,如果颜色之间有一些间距,那么可读性就会大大提高,就像第二页的例子一样官方指南

根据第 4.3 节和第 4.1 节本指南我都尝试过了:

\newcommand{\gr}{\cellcolor{green}[0.5\tabcolsep][0.5\tabcolsep]}
\newcommand{\gr}{\cellcolor{green}[0.5\tabcolsep]}

当我编译时,这两个都会引发这两个错误(多次)。

! Missing number, treated as zero.
! Illegal unit of measure (pt inserted).

如果我尝试任何

\newcommand{\gr}{\cellcolor{green}[0.5][0.5]}
\newcommand{\gr}{\cellcolor{green}[0.5]}

文本 [0.5][0.5] 只是作为普通文本插入。

所以我的问题是:如何向 \cellcolor 命令添加填充/间距,以便在单元格之间实现一个小的白色边框?最好能够分别控制垂直和水平填充

答案1

\tabcolsep长度所以你可以设置

\setlength\tabcolsep{5pt}

表格设置列间距,然后使用更小数量(例如0pt在颜色可选参数中,所以也许

\cellcolor{green}[1pt]

请注意,它必须有一个单位,而pt不是像您问题中的例子那样是一个数字。

答案2

我找到了一个半解决方案。它只解决了垂直间距问题,而且有点不靠谱。

解决方案是使用\midrule中定义的booktabs来创建间距。普通的\hrule\hline不起作用。要避免黑色标尺,只需使用 将其变为白色,\arrayrulecolor{white}这样整个表格看起来就会像这样:

\newcommand{\gr}{\cellcolor{green}}
\newcommand{\ye}{\cellcolor{yellow}}
\newcommand{\re}{\cellcolor{red}}
\arrayrulecolor{white}
\begin{tabular}{l l l}           \toprule
        & A        & B        \\ \toprule
\arrayrulecolor{white}
Test1   & \gr Good & \re Bad  \\ \midrule
test2   & \ye OK   & \re Bad  \\ \midrule
test3   & \gr Good & \gr Good \\ 
\arrayrulecolor{black}           \bottomrule
\end{tabular}

我知道它并不漂亮,但它确实有效——用于行分隔=)。

相关内容