在我的朋友的Windows PC上,然后运行任何类型的绘图,其中knitr输出与dev =' tikz'我收到了错误。
适用于dev =' pdf'。
输出文件" foo-1.tikz"这可以自己编译好,但是当使用knitr by
时knit("temp.Rnw")
然后呢
processing file: temp.Rnw
|...................... | 33%
ordinary text without R code
|........................................... | 67%
label: foo (with options)
List of 2
$ fig.height: num 4
$ dev : chr "tikz"
Creating new TikZ metrics dictionary at:
temp-tikzDictionary
Using TikZ metrics dictionary at:
temp-tikzDictionary
Quitting from lines 9-13 (temp.Rnw)
Error: failed to compile figure/foo-1.tikz to PDF
我不知道可能出现什么问题以及在哪里寻找解决方案。不知怎的,knitr无法找到如何调用pdflatex或其他东西。
任何人都可以提示我如何解决这个问题吗?
答案 0 :(得分:0)
我有同样的问题。
由于this report on the knitr Github repo,我找到了解决方法。
设置块选项external=FALSE
。使用此选项,knitr
不会运行文件xxx.tikz
的编译。相反,它将它们包含在LaTeX文件中,如下所示:
\begin{knitrout}
\definecolor{shadecolor}{rgb}{0.969, 0.969, 0.969}
\input{figure/myplot-1.tikz}
\end{knitrout}
这种方式的问题在于忽略了块选项out.width
,并且数字可能非常大,以至于它们都处于边缘甚至更远的位置。
但你可以使用scalebox
在Rnw中控制这样的数字大小:
\begin{figure}
\centering
\scalebox{0.5}{
<<myplot, echo=FALSE, fig.width=10, fig.height=6, dev='tikz', external=FALSE>>=
…….
@
}
\end{figure}
奇怪的是,dev.args
chunk选项会导致崩溃(我尝试例如dev.args=list(width=3,height=3)
来设置维度),而它应该将参数传递给设备。