使用knitr :: rmarkdown_notangle进行非评估的晕影

时间:2014-11-04 01:39:05

标签: r knitr

knitr包最近添加了新的notangle晕影引擎,例如knitr::rmarkdown_notangle,它们允许禁用晕影块的评估。 here描述了使用knitr用于插件的一般过程,而this question的答案中描述了特定的notangle功能。

我的问题是我无法让它发挥作用。我可以通过在R CMD build目录中添加.html输出来传递vignettes(我也在inst/doc中添加了一个副本),但我无法获得要传递R CMD check,除非我指定--no-build-vignettes,或者除非我将rmarkdown_notangle引擎更改回rmarkdown

我已经构建了一个简单的包,其中包含以下小插图(在vignettes/notangle.rmd中):它可用here

<!--
%\VignetteEngine{knitr::rmarkdown_notangle}
%\VignetteIndexEntry{Supplementary Materials}
-->
A silly little vignette.

```{r}
2+2
```

我的DESCRIPTION文件包含

Suggests:
    knitr,
VignetteBuilder: knitr
BuildVignettes: yes

当我尝试运行R CMD check时,我得到了

* checking re-building of vignette outputs ... NOTE
Error in re-building vignettes:
   ...
Error: processing vignette 'notangle.rmd' failed with diagnostics:
Failed to locate the ‘weave’ output file (by engine ‘knitr::rmarkdown_notangle’) 
   for vignette with name ‘notangle’. The following files exist in directory ‘.’:
   ‘notangle.rmd’

使用r-devel(2014-09-17 r66626),但也适用于3.1.1。

解决方法(我非常希望避免)是从R代码块切换到通用代码块(打开三重反键,而不是三重反键+&#34; r&#34;),其中Rmarkdown没有处理。

我确定我做了一些愚蠢的事情。有线索吗?

更新:我可以通过明确地将eval=FALSE添加到每个块的选项中来获得我需要的内容(停止评估所有块),但我还是喜欢知道发生了什么...

1 个答案:

答案 0 :(得分:5)

这是knitr当前版本中的一个错误,它在fixed 1.7.9中已经development version,希望将来(希望)在CRAN上为v1.8。 / p>