\tl_use:N 是必需的、推荐的还是可选的?

\tl_use:N 是必需的、推荐的还是可选的?

source3.pdf我读

\tl_use:N ⟨tl var⟩

恢复 ⟨tl var⟩ 的内容并将其直接放入输入流中。如果变量不存在或无效,则会引发错误。请注意,可以直接使用 ⟨tl var⟩,而无需访问器函数。

建议\tl_use:N \l_tmpa_tl与简单地调用相同\l_tmpa_tl,并且两者均可工作 - 据我所知 - 没有区别。所以我想知道是否建议在前缀中使用\tl_use:N?这两种变体之间有什么区别吗?

答案1

中的所有变量类型expl3都有访问函数。对于 类型tl,这不是必需的:您可能知道,atl是用于存储(无参数)的 TeX 宏,而 TeX 本身允许直接使用宏。(相比之下,其他一些expl3变量类型是 TeX 寄存器,因此要求访问器。)变量的记录行为tl是它们可以在没有访问器的情况下使用:这在需要低级扩展时特别有用,例如

\exp_after:wN \foo:w \l_some_tl \q_stop

与未定义的情况下直接使用名称相比,该函数\tl_use:N确实提供了更有用的错误消息:tltl

! Undefined control sequence.
<argument> \LaTeX3 error: 
                           Erroneous variable \foo used!

但除此之外,与直接使用变量几乎没有什么区别。使用访问器会对性能造成轻微影响,而且团队一般更喜欢直接使用变量。另一方面,访问器确实使代码的含义清晰且与其他类型一致:这就是它存在的原因。

因此,人们可以自由地使用或省略\tl_use:N遵循“良好风格”的代码expl3

相关内容