似乎\rowcolors
用于 时{tabularx}
不能正常工作:要着色的第一行的具体编号将被忽略。对于普通 来说情况并非如此{tabular}
。
在这两个表中,着色都应从第三行开始。
\documentclass{article}
\usepackage{tabularx}
\usepackage[table]{xcolor}
\begin{document}
\begin{minipage}{0.45\textwidth}
\verb|{tabularx}| \\[2ex]
\rowcolors{3}{blue!50}{yellow!60}
\begin{tabularx}{40mm}{X}
1 \\ 2 \\ 3 \\ 4 \\ 5 \\ 6 \\
\end{tabularx}
\end{minipage}\hfill
\begin{minipage}{0.45\textwidth}
\verb|{tabular}| \\[2ex]
\rowcolors{3}{blue!50}{yellow!60}
\begin{tabular}{p{40mm}}
1 \\ 2 \\ 3 \\ 4 \\ 5 \\ 6 \\
\end{tabular}
\end{minipage}
\end{document}
xcolor
这是/中的一个错误吗tabularx
?
这个问题是我在带有不需要的黑色背景的表格单元格
答案1
显然tabularx
没有错误,这是一个有记录的功能。
TX
多次设置表,并恢复 latex 计数器,但 tex 原始计数器无法如此轻松地恢复。这定义了一个 latex 计数器来隐藏\newcount
由 定义的分配计数器xcolor
。
\documentclass{article}
\usepackage{tabularx}
\usepackage[table]{xcolor}
\newcounter{tblerows}
\expandafter\let\csname c@tblerows\endcsname\rownum
\begin{document}
\begin{minipage}{0.45\textwidth}
\verb|{tabularx}| \\[2ex]
\rowcolors{3}{blue!50}{yellow!60}
\begin{tabularx}{40mm}{X}
1 \\ 2 \\ 3 \\ 4 \\ 5 \\ 6 \\
\end{tabularx}
\end{minipage}\hfill
\begin{minipage}{0.45\textwidth}
\verb|{tabular}| \\[2ex]
\rowcolors{3}{blue!50}{yellow!60}
\begin{tabular}{p{40mm}}
1 \\ 2 \\ 3 \\ 4 \\ 5 \\ 6 \\
\end{tabular}
\end{minipage}
\end{document}
答案2
供参考,使用和{NiceTabular}
(及其在 中可用的内置命令),您可以直接获得预期的结果。{NiceTabularX}
nicematrix
\rowcolors
\CodeBefore
\documentclass{article}
\usepackage{nicematrix}
\usepackage{xcolor}
\begin{document}
\begin{minipage}{0.45\textwidth}
\verb|{NiceTabularX}| \\[2ex]
\begin{NiceTabularX}{40mm}{X}
\CodeBefore
\rowcolors{3}{blue!50}{yellow!60}
\Body
1 \\ 2 \\ 3 \\ 4 \\ 5 \\ 6 \\
\end{NiceTabularX}
\end{minipage}\hfill
\begin{minipage}{0.45\textwidth}
\verb|{NiceTabular}| \\[2ex]
\begin{NiceTabular}{p{40mm}}
\CodeBefore
\rowcolors{3}{blue!50}{yellow!60}
\Body
1 \\ 2 \\ 3 \\ 4 \\ 5 \\ 6 \\
\end{NiceTabular}
\end{minipage}
\end{document}
您需要多次编译(因为nicematrix
在后台使用 PGF/Tikz 节点)。