![为什么 \CurrentOption 与 \l_keys_key_tl 不同?](https://linux22.com/image/407513/%E4%B8%BA%E4%BB%80%E4%B9%88%20%5CCurrentOption%20%E4%B8%8E%20%5Cl_keys_key_tl%20%E4%B8%8D%E5%90%8C%EF%BC%9F.png)
我正在尝试使用 构建一个类expl3
。该类使用 管理其自己的选项l3keys2e
。我的类(假设它被称为myclass
)基于它加载的另一个类。这个基类(假设它被称为baseclass
)是一个遗留的 latex2e 类。我需要将一些选项传递给baseclass
,并且我想在处理传递给 的选项时设置它们myclass
。为此,我调用了\PassOptionsToClass
由 执行的选项管理代码l3keys2e
\ProcessKeysOptions
。处理完 中的选项后myclass
,我将baseclass
通过加载\LoadClass{baseclass}
。
现在,有些事情我不清楚。在处理 中的选项时myclass
,当前选项应该在 中\l_keys_key_tl
。但是,如果我\PassOptionsToClass{\l_keys_key_tl}{baseclass}
这样做,则不起作用。该选项已传递,但它在 中仍未使用,baseclass
好像无法识别它一样。相反,如果l3keys
我在某些代码部分使用\PassOptionsToClass{\CurrentOption}{baseclass}
它,则它可以工作(尽管代码\CurrentOption
中的使用l3keys
完全没有记录)。
奇怪的是,如果我检查\l_keys_key_tl
和的内容,\CurrentOption
它们\show
在终端上显示为一模一样。因此,我相信它们在字符的 catcode 上一定有所不同。但为什么会这样呢?