自动调整大图以适应rmarkdown的页面pdf输出

时间:2018-07-13 10:52:57

标签: latex r-markdown knitr

在将rmarkdown文件编织成具有大面积图的PDF时出现问题。生成PDF文件时,地块会被剪掉。

问题是我找不到自动调整所有图的高度和宽度的方法。当我写一个非常大的报告时,我有几个这样的图,因此毫无疑问地(通过fig.width和fig.height)调整它们。

在YAML或preamble.tex文件中应该使用任何程序包/命令吗?

最小的可复制示例:

---
output: pdf_document
---

## Large Plot

```{r}
library(meta)

data(Fleiss93)

##
m <- metabin(event.e, n.e, event.c, n.c,
              data = Fleiss93, studlab = study,
              sm = "RR", method = "I")

forest(m)
```

1 个答案:

答案 0 :(得分:1)

要更改默认设置,请将以下代码块放在文档的开头:

```{r include = FALSE}
knitr::opts_chunk$set(fig.height = 9, fig.width = 7)
```

您也可以使用类似的东西

```{r include = FALSE}
knitr::opts_chunk$set(out.height = "\\textheight",  out.width = "\\textwidth")
```

重新缩放图像以尝试完全填满页面。默认情况下,knitr会阻止您更改宽高比,但是如果您确实要填充页面,失真和所有内容,请使用

```{r include = FALSE}
knitr::opts_chunk$set(out.height = "\\textheight",  out.width = "\\textwidth",
                      out.extra = "keepaspectratio=false")
```

我建议您反对最终选择;您的地块看起来真的很难看。

更笼统地说:knitr的默认值非常好。当您想使用原始默认值时,需要明确指定使用knitr::opts_chunk$set()进行更改的每个内容。因此,对于像这样的怪异选项,仅将选项剪切并粘贴到需要它们的每个块中,而不必使用默认值,就不是不可能的事情了。