为了生成好看的考试文档,我通常会使用一些自定义的命令,将命令转化\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}