knitr Rnw文件在子级中具有可选输出

时间:2018-10-09 19:35:41

标签: knitr rnw

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

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

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

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

1 个答案:

答案 0 :(得分:0)

对于每个问题陈述,您可以创建2个子rnw块。第一块调用没有答案的rnw,第二块调用有答案的rnw。在rnw文档的开头,创建2个分别称为hide_answershow_answer的变量,并设置子rnw块的eval块选项,从而省略对hide_answer的答案并进行设置子rnw块的eval块选项,显示对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}