在我的自定义 LaTeX 类中,我创建了一些不同的选项,例如不同的字体大小、11pt
和12pt
以及13pt
纸张大小,例如a4paper
和letterpaper
。但是,每个组中只能给出一个选项,如下所示。
\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
您必须使用不同的默认选项,否则会针对单个字体大小选项发出错误消息。