我尝试将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}