\use:n 起什么作用?

\use:n 起什么作用?

在 LaTeX3 中,有一些函数,如\use:n\use:nn等。在文档中,它们将删除每个参数周围的括号,并将剩余的标记保留在输入流中。所以

\use:n { some code }

导致输入流包含

some code

这和简单的使用有什么区别some code

答案1

与任何 TeX 编程一样,代码中需要吸收和重新发出标记expl3。我们可能至少有两个原因想要这样做。第一个原因是,当参数被吸收时会发生标记化。因此,我们可能想要切换类别代码设置并读取文件:

\use:n { \ExplSyntaxOff \file_input:n {#1} }

在上面,\file_input:n是单个标记,但在文件中,然后读取两者_并且:不是字母。

我们需要做的第二件常见事情是,处理一些无操作或类似操作的情况\use:n:为了方便起见,我们需要一个带括号的组,但不希望括号影响输出。因此

\if_meaning:w #1 #2
  \exp_after:wN \use_none:n
\else:
  \exp_after:wN \use:n
\fi:
  { tokens-here }

当测试为假时,将插入不带任何周围组的标记,否则将完全删除它们。

相关内容