LaTeX3:如何访问包选项

LaTeX3:如何访问包选项

在我的包中,我打算用 expl3 语法来编写,如何通过来访问在文档级别传递给它的选项列表\usepackage[<option list>]{my-l3-pkg}

我或多或少知道如何使用l3keys包提供的函数来定义和设置键。我还不知道哪个变量保存着<option list>我可以传递给的内容\keys_set:..

有没有可以替代 LaTeX2e 函数\DeclareOption和的函数\ProcessOptions

答案1

首先,请记住,我们讨论的是 LaTeX3 语法,基于 LaTeX2e。这意味着 LaTeX2e 惯例在某种程度上适用。特别是,LaTeX2e 会扩展选项并删除空格。因此,您必须对设置的加载时包选项保持谨慎。

现在,由于 LaTeX2e 仍在进行实际处理,因此主要宏仍然存在:\DeclareOption\ProcessOptions。但是,如果您想创建键值选项,最好不要加载支持包l3keys2e。这使您能够使用由提供的键值系统处理 LaTeX2e 包或类选项expl3。接下来您需要执行两个步骤:

  1. 使用以下方式声明你的包的密钥\keys_define:nn
  2. 使用以下方法处理包选项\ProcessKeysOptions

因此你可能会得到类似

\RequirePackage{l3keys2e}
\ProvidesExplPackage{mypkg}{2011/04/14}{0.0}{A demo}
\keys_define:nn { mypkg }
  {
    option-1 .code:n = some-code-here ,
    option-2 .code:n = some-other-code-here
  }
\ProcessKeysOptions { mypkg }
...

任何之前声明的键\ProcessKeysOptions都被视为潜在的包选项(对于其他包选项的键值方法也是如此)。

相关内容