我在尝试比较为knitr
文档生成的图时,尝试解决字体大小的明显差异。 HTML /降价输出似乎是我认为正确的大小,而PDF / Latex输出大约2-4磅(例如,如果我期望12pt,输出更接近14或16分)。请注意,问题似乎仅限于绘图/图形文本,并且似乎不会与输出文档中的其他文本一起显示。
我演示这个的最简单方法是使用创建新*.Rmd
文件时RStudio(版本0.99.329)填充的默认内容。可以通过this link进行并排比较。在我看来,HTML版本的大小合适,而PDF / Latex版本则没有。
据我所知,我的.Rprofile或其他可能影响此问题的位置没有任何自定义设置。我尝试过禁用/启用pdf crop,这似乎也没有影响到这个问题。我在同事机器上复制了这个问题(同时运行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 /乳胶输出的字体。这可行,但在为同一*.Rmd
文件创建多个平台/用途的输出时,会增加另一层复杂性...... rmarkdown
的主要优势之一。
我的设置和系统的规格
答案 0 :(得分:2)
您是否尝试过this解决方案,为不同的输出格式设置不同的输出设备?这是:
通过在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。