我试图了解是否存在适当的 expl3 方法来实现与 latex2e 相同的结果,即在尊重latex2e 机制的\protected@edef
同时扩展令牌列表。\protect
使用带有“x”类型参数的 expl3 函数(例如\tl_gset:Nx
)似乎会扩展所有内容,而忽略 latex2e 保护机制。
我似乎可以通过以下方式实现预期目标手动复制所应用的机制\protected@edef
,即\tl_set:Nn \protect { \noexpand\protect\noexpand }
在“x”扩展之前(例如,在之前\tl_gset:Nx
)执行右操作,但我想知道这是否是首选方法,或者是否有更优雅的替代方法。
答案1
没有与 相当的东西,因为\protected@edef
“expl3
原生”expl3
材料要么完全可扩展,要么受引擎保护。因此,如果您确实需要混合 LaTeX2e 输入并在 中使用它expl3
,则需要坚持使用 LaTeX2e 机制
\protected@edef \l_tmpa_tl { <stuff> }