我正在编写一个包,它包含一堆值,这些值大多数时候都是相同的,但在某些情况下我可能需要更改它们。我想通过给这个包一个可选参数来实现这一点,就像 geometry 那样:
\usepackage[margin=2cm]{geometry}
我该如何做这件事?
答案1
这kvoptions
包让你可以定义键=值样式选项。它“将包 keyval 与 LATEX 的包和类选项连接起来”(引自手册)。
然后,您可以声明如下选项margin
:
\DeclareStringOption [<init>]{<key>}[<default>]
were<init>
是初始值(在未使用选项时也使用),<key>
代表选项名称和在未使用值(而不是)<default>
的情况下使用选项时的默认值。如果没有给出默认值,则选项需要一个值,这对于例如这样的选项来说是有意义的。foobar
foobar=<value>
margin
这pgfopts
包是一种替代方案,使用pgfkeys
包,即 PGF/TikZ 的键值引擎,在我看来它比keyval
或更强大、更灵活xkeyval
。
请注意,带空格的键不支持作为包或类选项,因为内部 LaTeX 宏会在上述包接收它们之前从选项中删除所有空格。