如何在样式/类文件中定义同义选项?

如何在样式/类文件中定义同义选项?

我希望能够将两个选项传递给一个包(实际上是一个类),并使它们相同。最好的方法是什么?

也就是说,我想要:

\documentclass[norsk]{myclass}

\documentclass[bokmal]{myclass}

做同样的事情。

答案1

这在一定程度上取决于你如何在内部实现它们。如果这两个选项设置了某种标志,那么最简单的方法是手动编码

\newif\if@mypkg@norsk
\DeclareOption{norsk}{\@mypkg@norsktrue}
\DeclareOption{bokmal}{\@mypkg@norsktrue}

如果代码比较复杂,那么最简单的方法可能是编写一个宏来完成工作

\newcommand*\mypkg@option@norsk{
   % Code here
}
\DeclareOption{norsk}{\mypkg@option@norsk}
\DeclareOption{bokmal}{\mypkg@option@norsk}

答案2

@Andrew:以下解决方案存在潜在危险:在不太复杂的情况下无休止地进行反向链接。您需要一个标志来避免这种情况。请参阅\XKV@replacepointersxkeyval 包中的宏。

\DeclareOption{a}{%
  \renewcommand{\synonymous}{Greetings Earthlings}}
\DeclareOption{b}{\ExecuteOptions{a}}

答案3

我将 TH. 对 Joseph 的回答的评论发布为答案,因为它也有效。(CW,因为它是 TH. 的答案。)

synonymous.sty包含:

\ProvidesPackage{synonymous}
\newcommand{\synonymous}{Hello world}
\DeclareOption{a}{%
  \renewcommand{\synonymous}{Greetings Earthlings}}
\DeclareOption{b}{\ExecuteOptions{a}}
\ProcessOptions

synonmyous.tex

\documentclass{minimal}
\usepackage[a]{synonymous}
\begin{document}
\synonymous    
\end{document}

更改ab对结果没有明显的影响。

相关内容