knitr - knitr Rnw 文件在子级中具有可选输出
问题描述
我使用 Rnw 文件为我的学生创建考试,我将单独的测验放入子 Rnw 文件中,并将它们包含在主 Rnw 中
<<child="xx.Rnw">>@
xx.Rnw 包含问题陈述和答案。我想要两个版本的考试,一个没有答案,一个有答案。这意味着我需要可以有条件地生成两种类型的 pdf 的东西。
答案部分是 <<>>@ 代码和乳胶的混合器。任何人都知道如何以敏捷的方式做到这一点?谢谢!
解决方案
对于每个问题陈述,您可以创建 2 个子 rnw 块。第一个块调用没有答案的 rnw,第二个块调用带有答案的 rnw。在 rnw 文档的开头,创建 2 个名为hide_answer
and的变量,show_answer
并设置eval
省略答案的子 rnw 块hide_answer
的块选项,并设置eval
显示答案的子 rnw 块的块选项show_answer
。
然后您所要做的就是将变量设置为TRUE
或FALSE
生成所需的 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}
推荐阅读
- google-app-engine - 私有本地网络能否通过 Cloud VPN 访问 GAE Flex?
- c# - Task.WaitAll 死锁
- c# - ASP.NET Core Web API 多个动作具有相同的动作动词但不同的签名
- html - MS Edge 上的拖动事件在 2nd/n 拖动时复制“预览内容”
- c++ - #define 在 C++ 中如何工作
- android - 如何存储登录的用户图像以在抽屉中使用?我已成功存储用户名电子邮件和其他文本信息
- java - JPA:创建自定义 ID 注释
- python - 创建一个革命的表面
- javascript - javascript 中带有包含撇号的变量的 SQL 语句
- java - 无法将 Room 设置为使用 RxJava:访问数据库可能会锁定 UI