我是LaTeX的新手,我必须说我真的很挣扎。我发现了\ newcommand命令,它有点像常规编程语言中的函数/方法。你可以给它参数和一切。
我很想知道,我可以以某种方式迭代LaTeX吗?基本上,我想要做的是创建一个N + 1列的表,其中第一行只包含一个空白单元格,然后是其他列中的数字1,2,...,N。我只想把N作为这个'function'(newcommand)的参数。
这是一个可能看起来像我正在寻找的东西的例子(虽然显然这不起作用):
\newcommand{\mytable}[2]{ \begin{tabular}{l|*{#1}{c|}} % table with first argument+1 columns for(int i = 1; i <= #1; i++) "& i" % 'output' numbers in different columns \\\hline letters & #2 % second argument should contain actual content for row \\\hline \end{tabular} }
用以下方式调用:
\mytable{3}{a & b & c}
输出应为:
| 1 | 2 | 3 | --------+---+---+---+ letters | a | b | c | --------+---+---+---+
有人知道这样的事情是否可行?
谢谢!
答案 0 :(得分:3)
谷歌阿姨说yes。
答案 1 :(得分:3)
您可以使用\loop
或\repeat
令牌。或multido
包。
答案 2 :(得分:3)
只需将以下内容添加到新命令中,并确保使用包ifthen
。
\begin{tabular}{l|*{10}{c|}}
\newcounter{count}
\whiledo{\value{count}<10}{
\ifthenelse{\value{count}=0}{}{\the\value{count}}
\ifthenelse{\value{count}<9}{&}{\\}
\stepcounter{count}
}
letters&a&b&c&d&e&f&g&h&i\\
\end{tabular}
答案 3 :(得分:2)
当然有可能。你也可以复发。 eplain中有迭代宏,例如here。
答案 4 :(得分:2)
另一种可能性(如果你像我一样懒惰)是perltex