关键属性 .notif 未知

关键属性 .notif 未知

按照《LaTeX Companion》第 3 版第 II 部分第 700 页中的示例,我尝试加载以下 .sty 文件和 .tex 文件,但出现错误:

./myfont.sty:8: LaTeX Error: The key property '.notif' is uknknown.

怎么了?

% myfont.sty
\ProvidesPackage{myfont}[2023-09-14]

\DeclareKeys {
    draft.if        =   @fnt@draft  ,
    final.notif     =   @fnt@draft  ,
    languages.store =   @fnt@foreigns, 
    }
\ProcessKeyOptions[fnt]

\endinput

% driver.tex
\documentclass{article}

\usepackage[final,languages={french,russian}]{myfont}

\begin{document}
Some text.
\end{document}

我正在使用 pdfTeX 和 LaTeX <2023-06-01> 补丁级别 1,以及 L3 编程层 <2023-08-29>。

答案1

该示例有几个问题。首先,它必须是.ifnot而不是.notif。其次,.store它期望的是宏而不是宏的名称。第三,您声明的键没有可选系列。因此\@currname使用默认系列,如myfont示例中所示。但\ProcessKeyOptions使用可选参数的显式使用系列fnt。因此,对于该系列,所有声明的选项都是未知的。正确的例子是:

\begin{filecontents}[overwrite]{myfont.sty}
% myfont.sty
\ProvidesPackage{myfont}[2023-09-14]

\DeclareKeys {
    draft.if        =   @fnt@draft  ,
    final.ifnot     =   @fnt@draft  ,
    languages.store =   \@fnt@foreigns, 
    }
\ProcessKeyOptions

\endinput
\end{filecontents}
% driver.tex
\documentclass{article}

\usepackage[final,languages={french,russian}]{myfont}

\begin{document}
\makeatletter
This is \if@fnt@draft\else not \fi a draft. Languages are \@fnt@foreigns.

\end{document}

在此处输入图片描述 另请参阅适用于包和类作者的 LaTeX

相关内容