table 之间的换行符和 pdf_document 在 R Markdown 中输出的图

Line break between table and plot with pdf_document output in R Markdown

我正在使用 R Markdown 创建带有 PDF 输出的文档。

我的代码在“for”循环中创建了许多 table 和图形,在同一代码块 中。我见过的在 PDF 文档中创建换行符的所有技巧 - 前面的斜线和 spaces 的各种组合和排列(例如,换行符、换行符、
、  等) 不工作。所以,我决定偷工减料,只增加我的 ggplot2 边距中的图 space,以在我的 table 和我的图表之间创造更多白色 space 的错觉。

请参阅下面的屏幕截图和代码,其中包含两个相同的代码块 - 除了绘图的背景颜色 - 其中一个具有浅米色背景的绘图在 [= 之间显示所需的“白色 space” 43=] 和情节标题,下面的情节(白色背景)不显示相同的“白色 space”。

---
title: "I need a line break"
output: pdf_document
---

```{r setup, include=FALSE}
library(ggplot2)
library(knitr)
library(ggplot2)
knitr::opts_chunk$set(echo = FALSE, 
                  include = TRUE, 
                  message = FALSE, 
                  warning = FALSE, 
                  error = FALSE)
```

```{r, results = "asis", fig.height = 2}
for (i in 1) {
mytable <- kable((iris[c(1,2),]), booktabs = TRUE)

print(mytable)

myplot <- ggplot(iris) + 
labs(title = "Gorgeous plot") +
geom_point(aes(Sepal.Length, Sepal.Width)) +
theme_void() +
theme(plot.background = element_rect(fill = "#FFFEEB", color = "white"),
  plot.margin = unit(c(1, 0, 0, 0), "cm"))
print(myplot)
}
```


```{r, results = "asis", fig.height = 2}
for (i in 1) {
mytable <- kable((iris[c(1,2),]), booktabs = TRUE)

print(mytable)

myplot <- ggplot(iris) + 
labs(title = "Gorgeous plot") +
geom_point(aes(Sepal.Length, Sepal.Width)) +
  theme_void() +
  theme(plot.background = element_rect(fill = "white", color = "white"),
  plot.margin = unit(c(1, 0, 0, 0), "cm"))

print(myplot)
}
```

能否用cat加换行来解决你的问题?例如

---
title: "I need a line break"
output: pdf_document
---

```{r setup, include=FALSE}
library(ggplot2)
library(knitr)
library(ggplot2)
knitr::opts_chunk$set(echo = FALSE, 
                  include = TRUE, 
                  message = FALSE, 
                  warning = FALSE, 
                  error = FALSE)
```

```{r, results = "asis", fig.height = 2}
for (i in 1:2) {
mytable <- kable((iris[c(1,i),]), booktabs = TRUE)
print(mytable)
cat("\ ")
cat("\linebreak")
cat("\linebreak")
cat("\linebreak")
myplot <- ggplot(iris) + 
labs(title = "Gorgeous plot") +
geom_point(aes(Sepal.Length, Sepal.Width)) +
  theme_void()
print(myplot)
cat("\linebreak")
cat("\linebreak")
}
```

(需要cat("\ ")以便有一行结束)