请参阅下面的 MWE。这相当简单。\AtEndDocument
在执行之前会导致虚假的分页符。但是,当直接执行相同的代码时,不会导致此分页符。
\documentclass{exam}
\AtEndDocument{%
\vfill
\begin{center}
\textsc{== End of Questions ==}
\end{center}}
\begin{document}
\begin{questions}
\question Test question 1
\question Test question 2
\end{questions}
% When inserted directly, it will not cause the page break
% \vfill
% \begin{center}
% \textsc{== End of Questions ==}
% \end{center}
\end{document}
答案1
正如 Werner 所写,考试也会插入代码\AtEndDocument
。使用当前的 LaTeX,您可以定义一条规则,以便您的enddocument
代码位于类中的代码之前:
\documentclass{exam}
\AddToHook{enddocument}[myhook]{%
\vfill
\begin{center}
\textsc{== End of Questions ==}
\end{center}}
\DeclareHookRule{enddocument}{myhook}{before}{exam}
\begin{document}
\begin{questions}
\question Test question 1
\question Test question 2
\end{questions}
% When inserted directly, it will not cause the page break
% \vfill
% \begin{center}
% \textsc{== End of Questions ==}
% \end{center}
\end{document}