在 exams2pdf 中使用两个具有自定义名称的模板

Using two templates with custom name in exams2pdf

我正在使用 exams2pdf() 生成两个 PDF 文件:

exams2pdf(file = "ICvar.Rmd",
          name = "icvar",
          engine = "knitr",
          verbose = FALSE, 
          texdir = "tmptex",
          template = c("exam", "solution")
)

但是我得到这个错误:

Error in base::file(out_tex[j], open = "w+", encoding = encoding) : invalid 'description' argument

知道为什么吗?

此外,是否可以使用 exams2nops() 中的自定义模板,如 template = c("exam", "solution") 生成两个 PDF 文件,第一个带有问题;第二个与解决方案?我阅读了小插图,但找不到任何信息,将模板添加到 exams2nops() 中的选项没有任何作用。

问题是您只提供了一个 name = "icvar",但实际上需要两个不同的 name,分别用于 template = "exam"template = "solution"。因此,缺少第二个 name 会导致有点神秘的错误消息。一个简单的解决方案是提供两个 name = c("icex", "icsol") 的向量,比如

此外,我刚刚提交了对 R-Forge 上开发版本的修复,在 ?exams2pdf 中更清楚地指出了这一点,抛出了一个可理解的警告,并提供了一个解决方法。如果您使用上面的代码,name 会自动更改为 name = c("icvar_exam", "icvar_solution")

至于exams2nops():在内部这本质上是通过make_nops_template()建立一个标准化的template,然后调用exams2pdf()。无法提供额外的模板。这样做的原因是 NOPS 模板中所有方便的选项(例如,添加 intro、选择 language、切换到 twocolumn 布局等)仅适用于NOPS 模板,而不是提供的其他模板。因此,如果你想产生一个解决方案 sheet 你必须在设置与 exams2nops().