1

我目前正在通过 Knitr 玩 R 和 LaTeX。

试图用投影仪做一个非常简单的幻灯片,我遇到了一个小问题。当我使用 \includegraphics 方法插入图像时,它很好地采用与文本长度相同的宽度。但是,当我使用 R 代码生成 ggplot2 图表时,图表宽度似乎限制在文本长度的 2/3 左右(对于信息量大的图表来说非常小)。即使设置了非常宽的图形宽度也会发生这种情况......

有没有办法删除 R 数字似乎添加的所有额外边距?

下面的代码重现了这种情况。

\documentclass{beamer} 

\begin{document}
\SweaveOpts{concordance=TRUE}

\begin{frame}[fragile]{A sample slide}

Some text to show text length, Some text to show text length, Some text to show text length, Some text to show text length.

\begin{center}

<<figureExample, echo=False, fig=true, out.width=15>>=
library(ggplot2)
qplot(displ, hwy, data = mpg, colour = factor(cyl)) + 
    theme(plot.background = element_rect(fill='green', colour='red')) +
    theme(plot.margin = unit(c(0,0,0,0), "cm"))
@

\end{center}
\end{frame}

\end{document}

任何帮助将不胜感激,我尝试了我能找到的一切:(提前致谢!

4

1 回答 1

3

正如评论中提到的@joran,\SweaveOpts{concordance=TRUE}不应该在那里。如果 RStudio 坚持将其添加到您的文档中,我对您的 RStudio 设置高度怀疑——似乎您使用的是 Sweave 而不是knitr编译此文档(在这种情况下,如果您检查了一致性选项,RStudio 确实会添加它) . 转到Tools -> Options -> Sweave,查看您是否已将默认Sweave选项更改为knitr

默认情况下, Sweave 将图形宽度设置为.8\textwidth全局,这可能解释了您看到的问题。

另请注意echo=False, fig=true不是有效的knitr 块选项。你需要使用TRUE/FALSE. 对于out.width,您最好给它一个明确的单位,例如inor cm

于 2013-06-11T22:23:37.000 回答