expl3 中的受保护扩展

expl3 中的受保护扩展

我试图了解是否存在适当的 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@edefexpl3原生”expl3材料要么完全可扩展,要么受引擎保护。因此,如果您确实需要混合 LaTeX2e 输入并在 中使用它expl3,则需要坚持使用 LaTeX2e 机制

\protected@edef \l_tmpa_tl { <stuff> }

相关内容