表格单元格底纹与邻近单元格重叠

表格单元格底纹与邻近单元格重叠

我有一张如下的乳胶表

\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}

您需要多次编译。

上述代码的输出

相关内容