我想知道是否可以制作执行以下操作的 LaTex 命令:
该命令的参数是 1)某个整数(我们将其称为 n,以供参考),2)颜色名称,3)稍后要调用的某个用户提供的命令的名称,以及该命令的任何(可能是可选的)参数。
此命令的上下文是,它始终预期在表格中一行的开头使用,并且它将执行的操作是在它所\rowcolor
在的位置调用,并且还将为它后面的所有行调用相同的命令\rowcolor
,从而创建一个行块,这些行都具有相同的背景颜色,从调用命令的行开始。但是,在对 n 进行着色之后额外的行,然后在下一行的开头调用自定义命令及其参数(反过来,这可能会再次调用这个新命令)。如果颜色参数为空,则不应使用背景颜色。如果命令参数为空,则在 n+1 行着色后应停止着色。
如果在某行的开头调用块着色命令而该命令仍然位于某个彩色块内,则它应该立即中止对该块进行的任何行计数(以及不调用可能已提供的命令),然后启动一个新的。
还应该有第二个命令,可以在长表的表头行开头使用,例如,它将暂时暂停当前块的行计数,而不是尝试为否则会发生的整行着色(尽管这个命令后面可以跟一个它\rowcolor
自己的命令,例如,如果有人想给标题行涂上不同的颜色)。
然后可以轻松地使用这两个命令来定义任意大小的背景颜色块,并在该表中使用任意数量的颜色,定义它们想要按顺序使用的每个彩色块,指定它在完成后调用下一个,然后可能循环回到第一个。
然后,只需在希望开始着色的行的开头调用第一组的命令,然后因为可以定义每个颜色块以在完成后按顺序调用下一个颜色块,所以您可以创建一个循环,其中包含 2、3 或您想要的任意多种背景颜色,并在整个表格中使用,并且每个颜色块可以具有自定义大小(不一定只有一行)。使用上面提到的第二个命令,您可以轻松地将多页表格的标题设置为不同的颜色(或无色),否则它不会影响表格其余部分行的颜色。
所以我可以做的是类似以下的事情(如果我搞乱了任何语法,请深表歉意......我仍然在学习 TeX 和 LaTex,并且对于定义自己的命令的概念仍然很陌生):
\newcommand{\colorgroupone}{\blockColor{2}{}{\colorgrouptwo}}
\newcommand{\colorgrouptwo}{\blockColor{1}{lightgray}{\colorgroupthree}}
\newcommand{\colorgroupthree}{\blockColor{0}{gray}{\cologroupone}}
(我只希望我没有把语法搞得太乱,以免无意中混淆了我想要做的事情)...
无论如何,然后可以在表格中某一行的开头使用该\colorgroupone
命令,然后循环三种背景颜色,前三行没有背景颜色,然后是两行浅灰色,接着是一行深灰色,然后再循环回到第一组。