使用自定义练习布局的考试类别时出错:“出现问题 - 可能缺少\item”

使用自定义练习布局的考试类别时出错:“出现问题 - 可能缺少\item”

为了生成好看的考试文档,我通常会使用一些自定义的命令,将命令转化\section为练习标题,然后在需要的时候使用该\uplevel命令进行练习介绍。

也许这一切都像把我的灵魂卖给了魔鬼,但它工作得很好,直到有一天我想在最先练习。例如,以下最小工作示例的编译将停止在Something's wrong--perhaps a missing \item,除非之前的练习,没有列表环境插入(例如,取消注释前面的几行):

\documentclass{exam}

\newcounter{ctr_exercises}
\newcommand{\exercise}[1]{
\refstepcounter{ctr_exercises}
\section*{Exercise \arabic{ctr_exercises}~\hrulefill~{#1}}}

\begin{document}

  \begin{questions}
%     \exercise{A preliminary exercise}
%
%     \question How are you?

    \exercise{Main exercise}

    \uplevel{Some introduction with a list environment:
    \begin{itemize}
      \item item \#1.
    \end{itemize}
    }

    \question A dreadful question.
  \end{questions}
\end{document}

我该怎么做才能允许所有练习的列表环境?

我是否应该考虑撤回我的定制并更严格地遵循考试类文档?但是,什么是最接近我未注释的 MWE 的等价物,仅包含“授权”命令?(我已阅读了整个文档,但从未找到令我满意的东西)

答案1

通过移动\begin{questions}

\documentclass{exam}

\newcounter{ctr_exercises}
\newcommand{\exercise}[1]{
\refstepcounter{ctr_exercises}
\section*{Exercise \arabic{ctr_exercises}~\hrulefill~{#1}}}

\begin{document}
    \exercise{Main exercise}
    \uplevel{itemize outside the uplevel}
    \begin{itemize}
      \item item \#1.
    \end{itemize}

    \begin{questions}
    \question A dreadful question.
\end{questions}
\exercise{second exercise}
\uplevel{itemize in the uplevel:
\begin{itemize}
  \item item \#1.
\end{itemize}}

\begin{questions}
\question A dreadful question.
\end{questions}
\end{document}

在此处输入图片描述

答案2

请注意,questions 是一个列表,可能与 itemize 冲突。您可以将 itemize 放在 questions 环境之外的保存框中,或者停止并重新启动 questions。

\documentclass{exam}

\newcounter{ctr_exercises}
\newcommand{\exercise}[1]{
\refstepcounter{ctr_exercises}
\section*{Exercise \arabic{ctr_exercises}~\hrulefill~{#1}}}

\newsavebox{\tempbox}

\begin{document}

\savebox{\tempbox}{\begin{minipage}{\linewidth}% more than one line
\exercise{Main exercise}
    \begin{itemize}
      \item item \#1.
    \end{itemize}
\end{minipage}}

  \begin{questions}
%     \exercise{A preliminary exercise}
%
%     \question How are you?
  \fullwidth{\usebox\tempbox}

    \question A dreadful question.
  \end{questions}
  \edef\savequestion{\arabic{question}}
  
  \begin{questions}
  \setcounter{question}{\savequestion}%
  \question Continue numbers.
  \end{questions}

\end{document}

相关内容