我正在尝试使用 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
)。