colortbl 错误?彩色行中的“,”消失

colortbl 错误?彩色行中的“,”消失

我遇到了一个奇怪的问题colortbl。这是我的 LaTeX 输入:

\documentclass{article}

\usepackage{color, colortbl}

\begin{document}

%---

\definecolor{Gray}{gray}{0.8}

\begin{tabular}{r@{, }l }\hline
     december 10 & 2011 \\\rowcolor{Gray}
        april 06 & 2012 \\
  \hline
\end{tabular}

\end{document}

问题出现在第二行,第一列和第二列之间。那里的“,”不知为何消失了。第二行是彩色行,而第一行不是。问题不出现在第一行。那里的“,”被打出来了:内容显示正确。

答案1

这是一个绕过解决方案:将列定义为灰色,并对@{, }某些行使用明确的白色和灰色背景颜色。

这样\rowcolors就可以让交替自动发生。

\documentclass{article}

\usepackage[table]{xcolor}


\begin{document}


\definecolor{Gray}{gray}{0.8}



\begin{tabular}{>{\columncolor{Gray}[\tabcolsep][\tabcolsep]}r@{, }>{\columncolor{Gray}[\arrayrulewidth][\tabcolsep]}l}\hline
  \rowcolor{white}december 10 &  2011 \\
  \rowcolor{Gray} april 06 & 2012 \\
  \hline
\end{tabular}

\rowcolors{1}{white}{Gray}
\begin{tabular}{>{\columncolor{Gray}[\tabcolsep][\tabcolsep]}r@{, }>{\columncolor{Gray}[\arrayrulewidth][\tabcolsep]}l}\hline
december 10 &  2011 \\
april 06 & 2012 \\
  \hline
\end{tabular}

\end{document}

在此处输入图片描述

答案2

\rowcolor单独为行中的每个单元格着色,并使用 的值确定大小\tabcolsep。您添加的逗号和空格 会将@{, }两列之间的间隔从 给出的值缩小\tabcolsep;因此,您看到的是年份单元格的灰色背景覆盖了逗号。当删除逗号后的空格(即@{,}使用 )时,这一点很明显:

无空格的结果

解决方法:设置\tabcolsep0pt<{, }代替使用@{, }

\documentclass{article}
\usepackage{color, colortbl}
\begin{document}
\definecolor{Gray}{gray}{0.8}
\setlength{\tabcolsep}{0pt}
\begin{tabular}{r<{, }l}\hline
     december 10 & 2011 \\\rowcolor{Gray}
        april 06 & 2012 \\
  \hline
\end{tabular}
\end{document}

结果

替代方案:如果您想要默认外观\tabcolsep(即6pt),并且您不想像Christian Hupfer 的回答,您可以将所需的空间附加到第一列和最后一列:

\documentclass{article}
\usepackage{color, colortbl}
\begin{document}
\definecolor{Gray}{gray}{0.8}
\setlength{\tabcolsep}{0pt}
\begin{tabular}{>{\hspace{6pt}}r<{, }l<{\hspace{6pt}}}\hline
     december 10 & 2011 \\\rowcolor{Gray}
        april 06 & 2012 \\
  \hline
\end{tabular}
\end{document}

有悬垂的结果

答案3

使用,您可以直接获得预期的输出(因为使用 ,{NiceTabular}在构建主数组之前使用 PGF/Tikz 添加彩色面板)。nicematrixnicematrix

\documentclass{article}

\usepackage{nicematrix,color}

\begin{document}

\definecolor{Gray}{gray}{0.8}

\begin{NiceTabular}[colortbl-like]{r@{, }l }\hline
     december 10 & 2011 \\\rowcolor{Gray}
        april 06 & 2012 \\
  \hline
\end{NiceTabular}

\end{document}

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

上述代码的输出

相关内容