更改考试类别中的子部分后继续编号

更改考试类别中的子部分后继续编号

我正在使用\documentclass{exam}来准备一本解决方案手册。它在一个部分中有多个小节。我希望问题编号继续运行,即使在更改部分之后也是如此。我尝试使用\begin{questions}[resume],如在不同上下文中建议的那样,但徒劳无功。我也尝试过只有一个\begin{questions} ... \end{questions}块,但在这里,小节会缩进。任何帮助都将不胜感激。

\documentclass{exam}
\usepackage[utf8]{inputenc}
\usepackage{amsmath, amssymb, enumitem}

\begin{document}

\section{Sec 1}
\subsection{Sub 1}
\begin{questions}
\question Q1
\question Q2

\subsection{Sub 2}

\question Q3
\question Q4
\end{questions}

\end{document}

在此处输入图片描述

答案1

这似乎有效,但是可能干扰 的其他方面exam。请谨慎行事。

question这个想法是保存每个命令的计数器的值\subsection,然后使用当前值question但添加到前一个值,因此计数是渐进的。

\documentclass{exam}
\usepackage{etoolbox}

\makeatletter
\newcounter{savequestion}
\preto\subsection{\setcounter{savequestion}{\value{question}}}
\newcommand\newquestionlabel{\the\numexpr\value{question}+\value{savequestion}\relax.}
\patchcmd{\question@number}{\questionlabel}{\newquestionlabel}{}{}
\patchcmd{\question@number}{\questionlabel}{\newquestionlabel}{}{}
\patchcmd{\questions}
  {question@\arabic{question}}
  {question@\the\numexpr\value{question}+\value{savequestion}\relax}
  {}{}
\makeatother

\begin{document}

\section{Sec 1}
\subsection{Sub 1}
\begin{questions}
\question Q1
\question Q2
\end{questions}

\subsection{Sub 2}

\begin{questions}
\question Q3
\question Q4
\end{questions}

\end{document}

在此处输入图片描述

相关内容