R-exams:如何更改多项选择的标签以区分完形填空项目 (a, b, ...)

R-exams: How to change labels for multiple choice alternatives to distinguish from cloze items (a, b, ...)

我正在尝试使用模板 "exam.tex"、"solution.tex" 使用 exams2pdf(...) 创建 pdf 考试集。我想提出一些 "cloze" 类型的问题,例如单选题和数字题。问题是完形填空问题用 (a), (b), ... 逐项列出。相同的标签 (a), (b), ... 也用于单选题的不同可能答案。因此,使用模板问题 "lm.Rmd" 和 "switzerland.Rmd" 我在问题 sheet 中得到了这个:

而首页答案 sheet 看起来像这样。

这显然看起来不太好。我试图通过更改 "answerlist" 环境定义来修改 "exam.tex" 模板,特别是更改

 ...\renewcommand{\labelenumi}{(\alph{enumi})}...

例如

...\renewcommand{\labelenumi}{(\roman{enumi})}...

但是,这似乎对输出没有影响。我还试图修改 \exmchoice 定义,将“(a)”更改为例如“(一个)”。这只影响首页上的标签,而不影响问题 sheet。 R 中的 exams2pdf 调用看起来像

exams2pdf(c("lm.Rmd", "switzerland.Rmd"), n = 1, name = c("MAT210-exam", "MAT210-solution"),
      encoding = "UTF-8", dir = "output", edir = "../MAT210exercises",
      template = c("../templates/exam.tex", "../templates/solution.tex"))

所以,我希望有人可以指导解决方案路线,以便在此设置中为完形填空项目和备选方案启用不同的标签。 我是 运行 R 版本 3.6.1 (2019-07-05)。 Windows7、米克特 2.9。

完形填空格式的行为可以通过 cloze.collapse 控制参数控制 "a little bit"。我认为您正在寻找 "enumerate" 选项:

exams2pdf(c("lm.Rmd", "switzerland.Rmd"), template = "exam.tex",
  control = list(cloze.collapse = "enumerate"))

这会在标题页的调查问卷中产生以下格式:

练习本身采用以下格式:

请注意,如果唯一的目标是 PDF 输出,则将组合的完形填空问题拆分成单独的练习可能会更容易。如果您指定处理练习的专用环境 envir=(而不是为每个问题都使用新环境),您仍然可以在练习中共享 parameters/data。缺点是这种练习顺序仅在生成独立的 PDF 文件时可用,但不能用于 Moodle 等学习管理系统,因为这些练习都是分开的。有关这些问题的进一步讨论,请参阅 R-Forge 上的 R/exams 论坛:

https://R-Forge.R-project.org/forum/forum.php?thread_id=33878&forum_id=4377&group_id=1337
https://R-Forge.R-project.org/forum/forum.php?thread_id=33912&forum_id=4377&group_id=1337