有一种 MCQ(多项选择题)类型,其中每个 MCQ 可以有一个或多个答案,最大可能答案数可以等于总选项数。如何使用 examdesign 类在 latex 中完成此操作?
以下是一个例子:
\documentclass[a4paper, 11pt]{examdesign}
\parindent 0pt
\usepackage[margin=1in]{geometry}
\class{Your Exam}
\Fullpages
\ContinuousNumbering
\DefineAnswerWrapper{}{}
\NumberOfVersions{1}
\ShortKey
\NoRearrange
\begin{document}
\begin{multiplechoice}[title={A title}]
These are meant to be multiple-choice questions, with multiple answers.
\begin{question}
How many people live in Wales?
\choice{Approximately 2,811,865.}
\choice[!]{More than in most countries.}
\choice{None.}
\choice{Exactly seventeen.}
\end{question}
\begin{question}
How many cows does it take to graze a field?
\choice[i]{One.}
\choice[i]{Two.}
\choice{Three.}
\choice[i]{Four}
\end{question}
\end{multiplechoice}
\end{document}
我想要不同的 \choices 的正确答案,并且全部选择应该打印在解决方案中。
答案1
examdesign
已经支持多个正确答案。
\exam@ShortKeyChoice
的定义(您示例中的内部定义)似乎存在一个小问题\choice
。解决方案跟踪的内部计数器没有针对正确解决方案进行升级。这意味着如果您有多个正确答案,则答案部分的键将被关闭。
我强烈建议您就此事联系软件包维护者。文档中可能会提到如何报告错误。(尽管考虑到软件包的最后一次真正更改是在 2001 年,因此进行重大修复的可能性可能比我最初想象的要小。开发人员的电子邮件地址在 PDF 文档中也看不到,您必须.dtx
直接转到源文件才能找到它。)
与此同时,这里有一个解决方法。我们只需要将移出条件\stepcounter{choice}
。在原始定义中,计数器仅在(此处已删除)\else
的分支中增加\if#1!
,这意味着计数器只会针对错误答案增加,而不会针对正确答案增加。这意味着第 n 个正确答案的计数将偏离 n-1。
\documentclass[a4paper, 11pt]{examdesign}
\makeatletter
\renewcommand{\exam@ShortKeyChoice}[2][]{%
\if#1!%
\ifOneCorrectAnswerAlreadyGiven
, (\alph{choice})
\else
\exam@MultipleChoiceShortKeyPrefix
(\alph{choice})%
\OneCorrectAnswerAlreadyGiventrue
\fi
\fi
\stepcounter{choice}%
\ignorespaces}
\makeatother
\class{Your Exam}
\Fullpages
\ContinuousNumbering
\DefineAnswerWrapper{}{}
\NumberOfVersions{1}
\ShortKey
\NoRearrange
\begin{document}
\begin{multiplechoice}[title={A title}]
These are meant to be multiple-choice questions, with multiple answers.
\begin{question}
How many people live in Wales?
\choice{Approximately 2,811,865.}
\choice[!]{More than in most countries.}
\choice{None.}
\choice{Exactly seventeen.}
\end{question}
\begin{question}
How many cows does it take to graze a field?
\choice{One.}
\choice[!]{Two.}
\choice{Three.}
\choice[!]{Four}
\end{question}
\end{multiplechoice}
\end{document}