将多个框架选项传递给 rmarkdown::beamer_presentation 中的单个框架

Passing multiple frame options to a single frame in an rmarkdown::beamer_presentation

如何将多个框架选项传递给 rmarkdown::beamer_presentation 中的特定框架?

在下面的 MWE 中,第二帧应包含与前一帧相同的 table,只是多了几行。

因此,

  1. 两个框架的页码编号最好相同 (=> {.noframenumbering})

  2. 只需将第 2 帧的行添加到第 1 帧的下方,两帧的内容应为 top-aligned (=> {.t})。 由于其他一些幻灯片要求框架内容垂直居中对齐,因此不希望在 YAML header 中设置 classoption: t

MWE

---
output:
  bookdown::pdf_book:
    base_format: rmarkdown::beamer_presentation
    slide_level: 2
    keep_tex: true
---

## Slide

```{r table, cars, echo = FALSE}
library(kableExtra)
knitr::kable(head(mtcars[1:3, 1:3]), caption = "Table caption")
```

## Slide {.noframenumbering}

```{r table, cars2, echo = FALSE}
library(kableExtra)
knitr::kable(head(mtcars[1:6, 1:3]), caption = "Table caption")
```

(在 YAML-header 中添加多个类选项是可行的,方法是用逗号分隔它们,例如 classoption: t, aspectratio=169。同样的方法对我来说在为单个帧调整它们时不起作用,即, ## Slide {.noframenumbering,.t}.)

您可以使用以下语法将多个选项传递给一个框架:

---
output:
  bookdown::pdf_book:
    base_format: rmarkdown::beamer_presentation
    slide_level: 2
    keep_tex: true
---

## Slide {.t}

```{r table, cars, echo = FALSE}
library(kableExtra)
knitr::kable(head(mtcars[1:3, 1:3]), caption = "Table caption")
```

## Slide {.noframenumbering .t}

```{r table, cars2, echo = FALSE}
library(kableExtra)
knitr::kable(head(mtcars[1:6, 1:3]), caption = "Table caption")
```

使用 pandoc 2.17.1.1 或更新版本,框架选项现在更容易:

---
output:
  bookdown::pdf_book:
    base_format: rmarkdown::beamer_presentation
    slide_level: 2
    keep_tex: true
---

## Slide {frameoptions="t"}

```{r table, cars, echo = FALSE}
library(kableExtra)
knitr::kable(head(mtcars[1:3, 1:3]), caption = "Table caption")
```

## Slide {frameoptions="noframenumbering,t"}

```{r table, cars2, echo = FALSE}
library(kableExtra)
knitr::kable(head(mtcars[1:6, 1:3]), caption = "Table caption")
```