我知道交替行颜色的最佳方法是使用\rowcolors{2}{}{}
,但在我的 .tex 文件上\usepackage[table]{xcolor}
不起作用,所以我尝试使用来达到相同的结果\if
。
我想插入 \foreach
以下内容:
\if
\i
为奇数,\rowcolor{grey!10}
否则为无。
我的代码如下。
\begin{table}
\begin{tabular}{cccccc}
\toprule
{} & {\bf Carbon} & {\bf Hydrogen} & {\bf Nitrogen} & {\bf Oxygen\tnote{a}} & {\bf pH}\\
\midrule
\foreach \M[count=\i] in {a,b,c,d}{
{\bf \M} & - & - & - & - & -\\
}
\bottomrule
\end {tabular}
\end {table}
结果应该如下所示。
答案1
我猜你遇到的问题是表格内的 for 循环。参见这里例如。
对于我的方法,我使用forloop
-package 来迭代数字/字母,并etoolbox
增强 linebreak 命令。MWE:
\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{booktabs}
\usepackage{forloop}
\usepackage{etoolbox}%for robustify
\def\tabledata{}
\def\lbr{\\}
\robustify\lbr%neverever expand
\newcounter{mynextrowc}
\newcommand\dummyrows[1]{%
\forloop{mynextrowc}{1}{\value{mynextrowc} < #1}{%
\edef\tabledata{\tabledata\alph{mynextrowc} & - & - & - & - & -\lbr}
}%
}
\begin{document}
\dummyrows{15}
\rowcolors{2}{gray!25}{white}
\begin{table}
\begin{tabular}{cccccc}
\rowcolor{gray!50}
\toprule
{} & {\bf Carbon} & {\bf Hydrogen} & {\bf Nitrogen} & {\bf Oxygen {a}} & {\bf pH}\\
\midrule
\tabledata
\bottomrule
\end{tabular}
\end{table}
\end{document}
输出: