幻灯片及其内容之间的交叉引用

Cross references between slides and its content

在输出格式为 beamer 的 R markdown 演示文稿中(生成 LaTex/PDF 文件),是否可以在幻灯片(即最终 PDF 的页面)之间创建交叉引用? 这对于在幻灯片之间快速跳转非常有帮助,例如导航到演示文稿末尾的附录。

我尝试使用 中建议的 bookdown 命令,但没有成功。

MWE:

---
title: "Cross references between slides"
output:
  # beamer_presentation: default
  bookdown::pdf_book:
    base_format: rmarkdown::beamer_presentation
---

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

## Bullets with references

- Bullet 1: \ref{tab:my-table}
- Bullet 2: \ref{fig:my-plot}
- Bullet 3: \ref{appendix}

## Bullets with references (bookdown)

- Bullet 1: \@ref(tab:my-table)
- Bullet 2: \@ref(fig:my-plot)
- Bullet 3: \@ref(appendix)

## table

```{r my-table, cars, echo = TRUE}
library(kableExtra)
kable(summary(cars))
```

## plot

```{r my-plot, pressure}
plot(pressure)
```

## appendix

my appendix

要链接到附录,您可以使用

- Bullet 3: \hyperlinkappendixstart{appendix}

如果您检查 MWE 生成的 tex 代码,您会发现您的 table 和图形都包含在没有标题或 figure/table 环境的情况下,但您可以参考他们所在的幻灯片

- Bullet 1: \hyperlink{table}{table}
- Bullet 2: \hyperlink{plot}{plot}

MWE:

---
title: "Cross references between slides"
output:
  beamer_presentation:
    theme: "default"
    keep_tex: true
    includes:
      in_header: preamble.tex    

---


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

## Bullets with references

- Bullet 1: \hyperlink{table}{table}
- Bullet 2: \hyperlink{plot}{plot}
- Bullet 3: \hyperlinkappendixstart{appendix}


## table


```{r my-table, cars, echo = TRUE}
library(kableExtra)
kable(summary(cars))
```

## plot


```{r my-plot, pressure}
plot(pressure)
```

## appendix
\appendix
my appendix

方法二

或者您可以使用 caption 包为您的 table 和情节添加字幕

---
title: "Cross references between slides"
output:
  beamer_presentation:
    theme: "default"
    keep_tex: true
    includes:
      in_header: preamble.tex    

---


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

## Bullets with references

- Bullet 1: \ref{foo}
- Bullet 2: \ref{bar}
- Bullet 3: \hyperlinkappendixstart{appendix}


## table


```{r my-table, cars, echo = TRUE}
library(kableExtra)
kable(summary(cars))
```
\captionof{table}{foo}
\label{foo}

## plot


```{r my-plot, pressure}
plot(pressure)
```
\captionof{figure}{bar}
\label{bar}

## appendix
\appendix
my appendix

将此用作 preamble.tex:

\setbeamertemplate{caption}[numbered]
\usepackage{caption}