我需要更改我的R Sweave文档生成的所有tiff图像的背景,并遇到与此处描述的相同的问题:
Respecting global options in knitr
但是使用par(bg =),据说根据评论工作。
MWE:
\documentclass{article}
\begin{document}
<<setup, cache = FALSE>>=
opts_chunk$set(dev = c('pdf','tiff'))
opts_knit$set(global.par = TRUE)
par(bg='cyan')
@
<<>>=
plot (3,3)
@
\end{document}
(我不允许发表评论或者我会留在那篇文章上。)
我也试过使用一个钩子,基于这里的例子: https://github.com/yihui/knitr/blob/master/inst/examples/knitr-graphics.Rnw
knit_hooks$set(par=function(before, options, envir){
if (before) par(bg='cyan')
})
但这也不起作用。
唯一有效的方法是在每个块中设置参数,例如:
<<test, dev = 'tiff'>>=
par(bg = 'cyan')
plot(3,2)
@
(我实际上想要一个白色的背景,但用颜色测试更容易。不是我选择使用TIFF顺便说一句。)
关于发生了什么的任何想法?
答案 0 :(得分:1)
所提供的MWE并不意味着global.par
不适用于bg
。情节不使用指定背景颜色的原因是global.par = TRUE
仅影响后续块。
必须在任何依赖这些设置激活的块之前将Knitr的设置设置在块中。 [source]
您不能依赖全局选项来应用您设置的块。
以下示例演示了在稍后的块中设置背景颜色会使绘图使用它:
\documentclass{article}
\begin{document}
<<setup, cache = FALSE>>=
opts_knit$set(global.par = TRUE)
@
<<>>=
par(bg='cyan')
@
<<>>=
plot (3,3)
@
\end{document}