我有一张带有单元格颜色的工作表:
\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}
我知道它并不漂亮,但它确实有效——用于行分隔=)。