在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",但实际上需要分别为template = "exam"template = "solution"提供两个不同的name。因此,缺少第二个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模板,而不适用于提供的其他模板。因此,如果您想生成一个解决方案表,您必须在设置与exams2nops()相同的随机种子后,再次调用exams2pdf()(或exams2html()exams2pandoc())。

最新更新