为什么RStudio显示手动编织的pdf错误?

时间:2013-07-07 10:15:32

标签: r knitr rstudio

我在Mac OS X Mountain Lion 10.8.4上运行最新的RStudio(0.97.551)和R(3.0.1)版本。

我有以下两个文件: test.Rnw

\documentclass{article}

<<set-options, echo=FALSE>>=
 options(replace.assign=TRUE)
 opts_chunk$set(external=TRUE, cache=TRUE, echo=FALSE, fig=TRUE)
 read_chunk('chunks.R')
@

\begin{document}
\section{Graphics}

<<chart, fig.height=4>>=
@

\end{document}

和chunks.R

## @knitr chart
library(ggplot2, quietly=TRUE)
Sys.sleep(3)
p <- ggplot(mtcars, aes(wt, mpg))  + geom_point(aes(size = qsec)) +
   labs(title ="title with umlauts ä")
p
sessionInfo() 

在RStudio中编织此文档时,一切都很好:

generated with RStudio

现在我清除缓存并从运行命令的脚本手动编织文档:

export TEXINPUTS=$TEXINPUTS:/Library/Frameworks/R.framework/Versions/Current/Resources/share/texmf/tex/latex/
/usr/bin/Rscript -e "library(knitr); knit(\"test.Rnw\")"
pdflatex ./test.tex

一切都还不错。

但是我不清除缓存并再次在RStudio中编织。 RStudio的PDF查看器现在显示如下图表:

Regenerated with RStudio after chunks are generated manually

Mac OS X预览显示两个pdf都很好。我可以看到sessionInfo()的唯一区别是基本包的顺序。

有谁知道为什么RStudio显示图形错误?

我不知道如何分享这两个pdf。因此,如果有人需要它们并告诉我如何分享它们,我会这样做。

TIA, JW

1 个答案:

答案 0 :(得分:3)

RStudio在调用grDevices::pdf.options(useDingbats = FALSE)之前设置knitr(请参阅包含日志的面板Compile PDF),默认情况下选项useDingbatsTRUE R. RStudio的内置PDF查看器不支持Dingbats字体,因此在useDingbats = TRUE时,PDF查看器中的圆圈(实心点)被破坏了。有关详细信息,请参阅?pdf

您不应该使用RStudio的PDF查看器来自己查看RStudio在之外生成的PDF。 Tools -> Options -> Sweave -> PDF preview还有其他不错的选择,例如Windows下的Sumutra PDF和Linux下的evince。我不知道Mac OS X(至少你可以使用系统的默认查看器,我相信)。