首页 > 解决方案 > knitr Rnw 文件在子级中具有可选输出

问题描述

我使用 Rnw 文件为我的学生创建考试,我将单独的测验放入子 Rnw 文件中,并将它们包含在主 Rnw 中

<<child="xx.Rnw">>@

xx.Rnw 包含问题陈述和答案。我想要两个版本的考试,一个没有答案,一个有答案。这意味着我需要可以有条件地生成两种类型的 pdf 的东西。

答案部分是 <<>>@ 代码和乳胶的混合器。任何人都知道如何以敏捷的方式做到这一点?谢谢!

标签: knitrrnw

解决方案


对于每个问题陈述,您可以创建 2 个子 rnw 块。第一个块调用没有答案的 rnw,第二个块调用带有答案的 rnw。在 rnw 文档的开头,创建 2 个名为hide_answerand的变量,show_answer并设置eval省略答案的子 rnw 块hide_answer的块选项,并设置eval显示答案的子 rnw 块的块选项show_answer

然后您所要做的就是将变量设置为TRUEFALSE生成所需的 PDF。

<<r_load>>=
hide_answer = TRUE
if (hide_answer == TRUE) {
  show_answer = FALSE
} else {
  show_answer = TRUE
}
@

\documentclass{article}

\begin{document}

<<child_hide_answer, child=problem1_no_answer.rnw, eval=hide_answer>>=
@

<<child_shower_answer, child=problem1_with_answer.rnw, eval=show_answer>>=
@

\end{document}

推荐阅读