RMarkdown / Knitr,匹配物理图形尺寸和显示的HTML尺寸

时间:2018-07-05 02:44:21

标签: r r-markdown knitr

我正在使用RMarkdown创建html文件(我的首选格式)。然后,我使用Officer包创建一个Powerpoint(PPT)(其他人首选的格式),以读取编织文档时自动创建并保存的.png图像(我相信在指定fig.path时这是默认设置) )。

为了在整个PPT图形中获得一致的字体大小,我在每个编织块fig.width, out.width中指定了等号,以使其等于相关的PPT占位符尺寸。例如,如果PPT占位符高5.29英寸x宽5.89英寸,那么在编织块中,我指定out.height="5.29in", out.width="5.89in", fig.height=5.29, fig.width=5.89)。对于PPT文件,这似乎可行,但是对于HTML文件,结果却非常小。有没有一种方法可以使编织器代码同时适用于html和PPT,而无需使用ggsave()这样的方法专门保存图像?

以下是一些自动生成的测试代码:

---
title: "Test_Figure_Size"
output: 
  html_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(fig.path = "Delete_Me/", echo=FALSE)
```

When you include out.height, out.width the figure is extremely small in the knitted html document, but perfectly sized as a .png file.
```{r pressure, echo=FALSE, out.height="5.29in", out.width="5.89in", fig.height=5.29, fig.width=5.89}
plot(pressure)
```

1 个答案:

答案 0 :(得分:1)

您说out.height="5.29in", out.width="5.89in"时,这些值将作为height的{​​{1}}和width属性写入HTML输出中。但是imgheight以像素表示,因此最终将得到一个约5像素正方形的数字。

我不使用Powerpoint,但是有一种方法可以以像素为单位指定图像大小,例如“ 589px”还是类似的东西?然后它将使用与浏览器相同的比例,并且事情应该保持一致。