【问题标题】:Can you iterate in LaTeX?你可以在 LaTeX 中迭代吗?
【发布时间】:2008-12-31 02:01:59
【问题描述】:

我是 LaTeX 的新手,我必须说我真的很挣扎。我发现 \newcommand 命令有点像常规编程语言中的函数/方法。你可以给它参数和一切。

我想知道,我可以在 LaTeX 中以某种方式进行迭代吗?基本上,我想做的是创建一个包含 N+1 列的表,其中第一行只包含一个空白单元格,然后在其他列中包含数字 1、2、...、N。我只想将 N 作为这个“函数”(新命令)的参数。

这是一个可能看起来像我正在寻找的东西的示例(尽管显然这不起作用):

\newcommand{\mytable}[2]{
\begin{tabular}{l|*{#1}{c|}} % 表,第一个参数+1 列
  for(int i = 1; i 

调用它:

\mytable{3}{a & b & c}

输出应该是:

 | 1 | 2 | 3 |
--------+---+---+---+
字母 |一个 |乙 | c |
--------+---+---+---+

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

谢谢!

【问题讨论】:

  • 因为 LaTeX 是 TeX 的宏包,而且 TeX 是图灵完备的,所以应该可以,虽然你需要一些严重的 TeX hacking
  • iteration in latex 的可能重复项

标签: latex


【解决方案1】:

只需将以下内容变成一个新命令,并确保使用包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}

【讨论】:

    【解决方案2】:

    谷歌阿姨说yes

    【讨论】:

    • 该代码要求用户命名计数器,这意味着嵌套循环很脆弱。
    【解决方案3】:

    您可以使用\loop\repeat 令牌。或multido 包。

    【讨论】:

      【解决方案4】:

      当然可以。你也可以复发。 eplain 中有迭代宏,例如,请参见 here

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-11-19
          • 2011-03-17
          • 2019-03-28
          • 2020-04-23
          • 2020-05-21
          相关资源
          最近更新 更多