[rmarkdown]如何处理table in beamer_presentation

[rmarkdown]How to deal with table in beamer_presentation

当我嵌入使用 knitr::kable 生成的 table 时, 我想调整 beamer_presentation 幻灯片中 table 的宽度。

像这张图一样,执行以下代码时,有些列在幻灯片中没有显示。

你能告诉我如何在不更改列名的情况下解决这个问题吗?

---
title: "test"
author: "test"
date: "`r Sys.time()`"
output:
   beamer_presentation:
     latex_engine: xelatex 

fontsize: 6pt 
---

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

```


## Table
```{r test, results = "asis",include=TRUE}

test_tbl = tibble(
  example_name1 = c("a", "b"),
  example_name2 = c("aa", "bb"),
  example_name3 = c("aaa", "bbb"),
  example_name4 = c("aaaa", "bbbb"),
  example_name5 = c("aaaaa", "bbbbb")
)


knitr::kable(test_tbl, format = "markdown")
```

table 太大,一张幻灯片放不下。通过使用 kableExtra 调整字体大小,可以更改 table 的大小。为此,请在 kable() 中设置参数 format = "latex",然后通过管道 kable_styling().

knitr::kable(test_tbl, format = "latex") %>%
  kableExtra::kable_styling(font_size = 7) 

包含像 booktabs 这样的 LaTeX 包可以很好地用 kablekableExtra 格式化 table。这不像直接使用 LaTeX 那样灵活,但通常会产生非常好的结果。

首先,在 YAML header.

中包含 booktabs
---
title: "test"
author: "test"
date: "`r Sys.time()`"
header-includes:
- \usepackage{booktabs}
output: beamer_presentation
---

然后在kable()中设置booktabs = TRUE

knitr::kable(test_tbl, format = "latex", booktabs = T) %>%
  kableExtra::kable_styling(font_size = 7)