在自定义类选项之间创建选项冲突

在自定义类选项之间创建选项冲突

在我的自定义 LaTeX 类中,我创建了一些不同的选项,例如不同的字体大小、11pt12pt以及13pt纸张大小,例如a4paperletterpaper。但是,每个组中只能给出一个选项,如下所示。

\documentclass[12pt, letterpaper]{class} % or
\documentclass[13pt, a4paper]{class} % but never
\documentclass[12pt, 13pt]{class}

最后一个不应该使用,因为它指定了两次字体大小,这会产生不良效果。我想要的是,如果两个或多个命令冲突提供,例如在 中 \documentclass[12pt, 13pt]{class},我的类使用 传递错误消息\ClassError。该怎么做?

万一我需要使用条件“if”语句,请尝试使用etoolbox包中使用的语句样式来提供代码,这是我使用并且发现最简单的方法。

答案1

根据我之前的回答,这里有一种方法:

\ProvidesClass{akuritsu}

\newif\ifaku@sizegiven
\DeclareOption{12pt}{\def\aku@ptsize{2}\aku@sizegiventrue}
\DeclareOption{11pt}{\def\aku@ptsize{1}\aku@sizegiventrue}
\DeclareOption{10pt}{\def\aku@ptsize{0}\aku@sizegiventrue}
\DeclareOption{12pt-standard}{\def\aku@ptsize{2}}

\ExecuteOptions{12pt-standard}
\ProcessOptions\relax
\PassOptionsToClass{1\aku@ptsize pt}{article}

\LoadClass{article}

\ifaku@sizegiven
  \ClassError{akuritsu}
     {Multiple font size options}
     {You have specified two or more options among `10pt', `11pt' or `12pt'}
\fi

您必须使用不同的默认选项,否则会针对单个字体大小选项发出错误消息。

相关内容