设置选项

这个 setoptions 扩展实现了非标准的 \setOptions 宏,允许您从TeX表达式中更改TeX包的选项或TeX输入JAX本身的选项。

\setOptions[package]{options}

设置以下选项: package 给那些在书中给出的人 options 。这里, options 是空格分隔的选项名称的集合(将设置为 true )或 option=value 声明,其中给定选项将获得指定值。如果值包含空格,则可以将其括在大括号中,大括号不会成为值的一部分。

例如:

\[
  \setOptions{tagSide=left}
  E = mc^2 \tag{1}
\]

\[
  \setOptions{tagSide=right}
  e^{\pi 1} + 1 = 0 \tag{2}
\]

将排版第一个表达式,其标签在左边,第二个(和后续)表达式的标签在右边。

要更改程序包设置,请使用程序包名称作为可选的括号参数:

\[
  \setOptions[physics]{arrowdel=true}
  \grad
  \setOptions[physics]{arrowdel=false}
\]

这里的渐变符号有一个箭头,但后面的没有。

请注意,由 \setOptions 是全局的,因此将影响以下所有表达式。如果要进行本地更改,则需要将该值显式设置回其原始值。

由于更改选项设置可能会导致不良后果,因此在向用户提供站点的TeX内容的设置中可能会被滥用,因此 setoptions 软件包不是自动加载的,它不会出现在所有软件包的列表中,并且不能使用 \require{{}} 。如果要允许使用,则必须将其显式包括在包列表中。

要加载 setoptions 扩展,添加 '[tex]/setoptions' 发送到 load 属性的数组 loader 您的MathJax配置的挡路,然后添加 'setoptions' 发送到 packages 属性的数组 tex 挡路。

window.MathJax = {
  loader: {load: ['[tex]/centernot']},
  tex: {packages: {'[+]': ['centernot']}}
};

将Required命令与setoptions配合使用

如果 require 程序包已启用, setoptions 修改 \require 允许传递所需包的选项(并使原始 \require 可用的宏为 \Require )。因此,新语法是:

\require[options]{package}

哪里 options 是选项列表,其格式与 \setOptions ,以及 package 要加载的扩展名。此命令相当于:

\Require{package}\setOptions[package]{options}

这意味着加载了包,然后设置了它的选项。

例如:

\require[harrowsize=3em]{amscd}

将加载 amscd 扩展名,然后设置其 harrowsize 选项以执行以下操作 3em

请注意,可以为哪个文件包设置的选项与管理这些选项的规则相同 \setOptions 它本身。


setoptions选项

添加 setoptions 扩展到 packages 数组定义了一个 setoptions 中国银行业的子挡路 tex 使用以下值配置挡路:

MathJax = {
  tex: {
    setoptions: {
      filterPackage: SetOptionsUtil.filterPackage,  // filter for whether a package can be configured
      filterOption: SetOptionsUtil.filterOption,    // filter for whether an option can be set
      filterValue: SetOptionsUtil.filterValue,      // filter for the value to assign to an option
      allowPackageDefault: true,       // default for allowing packages when not explicitly set in allowOptions
      allowOptionsDefault: true,       // default for allowing option that isn't explicitly set in allowOptions
      allowOptions: {                  // list of packages to allow/disallow, and their options to allow/disallow
        //
        //  top-level tex items can be set, but not these ones
        //    (that leaves digits and the tagging options that can be set)
        //
        tex: {
          FindTeX: false,
          formatError: false,
          package: false,
          baseURL: false,
          tags: false,          // would require a new TeX input jax instance
          maxBuffer: false,
          maxMaxros: false,
          macros: false,
          environments: false
        },
        //
        // These packages can't be configured at all
        //
        setoptions: false,
        autoload: false,
        require: false,
        configmacros: false,
        tagformat: false
      }
    }
  }
};
filterPackage: SetOptionsUtil.filterPackage

这是一个函数,调用该函数来确定包是否可以设置其选项。它被传递给TeX解析器和扩展名作为其参数,如果包允许配置其选项,则返回TRUE,否则返回FALSE。默认情况下,首先检查命名包是否存在,然后检查该包是否由其在 allowOptions 属性是 true 或列表中的 allowOptions 财产。该条目可以是 true ,允许设置包的所有选项,或允许设置的选项列表。如果该条目显式地 false 或者 allowPackageDefault 选项为 false ,则会发出错误。如果愿意,您可以提供自己的函数以另一种方式处理包名。

filterOption: SetOptionsUtil.filterOption

这是一个函数,调用它来确定是否可以为给定包设置选项。它被传递给TeX解析器、包名和选项名作为其参数,如果可以为该包设置该选项,则返回TRUE,否则返回FALSE。默认情况下,检查该选项是否显式列在的给定软件包的选项列表中。 allowOptions 。如果该值显式为false,或者如果该值未列出并且 allowOptionDefault 为假,则会产生错误。否则,检查包是否确实存在该选项,如果不存在,则报告错误,否则允许设置该选项。如果愿意,您可以提供自己的函数以另一种方式处理选项名称。

filterValue: SetOptionsUtil.filterValue

这是一个函数,调用该函数可以检查为给定选项提供的值是否允许。它被传递给TeX解析器、包名、选项名和新的选项值作为其参数,并返回要用于该选项的值。默认值只是返回给它的值,但是您可以使用它来更改该值,或者在该值无效时产生错误。

allowPackageDefault: true

属性中未显式列出的包的处理方式。 allowOptions 列表。如果 true ,则允许设置未列出的软件包的选项。如果值为 false ,只有列出为 true 或者显式选项列表可以设置它们的选项。

allowOptionsDefault: true

属性中未显式列出的选项的处理方式。 allowOptions 给定包的列表。如果 true ,则允许设置未列出的选项,并且如果 false ,则仅显式列出的选项为 true 可以设置给定包的选项。

allowOptions: {...}

这是软件包的列表,指示是否可以设置它们的选项,以及可以设置哪些选项。如果出现软件包名称并将其显式设置为 false ,则无法设置该软件包的选项。如果是的话 trueallowOptionsDefault 为真,则可以设置其任何选项。如果它是显式选项列表,则如果该选项列出为 true ,则可以设置它,并且如果 false 不可能。如果未列出选项,则 allowOptionsDefault 用于确定是否可以设置它。如果包没有显式出现在列表中,则 allowPackageDefault 用于确定是否可以设置包的选项。

您可以在此列表中包括其他软件包名称及其选项。默认值设置为允许合理的安全性,而不必列出每个可以设置的选项。


setoptions命令

这个 setoptions 扩展实现以下宏: \setOptions