我有一个 R markdown 主文档(Rmd),我想在其中knit
一些separate其中一个块中的 Rnw 文档(无子文档)。然而,当我打电话时knit
在Rnw文档上,包含的R代码块似乎没有被处理,导致尝试运行时出错texi2pdf
在他们。
情况说明:
内师。Rmd:
```{r my_chunk, echo=FALSE, message=FALSE, results='asis'}
... some code ...
knit("sub.**Rnw**", output = ..., quiet = TRUE)
tools::texi2pdf(tex_file)
... some code ...
```
是否需要一些额外的配置才能使此方案发挥作用?
有几个原因导致您无法直接执行您想要执行的操作(调用knit
从一个内knit
环境)...
- 针织图案已经设定。
[ 在本例中为 Markdown 模式,因此您需要将模式设置为“rnw”模式。 ]
- 解析块(设置正确的模式后)会将块标签添加到现有索引中,因此除非所有块都是唯一的,否则您将收到重复的块标签错误。
[ 这就是 knit_child 存在的原因。 ]
- 输出目标和其他选项已经设置,因此您要么需要一个全新的knitr环境,要么保存、修改、恢复所有相关选项。
话虽这么说,这似乎完全是预料之中的行为。
类似的东西
library(knitr)
files <- list.files( pattern = "*.Rnw", path = ".")
files
## [1] "test_extB.Rnw" "test_ext.Rnw"
for( f in files ) {
system( paste0("R -e \"knitr::knit2pdf('", f, "')\"") )
}
list.files( pattern="*.pdf", path=".")
## [1] "test_extB.pdf" "test_ext.pdf"
或致电Rscript
在一个循环中应该可以解决这个问题(基于提供的信息),这基本上就是@kohske 在评论中表达的内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)