使用 @{} 删除空格时的行颜色

使用 @{} 删除空格时的行颜色

当使用 删除表格两侧的空间时@{},使用 添加的颜色\rowcolors将超出表格的宽度。在提供答案对于类似的问题,可以通过放置@{\kern\tabcolsep}而不是 来解决这个@{}问题。但这相当于@{}从代码中删除,所以我并不认为这是一个解决方案。还有其他方法可以将行颜色限制为表的宽度吗?

\documentclass{article}
\usepackage[table]{xcolor}
\begin{document}
\rowcolors{2}{}{gray}
\begin{tabular}{@{}*4{l}@{}}
\hline
1 & 2 & 3 & 4\\
5 & 6 & 7 & 8\\
1 & 2 & 3 & 4\\
5 & 6 & 7 & 8\\
\end{tabular}
\end{document}

在此处输入图片描述

答案1

\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{array}
\begin{document}
\rowcolors{2}{}{gray}
\begin{tabular}{@{}>{\columncolor{white}[0pt][\tabcolsep]}lll>{\columncolor{white}[\tabcolsep][0pt]}l@{}}
\hline
1 & 2 & 3 & 4\\
5 & 6 & 7 & 8\\
1 & 2 & 3 & 4\\
5 & 6 & 7 & 8\\
\end{tabular}
\end{document}

在此处输入图片描述

答案2

使用{NiceTabular}nicematrix您将直接获得预期的输出(并且您将不会看到 Ulrike Fisher 的答案中出现的细白线)。

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

\begin{NiceTabular}{@{}*4{l}@{}}
\CodeBefore
  \rowcolors{2}{}{gray}
\Body
\hline
  1 & 2 & 3 & 4\\
  5 & 6 & 7 & 8\\
  1 & 2 & 3 & 4\\
  5 & 6 & 7 & 8\\
\end{NiceTabular}
\end{document}

您需要多次编译(因为nicematrix在后台使用 PGF/Tikz 节点)。

上述代码的输出

相关内容