缩放 kable table 以适应页面宽度

Scale kable table to fit page width

如何使用 kable 函数在 pdf 中格式化 table?因为我输出的table宽度超过了pdf的宽度。这是一个例子:

---
output: pdf_document
---

```{r}
df <- cbind(mtcars[1:5,], mtcars[1:5,])
knitr::kable(df)
```

一种选择是使用 kableExtra 包中的 kable_styling。选项 latex_options="scale_down" 将使 table 适合页边距。有关所有格式设置选项的详细示例,请参阅 the vignette

---
output: pdf_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
library(knitr)
library(kableExtra)
```

```{r}
kable(cbind(mtcars[1:5,], mtcars[1:5,]))
```

```{r}
kable(cbind(mtcars[1:5,], mtcars[1:5,]), format="latex", booktabs=TRUE) %>% 
  kable_styling(latex_options="scale_down")
```

请注意,如果您使用的是 longtable,this answer 表示,

since longtable doesn't support resizebox, you cannot use the "scale_down" option in latex_options.

但是,他们建议使用 font_size,例如,

kable(df, "latex", longtable = T, booktabs = T) %>%
  kable_styling(font_size = 7)