1

我需要更改我的 R Sweave 文档生成的所有 tiff 图像的背景,并且遇到了与此处描述的相同的问题:

尊重 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 顺便说一句。)

关于发生了什么的任何想法?

4

1 回答 1

1

提供的 MWE 并不意味着它global.par不适用于bg. 绘图不使用指定背景颜色的原因是global.par = TRUE仅影响后续块。

Knitr 的设置必须在依赖这些设置的任何块之前设置在块中。[来源]

您不能依赖全局选项在您设置的块中应用。

下面的例子演示了在后面的块中设置背景颜色使绘图使用它:

\documentclass{article}
\begin{document}

<<setup, cache = FALSE>>=
opts_knit$set(global.par = TRUE)
@

<<>>=
par(bg='cyan')
@

<<>>=
plot (3,3)
@

\end{document}
于 2016-03-01T15:31:40.377 回答