我可以暂时禁用 LaTeX3 中的 @@ 替换吗?

我可以暂时禁用 LaTeX3 中的 @@ 替换吗?

我正在尝试使用良好的做法来编写我的 L3 包,我理解这涉及使用@@定义命令和变量名称,然后用模块名称替换这些名称(第 3.2.2 节texdoc l3doc)。

但是,我有时需要在 L3 和 L2e 之间进行交互,而 L2e 代码中只是充斥着@s 和有时@@s(需要明确的是,这些来自我正在交互的其他代码,所以我没有选择)。

因此,我的问题是:有没有办法暂时禁用替换@@

如果没有,我目前的解决方法(比如,调用另一个包中定义的宏)是使用:

\use:c {commandWith@ @sInIt}

请注意 s 之间的多余空格@,由于 L3 习惯于忽略空格,所以它被删除了。我也会使用:c带有标记列表等的变体。

还有更好的吗?

答案1

你可以选择以下两种方式之一

  • 用来选择性地@@@@表示文字@@:这是内核本身需要定义的,例如\@@par

  • 使用%<@@=>关闭所有替换,直到重新启用使用%<@@=something>

相关内容