(1).
\int_new:N \l_loop_var
\int_step_variable:nnNn {10} {20} \l_loop_var {
这是第~\l_loop_var~个数\par
}
其实你这里的第一行没有意义
可以看到,\int_step_variable:nnNn
需要的第三个参数需要接受一个 tl
类型 token,在循环的时候将每一次待循环的值赋给它, 他甚至不需要被定义.
在 LaTeX3 中有些变量是基于宏实现,还有一部分是基于寄存器实现,前者可以直接使用,后者则需要在前面加上 \xxx_use:
, 类似的在 TeX
中也有体现
\def\cmd{aaa}
\cmd % normally
\newcount\mycnt
\mycnt=1
\mycnt % error
\the\mycnt % normally
(2).
传入参数 #1
时 是指循环体内部的 {#1}
? 这里的 {}
可有可无.
(3).
个人感觉分场景吧, 如果你的循环在函数定义的内部, 那么循环体内部的 #
容易和函数定义中的 #
混淆, 因此循环体内部的 #
需要加倍, 如果嵌套比较深的情况下 ########1
这种东西一长串的虫子会比较恶心, 而使用 \int_step_variable
可以避免.
问 latex3中关于循环语句的疑惑