当我创建一个新的* .Rmd文件时,我最简单的方法就是使用RStudio(版本0.99.329)填充的默认内容.通过this link可以并列比较.对我而言,HTML版本的大小和PDF / Latex版本不一致.
据我所知,我的.Rprofile或其他可能影响此问题的位置中没有任何自定义设置.我已经尝试禁用/启用pdf作业,似乎也不会影响问题.我在同事机器上重复了这个问题(也运行OS X和相同版本的RStudio).
在rmarkdown框架之外(即刚刚运行R代码),PDF和PNG输出之间似乎并没有这样的区别.例如,以下代码生成的输出非常相似:
library(ggplot2) r <- ggplot(data = diamonds,aes(x = carat,y = price,color = cut,group = cut)) r + geom_smooth(size = 2) + ggtitle("Plant growth with\ndifferent treatments") ggsave(file="test.pdf") ggsave(file="test.png")
鉴于上面的代码生成的输出图很相似,我怀疑我看到的问题与knitr或rmarkdown / pandoc转换过程有关.
所以,我的主要问题是我期待在输出格式之间看到差异程度吗?我是唯一的吗?我的系统是独一无二的吗?
如果是预期的行为,人们如何协调问题?对于ggplots,我一直在使用theme_bw(8.5)来缩小PDF / latex输出的字体.这是有效的,但是当从相同的* .Rmd文件创建多个平台/使用的输出时,它增加了另一个级别的复杂性… rmarkdown的主要优点之一.
我的设置和系统的规格
> OS X 10.10.2,MacBook Pro(Retina,15-inch,2013年初)
> RStudio版本0.99.329
> R版本3.1.2(2014-10-31) – “南瓜头盔”
> rmarkdown 0.5.1
潘多克1.13.1
解决方法
通过在Makefile中为knitr设置特定选项,从一个唯一的Markdown文件生成pdf和html输出的解决方案:
$(PDF): $(SRC) Makefile Rscript \ -e "library(knitr)" \ -e "opts_chunk[['set']](dev = 'pdf')" \ -e "pat_gfm()" \ -e "knit('$<','temp.md')" $(PANDOC) temp.md -o $@ rm temp.md
This答案也有有趣的想法.
这里是:
尝试将此代码块放在Rmd文档的开头.
```{r setup,cache=FALSE,include=FALSE} library(knitr) output <- opts_knit$get("rmarkdown.pandoc.to") if (output=="html") opts_chunk$set(fig.width=11,fig.height=11) if (output=="docx") opts_chunk$set(fig.width=6,fig.height=6) ```
opts_knit $get()返回的一个包选项是markdown.pandoc.to.根据所选择的输出格式(HTML,Word或PDF),这显然设置为“html”,“docx”或“latex”.所以你可以测试,并相应地设置块选项fig.width和fig.height.