我有一张如下的乳胶表
\documentclass[12pt]{report}
\usepackage{colortbl}
\begin{document}
\begin{table}
\centering
\begin{tabular}{|@{\,}c@{\,}|@{\,}c@{\,}|@{\,}c@{\,}|@{\,}c@{\,}|}
\hline
Column1 & Column2 & Column3 & Column4 \\
\hline
A & \cellcolor[gray]{0.5} & D & E \\
\hline
& & & F \\
\hline
& & & \\
\hline
\end{tabular}
\end{table}
\end{document}
单元格颜色与附近的列重叠。这可能是因为@{\,}
我使用了 tabular 来删除列中的文本填充(这是必需的,因为我的实际表格宽度更大)。有人知道在这种情况下如何防止单元格底纹与其他单元格重叠吗?
答案1
colortbl
添加填充宽度;您应该减少\tabcolsep
而不是使用:@{\,}
\tabcolsep
\documentclass[12pt]{report}
\usepackage{colortbl}
\begin{document}
\begin{table}
\centering
\setlength{\tabcolsep}{0.3em}
\begin{tabular}{|c|c|c|c|}
\hline
Column1 & Column2 & Column3 & Column4 \\
\hline
A & \cellcolor[gray]{0.5} & D & E \\
\hline
& & & F \\
\hline
& & & \\
\hline
\end{tabular}
\end{table}
\end{document}
答案2
供参考,使用{NiceTabular}
(nicematrix
使用键color-inside
--- 别名:)colortbl-like
,您可以直接获得代码的预期输出。
然而,正如 egreg 所说,解决您的问题的好方法是改变\tabcolsep
。
\documentclass[12pt]{report}
\usepackage{nicematrix}
\begin{document}
\begin{table}
\centering
\begin{NiceTabular}{|@{\,}c@{\,}|@{\,}c@{\,}|@{\,}c@{\,}|@{\,}c@{\,}|}[color-inside]
\hline
Column1 & Column2 & Column3 & Column4 \\
\hline
A & \cellcolor[gray]{0.5} & D & E \\
\hline
& & & F \\
\hline
& & & \\
\hline
\end{NiceTabular}
\end{table}
\end{document}
您需要多次编译。