假设有一个名为的 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
全局更改/设置默认值?