在设置 LaTeX3 键时,`.code:n` 是否仍然是最后手段?如果是,为什么?

在设置 LaTeX3 键时,`.code:n` 是否仍然是最后手段?如果是,为什么?

我正在编写的一个软件包正在取得进展expl3,因此对这个问题有很多疑问,但我正在阅读@egreg 的回答在增强和构建其他人提供的包的密钥时的最佳做法是什么@egreg 指出

.code:n应该是最后的手段

在设置l3keys键值时。这在 2023 年是否仍然适用(问题/答案来自 2013 年),如果是,请问这是为什么?LaTeX3 接口文档(第 239 页)没有解释其缺点,只是介绍一下。

答案1

尽管我很痛苦地同意 egreg 的观点,.code但这只是“任意的东西”,所以你会失去自我记录的性质,并且在某些情况下失去对更具体形式的内置检查。

a .tl_set:N = ...,告诉您键 a 接受一个值并将其存储在局部变量中。

a.code:n ={....}只是告诉您有一把钥匙,然后会发生一些事情,您需要阅读...才能知道到底是什么。

它是最通用和最强大的形式,但如果您使用它来设置(比如说)一个布尔值,您可能会忘记内置的一些检查细节,如果您没有忘记,添加的代码会掩盖密钥正在做什么,所以如果有预先存在的密钥类型,使用它会更简单。

相关内容