无法识别的键值

无法识别的键值

我尝试使用键值选项实现一个个人类(我是该领域的新手)。例如,我想使用选项“langue=xxx”指定语言(用于 babel 包),默认值为“francais”。我尝试了kv选项包装如下:

类文件:(如果您发现冲突,我会给您完整的包列表)

\ProvidesClass{mepp}[2014/03/08 Personnal class development version]
\NeedsTeXFormat{LaTeX2e}

\RequirePackage{kvoptions}

\DeclareStringOption[francais]{langue}
\ProcessKeyvalOptions*


\LoadClass[twoside]{report}


\RequirePackage[paper=a4paper, lmargin=15mm, rmargin=15mm, tmargin=15mm, bmargin=15mm,
                    includeall, marginparwidth=44mm, headheight=\baselineskip]{geometry}
\RequirePackage{babel}
\RequirePackage[T1]{fontenc}
\RequirePackage[latin1]{inputenc}

\RequirePackage{emerald}
\RequirePackage{setspace}
\RequirePackage{calc}
\RequirePackage{array, multirow, tabularx}
\RequirePackage{xcolor, color, colortbl}
\RequirePackage[fleqn]{amsmath}
\RequirePackage{amssymb, mathrsfs, stmaryrd, gensymb}
\RequirePackage{graphicx, picins}
\RequirePackage{subfig}
\RequirePackage[top]{mcaption}
\RequirePackage{fancyhdr, lastpage}
\RequirePackage[fit]{truncate}
\RequirePackage[upright]{fourier}
\RequirePackage{mdwlist}
\RequirePackage{titlesec, titletoc}
\RequirePackage{ulem}
\RequirePackage{float}
\RequirePackage[globalcitecopy]{bibunits}
\RequirePackage{multido}
\RequirePackage{ragged2e}
\RequirePackage{marginfix}

\RequirePackage[geometry]{ifsym}
\RequirePackage{ifthen}
\RequirePackage[strict]{changepage}
\RequirePackage{framed}


\PassOptionsToPackage{\mepp@langue}{babel}

Tex 文件:

\documentclass[langue=francais]{mepp}
...

但编译失败:编译器说没有为 babel 指定语言。如果我不指定任何选项,或者我给出了一个没有“=”符号的“错误”选项,编译会成功,因为它会将默认值分配给“langue”。

那么,为什么“langue=francais”选项无法识别?感谢您的帮助。

(抱歉,我是法国人)

答案1

babel之前正在加载\PassOptionsToPackage{\mepp@langue}{babel},因此不会评估该选项;只需使用

\RequirePackage[\mepp@language]{babel}

如果只想在指定选项babel时加载,则可以执行langue

\DeclareStringOption{langue}

进而

\ifx\mepp@langue\@empty\else
  \RequirePackage[\mepp@langue]{babel}
\fi

因此如果langue=...没有指定该选项,babel则不会加载。

相关内容