AtBeginDocument 中的 ProcessOptions 不起作用,但 ExecuteOptions 起作用

AtBeginDocument 中的 ProcessOptions 不起作用,但 ExecuteOptions 起作用

当我有以下课程时:

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{CustomClass}
\LoadClass[11pt]{article}

\DeclareOption{option1}{
    \texttt{Text 1}
    \clearpage
    \texttt{Text 2}
    \clearpage
}

\DeclareOption{option2}{
    \texttt{Text 3}
    \clearpage
    \texttt{Text 4}
    \clearpage
}

\AtBeginDocument{
    \ProcessOptions
}

\endinput

我的使用方式如下:

\documentclass[option1]{CustomClass}

\begin{document}

\end{document}

没有生成 PDF。但是当我使用它时,ExecuteOptions{option1|option2}它是静态的。所以我在指定文档类时指定的选项不起作用。

为什么会发生这种情况?

答案1

您需要\ProcessOptions在类或包文件中运行,这样它才知道要处理哪些选项。

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{CustomClass}
\LoadClass[11pt]{article}

\DeclareOption{option1}{
\AtBeginDocument{%
    \texttt{Text 1}%
    \clearpage
    \texttt{Text 2}%
    \clearpage
}%
}

\DeclareOption{option2}{
\AtBeginDocument{%
    \texttt{Text 3}%
    \clearpage
    \texttt{Text 4}%
    \clearpage
}%
}


 \ProcessOptions


\endinput

相关内容