\AtBeginEnvironment 不适用于考试类中的问题环境

\AtBeginEnvironment 不适用于考试类中的问题环境

请参阅以下 MWE。

\documentclass{exam}

\usepackage{etoolbox}

% The following does not have any effect on the output
\AtBeginEnvironment{questions}{\setcounter{question}{4}}

\begin{document}

\begin{questions}
  % The following works fine
  % \setcounter{question}{4}
\question What is the answer?
\end{questions}

\end{document}

当仅\AtBeginEnvironment保留命令时,输出中的问题编号不会改变。

在此处输入图片描述

\setcounter{question}{4}然而,当在环境内明确使用时,它可以正常工作。

在此处输入图片描述

按照手册etoolbox,第一种方法应该是可行的。

\AtBeginEnvironment{<environment>}{<code>}将任意内容附加 <code>到由 执行的钩子中,该钩子\begin位于 给定命令的开头<environment>,紧接着该命令之前\<environment>,在 由 打开的组内\begin

答案1

只需添加命令

\renewcommand{\questionshook}{\setcounter{question}{4}}

而不是试图使用\AtBeginEnvironment

相关内容