首页 > 解决方案 > 自动调整大图以适合 rmarkdown 的页面 pdf 输出

问题描述

将我的 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)
```

标签: rlatexr-markdownknitr

解决方案


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

```{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()当您想要原始默认值时,需要明确指定您更改使用的每一个。因此,对于像这些奇怪的选项,将选项剪切并粘贴到需要它们的每个块中,并保留默认值可能不是不可能的。


推荐阅读