我遇到了一个奇怪的问题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
;因此,您看到的是年份单元格的灰色背景覆盖了逗号。当删除逗号后的空格(即@{,}
使用 )时,这一点很明显:
解决方法:设置\tabcolsep
为0pt
并<{, }
代替使用@{, }
:
\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 添加彩色面板)。nicematrix
nicematrix
\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 节点)。