加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

使用knitr,HTML / markdown和PDF / Latex实现一致的图形字体大小

发布时间:2020-12-14 23:48:50 所属栏目:资源 来源:网络整理
导读:当比较针织文件生成的图形时,我正在尝试排除字体大小明显的差异. HTML / markdown输出似乎是我认为正确的大小,而PDF / Latex输出大约为2-4点(例如,如果我期望12pt,输出接近14或16点).请注意,问题似乎仅限于情节/图形文本,似乎不会与输出文档中的其他文本一起
当比较针织文件生成的图形时,我正在尝试排除字体大小明显的差异. HTML / markdown输出似乎是我认为正确的大小,而PDF / Latex输出大约为2-4点(例如,如果我期望12pt,输出接近14或16点).请注意,问题似乎仅限于情节/图形文本,似乎不会与输出文档中的其他文本一起显示.

当我创建一个新的* .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 withndifferent 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

解决方法

您是否尝试过 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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读