使用 pgfopts 将键值对传递给类

使用 pgfopts 将键值对传递给类

我正在尝试使用 pgfopts 将一个键值对传递给一个类。文件testclass.cls

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{testclass}[A Testclass]

\LoadClass{article}

\RequirePackage{pgfkeys}
\RequirePackage{pgfopts}

\pgfkeys{testclass/testkey/.initial=testkeyinitial}
\pgfkeys{testclass/.is family}

\ProcessPgfOptions{/testclass}

\pgfkeys{testclass, testkey/.get=\optiontest}

以及文件test.tex

\documentclass[testkey=Works!]{testclass}

\begin{document}
\optiontest
\end{document}

尝试编译test.tex会出现以下错误:

(./testclass.cls
Document Class: testclass A Testclass
(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls
Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
(/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo))
(/usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty
(/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex
(/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.code.t
ex))) (/usr/share/texlive/texmf-dist/tex/latex/pgfopts/pgfopts.sty))
! Missing number, treated as zero.
<to be read again> 
               A
 l.2 

 ? 

当将上面的内容从类稍微更改为包时,它就可以正常工作了……我遗漏了什么? 提前致谢! 不能将 pgfopts 与类一起使用吗?

答案1

的语法\ProvidesClass要求可选的“description”参数的第一部分是格式为 的日期YYYY/MM/DD。没有检查这是否是正确格式的内容:所需的文本直接传递以用作数字。因此,如果没有数字,就会出错,正如您所见。因此,解决方法是省略可选参数或包含正确格式的内容(可以是0000/00/00)。

相关内容