书记中的子图重复标题

问题描述 投票:0回答:1

The section of the bookdown manual on generating figures演示了一个案例,其中include_graphics()可以被赋予长度> 1的路径向量,产生一些具有单个标题的子图:

enter image description here

但是,当我在我的thesisdown的叉子中尝试这个时,在PDF输出中,我得到每个子图重复的图标题(并且,根据间距来判断,整个图形环境)。这是一个可重复的例子:

---
output: bookdown::pdf_document2
toc: false
---


```{r, echo = FALSE}
for(i in 1:3){
  jpeg(filename = paste0("temp_", i, ".jpg"), width = 600, height = 250)
  plot(cars)
  title(main = i)
  dev.off()
}
```

```{r fig.cap = "Caption", out.width="100%", fig.ncol = 1, echo = FALSE}
knitr::include_graphics(paste0("temp_", 1:3, ".jpg"))
```

enter image description here

我希望更多的是堆叠的五个图像,底部有一个标题。这也似乎打破了图形交叉引用,因为每个图都有自己的图形编号,并且对块的交叉引用呈现为??

r r-markdown bookdown
1个回答
1
投票

获取子图需要在块头中设置一些额外的设置。

  • fig.subcap是subfigures的标题列表
  • fig.ncol:subfigures的列数
  • out.width:数字的输出宽度。您通常会将此100%除以子列数。

子图是使用subfig包构建的。您可以将其包含在LaTeX bookdown模板中,也可以将其添加到YAML中,如下所示:

这是一个例子:

---
output: bookdown::pdf_document2
toc: false
header-includes:
   - \usepackage{subfig}
---

```{r, echo = FALSE}
for(i in 1:3){
  jpeg(filename = paste0("temp_", i, ".jpg"), width = 600, height = 250)
  plot(cars)
  title(main = i)
  dev.off()
}
```

```{r fig.cap = "Caption", out.width="100%", fig.ncol = 1, echo = FALSE, fig.subcap= c("First", "Second", "Third")}
knitr::include_graphics(paste0("temp_", 1:3, ".jpg"))
```

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.