使用 \if 交替 \rowcolor

使用 \if 交替 \rowcolor

我知道交替行颜色的最佳方法是使用\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}

输出:

在此处输入图片描述

相关内容