在下面的代码中,我打算实现一个循环,该循环调用一个宏,该宏在每次传递时增加计数寄存器,然后显示两者和循环控制变量\a
的值。\a
\newcount\a\newcount\counter
\def\test{\advance\a by 2 \the\a \quad\the\counter\par}
\loop\advance\counter by 1\ifnum\counter<20 {\test}\repeat
\bye
结果(如下)显示,宏始终被视为\a
之前未定义。如何在宏中更新全局计数器(以使输出读取(2 1, 4 2, 6 3,...))?
2 1
2 2
2 3
2 4
2 5
...
答案1
答案2
答案是调用\test
时不要将其括在括号中。