在具有自定义 beamer 主题的 rmarkdown::beamer_presentation 中创建从徽标到内容幻灯片 table 的超链接
Create a hyperlink from the logo to the table of contents slide in an rmarkdown::beamer_presentation with a custom beamer theme
我在 rmarkdown::beamer_presentation
中使用自定义 LaTex beamer theme
。
根据这些 SO 答案 (, , theme path),我使用了 YAML header 和 beamerthemeTHEMENAME.sty
的几个修改。
这些 LaTex hack 是在 rmarkdown::beamer_presentation
.
中顺利应用 LaTex Beamer theme
所必需的
对于 beamerouterthemeTHEMENAME.sty
中定义的脚线,最好有一个从徽标到 table of contents
幻灯片的超链接(就像幻灯片编号链接到 appendix
).
我试过的方法:在 beamerouterthemeTHEMENAME.sty
中定义自定义脚线
\mode<presentation>
...
% Foot line
\setbeamertemplate{footline}{
\leavevmode%
\hyperlink{toc---table-of-contents}{\includegraphics[width=12mm,trim=0mm 0.4mm 0mm 0mm]{img/my_logo.png}}
\hfill
\hyperlinkappendixstart{\insertframenumber/\inserttotalframenumber}
\vspace{3mm}
}
\mode<all>
有关完整的 MWE,请参阅我的 。
在普通的 beamer 代码中,您可以简单地在框架上附加一个标签,但是 Rmarkdown 似乎太愚蠢了,无法正确解析 \begin{frame}[label=outline]
中的方括号...烦人!
作为一种解决方法,您可以使用类似节名之类的东西,markdown 会自动为其插入标签:
---
subtitle: "Beamer presnetation with R-markdown"
institute: "some place"
date: "`r format(Sys.time(), '%B %d, %Y')`"
author: "Donald Duck"
output:
# beamer_presentation: default
bookdown::pdf_book:
base_format: rmarkdown::beamer_presentation
# includes:
# in_header: preamble.tex
theme: "THEMENAME"
latex_engine: xelatex
toc: false
slide_level: 2
keep_tex: true
header-includes:
- \AtBeginDocument{\title{MWE}\titleframe}
- \AtEndDocument{\begin{closingframe}lalala\end{closingframe}}
- \makeatletter\beamer@ignorenonframefalse\makeatother
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
```
## Outline {.unnumbered}
\tableofcontents
# section
## Slide with Bullets
<!-- ======================================================== -->
- Bullet 1
- Bullet 2
- Bullet 3
<!-- Appendix -->
<!-- ======================================================== -->
``` {=latex}
\end{frame}
\appendix
\begin{frame}
```
并在脚注中使用此目标
% Footline
\setbeamertemplate{footline}{
\leavevmode%
\hyperlink{outline}{\includegraphics[width=12mm,trim=0mm 0.4mm 0mm 0mm]{example-image}}
\hfill
\hyperlinkappendixstart{\insertframenumber/\inserttotalframenumber}
\vspace{3mm}
}
我在 rmarkdown::beamer_presentation
中使用自定义 LaTex beamer theme
。
根据这些 SO 答案 (beamerthemeTHEMENAME.sty
的几个修改。
这些 LaTex hack 是在 rmarkdown::beamer_presentation
.
LaTex Beamer theme
所必需的
对于 beamerouterthemeTHEMENAME.sty
中定义的脚线,最好有一个从徽标到 table of contents
幻灯片的超链接(就像幻灯片编号链接到 appendix
).
我试过的方法:在 beamerouterthemeTHEMENAME.sty
中定义自定义脚线
\mode<presentation>
...
% Foot line
\setbeamertemplate{footline}{
\leavevmode%
\hyperlink{toc---table-of-contents}{\includegraphics[width=12mm,trim=0mm 0.4mm 0mm 0mm]{img/my_logo.png}}
\hfill
\hyperlinkappendixstart{\insertframenumber/\inserttotalframenumber}
\vspace{3mm}
}
\mode<all>
有关完整的 MWE,请参阅我的
在普通的 beamer 代码中,您可以简单地在框架上附加一个标签,但是 Rmarkdown 似乎太愚蠢了,无法正确解析 \begin{frame}[label=outline]
中的方括号...烦人!
作为一种解决方法,您可以使用类似节名之类的东西,markdown 会自动为其插入标签:
---
subtitle: "Beamer presnetation with R-markdown"
institute: "some place"
date: "`r format(Sys.time(), '%B %d, %Y')`"
author: "Donald Duck"
output:
# beamer_presentation: default
bookdown::pdf_book:
base_format: rmarkdown::beamer_presentation
# includes:
# in_header: preamble.tex
theme: "THEMENAME"
latex_engine: xelatex
toc: false
slide_level: 2
keep_tex: true
header-includes:
- \AtBeginDocument{\title{MWE}\titleframe}
- \AtEndDocument{\begin{closingframe}lalala\end{closingframe}}
- \makeatletter\beamer@ignorenonframefalse\makeatother
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
```
## Outline {.unnumbered}
\tableofcontents
# section
## Slide with Bullets
<!-- ======================================================== -->
- Bullet 1
- Bullet 2
- Bullet 3
<!-- Appendix -->
<!-- ======================================================== -->
``` {=latex}
\end{frame}
\appendix
\begin{frame}
```
并在脚注中使用此目标
% Footline
\setbeamertemplate{footline}{
\leavevmode%
\hyperlink{outline}{\includegraphics[width=12mm,trim=0mm 0.4mm 0mm 0mm]{example-image}}
\hfill
\hyperlinkappendixstart{\insertframenumber/\inserttotalframenumber}
\vspace{3mm}
}