我是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 |
--------+---+---+---+

有人知道这样的事情是否可行?

谢谢!

有帮助吗?

解决方案

谷歌阿姨说

其他提示

只需将以下内容添加到新命令中,并确保使用包 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}

您可以使用 \ loop \ repeat 标记。或 multido 包。

当然有可能。你也可以复发。 eplain中有迭代宏,例如,参见这里。 / p>

另一种可能性(如果你像我一样懒惰)是 perltex

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top