如何创建具有交替颜色的表格行组?

如何创建具有交替颜色的表格行组?

问题。当对表格进行着色时,对偶数行/奇数行使用不同的颜色是很常见的,可以使用xcolor包。但是,我不希望每行都有交替的颜色,而是每行组

例子。以下示例是最低限度的工作。我有一个宏\writerow来输出表格行(因为原始文件中的很多信息都是自动生成的),还有第二个宏\setgroup来将组设置为1(白色背景)或2(灰色背景)。为了存储此信息,有一个宏\rc(读取“行颜色”)。

\documentclass{standalone}

\usepackage{ifthen}
\usepackage{colortbl}

\begin{document}

%
% Macros

\newcommand\rc{0.8}
\newcommand\setgroup[1]{
        \ifthenelse{\equal{#1}{1}}{
                \renewcommand\rc{1.0}
        }{
                \renewcommand\rc{0.8}
        }
}
\newcommand\writerow[1]{
        \\ \rowcolor[gray]{\rc} #1
}

%
% Data

\begin{tabular}{l}
\textbf{Header}
        \setgroup{1}
                \writerow{Zeile 1}
                \writerow{Zeile 2}
        \setgroup{2}
                \writerow{Zeile 3}
                \writerow{Zeile 4}
\end{tabular}

\end{document}

假设。示例可以正常运行;但是,每行都显示为灰色,这意味着无法\renewcommand\rc正常运行。为什么?

可能是范围的问题。但我在该文档中看到的唯一范围是环境范围tabular,这应该不是问题,因为所有操作都发生在环境内部。

我的错误在哪里?提前感谢您的帮助!

答案1

表格的每个单元格都是一个范围,因此您需要将命令设为全局命令。使用\gdef而不是\renewcommand因为 LaTeX 不提供全局设置的 LaTeX 界面。

相关内容