我正在编写的一个软件包正在取得进展expl3
,因此对这个问题有很多疑问,但我正在阅读@egreg 的回答到在增强和构建其他人提供的包的密钥时的最佳做法是什么@egreg 指出
.code:n
应该是最后的手段
在设置l3keys
键值时。这在 2023 年是否仍然适用(问题/答案来自 2013 年),如果是,请问这是为什么?LaTeX3 接口文档(第 239 页)没有解释其缺点,只是介绍一下。
答案1
尽管我很痛苦地同意 egreg 的观点,.code
但这只是“任意的东西”,所以你会失去自我记录的性质,并且在某些情况下失去对更具体形式的内置检查。
a .tl_set:N = ...,
告诉您键 a 接受一个值并将其存储在局部变量中。
a.code:n ={....}
只是告诉您有一把钥匙,然后会发生一些事情,您需要阅读...才能知道到底是什么。
它是最通用和最强大的形式,但如果您使用它来设置(比如说)一个布尔值,您可能会忘记内置的一些检查细节,如果您没有忘记,添加的代码会掩盖密钥正在做什么,所以如果有预先存在的密钥类型,使用它会更简单。