这是我的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
。