温馨提示:本文翻译自stackoverflow.com,查看原文请点击:r - How can I knit a .Rnw-file into latex, with plots as tikzpicture environments? (error: formal argume
knitr latex r tikzdevice

r - 如何将.Rnw文件编织到带有tikzpicture环境的绘图的乳胶中?

发布于 2020-04-20 10:16:54

我正在尝试将.Rnw文档转换为乳胶(包含在另一个.tex文档中)。所有绘图均使用tikz设备生成,但每个绘图均作为独立文档。我的目标是将它们放在tikzpicture环境中。

解决方案尝试

根据图上的knitr文档,应该可以standAlone=FALSE通过dev.args-list 传递这将产生错误消息formal argument "standAlone" matched by multiple actual argumentsKnitr问题#514描述了相同的错误消息,但其解决方案在这里不起作用。

要重现,请knitr::knit("mwe.Rnw")在以下文件上运行

\section*{MWE}
<<echo=FALSE,dev="tikz",dev.args=list(standAlone=FALSE)>>=
plot(x=1:10)
@

错误信息:

Quitting from lines 3-4 (mwe.Rnw) 
Error in tikzDevice::tikz(..., packages = c("\n\\nonstopmode\n", packages,  : 
  formal argument "standAlone" matched by multiple actual arguments

根据tikzDevice文档standAlone=FALSE无论如何应该是默认设置,不知道为什么它在这里不适用。

任何帮助是极大的赞赏。一个看似相关但不太具体的问题已经发布,但没有答案。

设定

> sessionInfo()
R version 3.6.1 (2019-07-05)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS Catalina 10.15.2

Matrix products: default
BLAS:   /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.6/Resources/lib/libRlapack.dylib

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

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

knitr_1.27
tikzDevice_0.12.3

查看更多

提问者
Nils Reiter
被浏览
64
Yihui Xie 2020-02-05 05:31

该参数standAlone由chunk选项控制external,因此您需要:

<<dev="tikz", external=FALSE>>=