我目前正在通过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}
任何帮助都会非常感激,我尝试了所有我能找到的东西:( 提前谢谢!
答案 0 :(得分:3)
正如@joran在评论中提到的那样,\SweaveOpts{concordance=TRUE}
不应该存在。如果RStudio坚持将其添加到您的文档中,我对您的RStudio设置持高度怀疑态度 - 您似乎使用Sweave而不是knitr
来编译此文档(在这种情况下,如果您有,则RStudio会添加此项检查了一致性选项)。转到Tools -> Options -> Sweave
,看看您是否已将默认Sweave
选项更改为knitr
。
Sweave默认情况下将图形宽度全局设置为.8\textwidth
,这可以解释您看到的问题。
另请注意echo=False, fig=true
无效knitr
chunk options。您需要使用TRUE/FALSE
。对于out.width
,您最好给它一个明确的单位,例如in
或cm
。