我正在尝试使用良好的做法来编写我的 L3 包,我理解这涉及使用@@
定义命令和变量名称,然后用模块名称替换这些名称(第 3.2.2 节texdoc l3doc
)。
但是,我有时需要在 L3 和 L2e 之间进行交互,而 L2e 代码中只是充斥着@
s 和有时@@
s(需要明确的是,这些来自我正在交互的其他代码,所以我没有选择)。
因此,我的问题是:有没有办法暂时禁用替换@@
?
如果没有,我目前的解决方法(比如,调用另一个包中定义的宏)是使用:
\use:c {commandWith@ @sInIt}
请注意 s 之间的多余空格@
,由于 L3 习惯于忽略空格,所以它被删除了。我也会使用:c
带有标记列表等的变体。
还有更好的吗?
答案1
你可以选择以下两种方式之一
用来选择性地
@@@@
表示文字@@
:这是内核本身需要定义的,例如\@@par
使用
%<@@=>
关闭所有替换,直到重新启用使用%<@@=something>