为什么“pgfopts”中的 \ProcessPgfOptions 不仅解析我的包的选项?

为什么“pgfopts”中的 \ProcessPgfOptions 不仅解析我的包的选项?

这是我的foo.sty包裹:

\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{foo}
\usepackage{pgfopts}
\pgfkeys{
  /foo/.cd,
  anonymous/.store in=\fooanon,
}
\ProcessPgfOptions{/foo}
\endinput

这是文档:

\documentclass[anonymous]{acmart}
\usepackage{./foo}
\begin{document}
\ifdefined\fooanon YES \else NO \fi
\end{document}

它打印了YES,但我没有anonymous向我的包提供该选项。不知何故,它从我提供给类的选项列表中获取了它acmart。为什么以及如何摆脱这种“副作用”?

答案1

与标准\ProcessOptions命令一样,\ProcessPgfOptions将可选参数 视为\documentclass包含全局选项。因此,它会检查这些选项以及特定于软件包的选项。(例如,这就是draft从全局选项列表传播到 的方式graphics,等等。)如果您只想检查为软件包明确给出的列表,请使用\ProcessPgfPackageOptions

相关内容