考试课程 - 排列 mc 答案选项,生成答案键

考试课程 - 排列 mc 答案选项,生成答案键

我很乐意使用exam文档类来创建考试和测验。我经常将考试的一部分设为多项选择题,我希望能够

  1. 通过排列答案选项来生成多个版本的考试(自动生成,而不是像我现在这样手动生成),并且
  2. 在编写带有答案的考试时,为每个版本生成一个答案。

你们当中有谁这样做过或者对我如何实现这一点有什么建议吗?

答案1

我很了解这个问题。我有自己的软件包可以解决这个问题,还有几份充满乱七八糟代码的文档。我可以告诉你我的实现:

排列答案选项:

  • 使用pgfmath列表存储答案选项
  • 做一个克努斯洗牌在该列表上对其进行排列
  • 浏览列表并打印出每个选项

你可能会发现\pgfmathsetseed命令很有用,因为您想要随机选择,但每次编译时都是相同的随机选择!您可能还会发现http://random.org/适合获取足够随机的种子。

为了生成多个版本和答案,我使用docstrip。我的主要文件是一个文档文件,例如exam.dtx,我使用如下的保护程序

%<A>\pgfmathsetseed{1001} % seed for A version
%<B>\pgfmathsetseed{1010} % seed for B version
%<*key>
    % commands that alter whether the key is shown
%</key>

到诸如、等\generate文件。这样每个文件就有一个文档,而无需手动重复代码。exam-A.texexam-A-key.tex

我没有使用这个exam课程,但我认为这可以发挥作用。

答案2

在 ConTeXt 中,itemize环境(相当于 LaTeX 的itemizeenumerate)支持random键。因此,要获得选项的随机排列,请使用。但是,您必须使用\startitem...\stopitem而不是\item来捕获项目。

\starttext

\startitemize[n,random]
    \startitem First item \stopitem
    \startitem Second item \stopitem
    \startitem Third item \stopitem
\stopitemize

\stoptext

我还没有检查随机化算法有多好。当然,你可以很容易地在 LuaTeX 中实现它。(ConTeXt 解决方案早于 lua,并在 eTeX 中实现)

答案3

虽然这是一个比较老的问题,但描述了一个可能的答案,无需使用任何包或类这里。它依靠 Python 和一些 bash 脚本来生成不同的版本。问题及其可能的答案在每个版本中都会自动打乱,并且密钥会打印在生成的 tex 文件的末尾(\end{document} 之后)。

答案4

包裹考试随机选择就是为此而设计的。摘自文档:

此包是考试文档类。它为用户提供了四种新的多项选择排版环境,这些环境以随机顺序放置内容。它(只能)与考试类结合使用。它只能随机化多项选择题中的选项位置。问题本身不能用此包随机化。

此外,该软件包还提供了一个简单的答案表排版程序,并有一个将答案写入外部文件的命令。

相关内容