使用 keyval-interface 设置默认值 - 在当前范围内执行还是全局执行?

使用 keyval-interface 设置默认值 - 在当前范围内执行还是全局执行?

假设有一个名为的 LaTeX 2e 宏,\foo它通过 keyval-syntax 处理一个可选参数的内容。

例如,\foo[key1=value1, key2=value2,...,\keyN=valueN]

我也想要一个宏
\setfoodefaults{key1=value1, key2=value2,...,\keyN=valueN}

这样
\setfoodefaults{key1=foo, key2=bar,...,\keyN=baz}
调用后的结果
\foo %
将与调用时的结果相同
\foo[key1=foo, key2=bar,...,\keyN=baz]%

换句话说:\setfoodefaults您可以通过设置每个键的默认值。当可选参数的键值列表中根本没有指定相关键时,应应用此类默认值\foo

(请注意,在键值列表中完全不指定键与指定没有值的键不同:在后一种情况下,\define@key将使用通过相应命令指定的默认值。我在指定在进一步情况下要使用的(其他)默认值之后。)

问题是:

哪种做法更好:

宏是否应\setfoodefaults仅在当前范围/组内更改/设置默认值?

宏是否应该\setfoodefaults全局更改/设置默认值?

相关内容