该命令\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
。