我如何制作一个接受可选参数的包?

我如何制作一个接受可选参数的包?

我正在编写一个包,它包含一堆值,这些值大多数时候都是相同的,但在某些情况下我可能需要更改它们。我想通过给这个包一个可选参数来实现这一点,就像 geometry 那样:

\usepackage[margin=2cm]{geometry}

我该如何做这件事?

答案1

kvoptions包让你可以定义键=值样式选项。它“将包 keyval 与 LATEX 的包和类选项连接起来”(引自手册)。

然后,您可以声明如下选项margin

\DeclareStringOption [<init>]{<key>}[<default>]

were<init>是初始值(在未使用选项时也使用),<key>代表选项名称和在未使用值(而不是)<default>的情况下使用选项时的默认值。如果没有给出默认值,则选项需要一个值,这对于例如这样的选项来说是有意义的。foobarfoobar=<value>margin

pgfopts包是一种替代方案,使用pgfkeys包,即 PGF/TikZ 的键值引擎,在我看来它比keyval或更强大、更灵活xkeyval

请注意,带空格的键不支持作为包或类选项,因为内部 LaTeX 宏会在上述包接收它们之前从选项中删除所有空格。

相关内容