将 \typeout 翻译为 LaTeX3

将 \typeout 翻译为 LaTeX3

该命令\typeout{argument}会扩展其参数并将结果写入日志和终端。编写l3build测试时,我寻找 LaTeX3 中的等效命令,但只找到了\iow_log:x和,\iow_term:x它本质上是两者的组合。

如何\typeout翻译成 LaTeX3?

答案1

在“内置” -x类型扩展原语很有用的情况下,例如\(pdf)strcmp,团队提供\<name>_x:n包装器。如果底层原语是可扩展的,则适用。在的情况下\typeout,没有可扩展的实现,因此这不是必需的。对于这些情况,设置了 -类型函数x的正常 -类型变体。在这种情况下,n\iow_term:x 正确的选择:这会写入终端和日志并进行x-type 扩展。(终端输出中的任何内容都在日志中,但反之则不然。)

\documentclass{article}
\usepackage{expl3}
\def\foo{bar}
\typeout{\foo}
\ExplSyntaxOn
\iow_term:x { \foo }
\stop

请注意\typeout适用于 LaTeX2e 稳健机制(设置 的行为\protect),而 LaTeX3x类型的扩展不具备此功能。因此,如果您要处理混合材料,并且它可能包含稳健命令,则应使用\typeout

相关内容