dev='png' 不适用于 knitr 中的 pdf 输出

dev='png' is not working for pdf output in knitr

在默认设置中,knitr 将使用“'pdf' 用于 LaTeX 输出,'png' 用于 HTML/markdown”。但是,我可以在 LaTeX 输出的块选项中指定 dev = "png" 。此功能对于减小大矢量图(例如地图)的文件大小非常有用。

在以前版本的 knitr(可能是 1.8.*,但不确定)中,我可以指定 dev = "png"(下面的示例适用于早期版本)。

今天我从 github 安装了最新版本的 knitr(刚刚)。但是 dev='png' 不适用于 pdf 输出。我必须使用 png 设备进行 pdf 输出,因为我有一些 pdf 格式的大矢量图。

错误信息是:

 Error in (function (filename = "Rplot%03d.png", width = 480, height = 480, :
 unused argument (pdf = list(useDingbats = FALSE) Call: <Anonymous> ...
 block_exec -> chunk_device -> dev_new -> do.call -> <Anonymous> Execution halted))

我该如何解决这个问题?

这是我的例子:

---
output: pdf_document
---


```{r, echo=FALSE, dev='png'}
plot(cars)
```

感谢您的任何建议。如果我的问题还不清楚,请告诉我。

这是我的会话信息。

R version 3.1.3 (2015-03-09)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1

locale:
[1] LC_COLLATE=English_Australia.1252  LC_CTYPE=English_Australia.1252    LC_MONETARY=English_Australia.1252
[4] LC_NUMERIC=C                       LC_TIME=English_Australia.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] knitr_1.9.4

loaded via a namespace (and not attached):
[1] digest_0.6.4    evaluate_0.5.5  formatR_1.0     htmltools_0.2.6 rmarkdown_0.5.1 stringr_0.6.2  
[7] tools_3.1.3     yaml_2.1.13    

这是 knitr 中的错误。我只是 fixed it in the development version (v1.9.5)。失败的原因是 pdf 设备的选项已传递给 png 设备。