将选项从一个类传递到另一个类

将选项从一个类传递到另一个类

我尝试将handout选项从我的班级传递给 beamerclass。此方法有效。我尝试过,\PassOptionsToClass但对我来说不清楚。

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{beamer-nk}[2017/10/16 Beamer version nk, V4.1]

\newif\ifHandout
\Handoutfalse

\DeclareOption{handout}{\Handouttrue}

\ProcessOptions\relax

% classe de base
\ifHandout
\ExecuteOptions{handout}
\LoadClass[handout,xcolor=dvipsnames,professionalfont,french]{beamer}
\else
\LoadClass[xcolor=dvipsnames,professionalfont,french]{beamer}
\fi

答案1

它的作用\PassOptionsToClass{<option>}{<class>}是将其第一个参数作为选项传递给其第二个参数指定的类。由于导致在任何时候执行的\DeclareOption{<option>}{<code>}原因是作为选项传递的,因此您可以使用此处传递选项。<code><option>\PassOptionsToClass

以下方法适合你:

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{beamer-nk}[2017/10/16 Beamer version nk, V4.1]

\DeclareOption{handout}{\PassOptionsToClass{\CurrentOption}{beamer}} 
%% N.B., you could replace "\CurrentOption" by "handout" in the line above.

\ProcessOptions\relax

\LoadClass[xcolor=dvipsnames,professionalfont,french]{beamer}

如果您还想将其他选项传递给 beamer,您可能需要带星号的形式,\DeclareOption*它可以处理所有未知选项(即,您尚未声明的选项)。

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{beamer-nk}[2017/10/16 Beamer version nk, V4.1]

\DeclareOption*{\PassOptionsToClass{\CurrentOption}{beamer}}

\ProcessOptions\relax

\LoadClass[xcolor=dvipsnames,professionalfont,french]{beamer}

相关内容