你的问题\setmainstyle
命令的缺点是它将在框架内使用,因此无效。
为了避免这个问题,您可以使用与中相同的策略https://tex.stackexchange.com/questions/173201/beamer-template-with- different-style-options-for-frames https://tex.stackexchange.com/questions/173201/beamer-template-with-different-style-options-for-frames创建一个将更改背景的框架选项。
不幸的是,rmarkdown 简单地忽略了用户创建的框架选项,并且只传递一小部分预定义选项。为了欺骗 rmarkdown,人们可以重新利用通常不被 beamer 使用的框架选项,standout
框架选项(仅由大都市主题使用)
---
output:
beamer_presentation:
keep_tex: true
header-includes: |
\usepackage{etoolbox}
\defbeamertemplate{background canvas}{mydefault}{%
\includegraphics[width=\paperwidth,height=\paperheight]{example-image-duck}
}
\defbeamertemplate{background canvas}{standout}{%
\includegraphics[width=\paperwidth,height=\paperheight,page=2]{example-image-duck}
}
\BeforeBeginEnvironment{frame}{%
\setbeamertemplate{background canvas}[mydefault]%
}
\makeatletter
\define@key{beamerframe}{standout}[true]{%
\setbeamertemplate{background canvas}[standout]%
}
\makeatother
---
# frametitle
test
# frametitle with different background {.standout}
test
# frametitle
test
或者如果您想更改以下所有帧的背景:
\usepackage{etoolbox}
\defbeamertemplate{background canvas}{mydefault}{%
\includegraphics[height=\paperheight,page=2]{example-image-duck}
}
\defbeamertemplate{background canvas}{standout}{%
\includegraphics[height=\paperheight]{example-image-duck}
}
\setbeamertemplate{background canvas}[mydefault]%
\makeatletter
\define@key{beamerframe}{standout}[true]{%
\setbeamertemplate{background canvas}[standout]%
}
\makeatother
Update:
Pandoc 现在允许任意帧选项(https://github.com/jgm/pandoc/commit/7fbce82f2f7b69e88b23cf138ea6cd3a86786b91 https://github.com/jgm/pandoc/commit/7fbce82f2f7b69e88b23cf138ea6cd3a86786b91)
---
output:
beamer_presentation:
header-includes: |
\defbeamertemplate{background canvas}{mydefault}{}
\defbeamertemplate{background canvas}{special}{%
\includegraphics[width=\paperwidth,height=\paperheight]{example-image-duck}
}
\BeforeBeginEnvironment{frame}{%
\setbeamertemplate{background canvas}[mydefault]%
}
\makeatletter
\define@key{beamerframe}{special}[true]{%
\setbeamertemplate{background canvas}[special]%
}
\makeatother
---
# frametitle
test
# Heading {frameoptions="special"}
test
# frametitle
test