假设我想使用一个包l3keys
对于它的选项,例如我想使用打印数字siunitx
的\num
。我用我想要的默认选项加载它(例如只是\usepackage{siunitx}
),但有一个重复的用例,其中我想将许多不同的设置传递给\num
。我不想每次都输入所有选项,而是有一个自定义的快捷键来为我完成它(例如\num[foo]{<number>}
。我应该只\DeclareKeys
在序言中使用吗?例如
\DeclareKeys[siunitx]{
foo .meta:n = {
round-mode = figures ,
round-precision = 3 ,
exponent-mode = scientific ,
},
}
此宏的文档位于clsguide.pdf
并且没有提到usrguide.pdf
这让我不确定它是否适合这样的用例。向“命名空间”添加键也感觉有点奇怪siunitx
,但我猜这对于预期用途来说是不可避免的。
答案1
pgf
向包命名空间添加键在概念上与声明键时的操作完全相同.style
,只是您可能没有注意到它。(我同意这很可能应该记录下来,并指导什么是良好做法。)
具体来说,如果您想直接添加到,siunitx
那么您可以使用\DeclareKeys
,但我认为最好将其视为 API 的“程序员”使用并\keys_define:nn
在上下文中使用\ExplSyntaxOn
。(所有siunitx
程序员 API 都是正式记录的,因此您可以依赖此命名空间中的键的名称 - 手册中明确提到了这一点。)