在xparse定义的\foo
命令中用group_begin:
和group_end:
界定局部作用域后声明局部变量\l_course_sep_tl
,为什么重复使用\foo
命令会报错提示变量已经定义?
The following is MWE:
\documentclass{article}
\begin{document}
\ExplSyntaxOn
\NewDocumentCommand{\foo}{}{
\group_begin:
\tl_new:N \l_course_sep_tl
\group_end:
}
\ExplSyntaxOff
\foo,\foo
\end{document}
Control sequence \l_course_sep_tl already defined.
Additional, 我却可以不声明直接\tl_set:N \l_course_sep_tl
,但总觉得怪怪的.
参见texdoc interface3
这是expl3的规则。new是全局的。不能重复new。
这个错误与 https://ask.latexstudio.net/ask/question/17353.html 回答中出现的错误一致。哈哈
我的理解: