![带有选项的 beamer 自定义框架环境](https://linux22.com/image/436816/%E5%B8%A6%E6%9C%89%E9%80%89%E9%A1%B9%E7%9A%84%20beamer%20%E8%87%AA%E5%AE%9A%E4%B9%89%E6%A1%86%E6%9E%B6%E7%8E%AF%E5%A2%83.png)
我正在制作大量幻灯片。其中一些幻灯片是关于附加材料的。
这些幻灯片应该有不同的背景颜色,也许还有一点徽标,以便在视觉上脱颖而出。
为了不重复背景和徽标多次,并且能够一次调整所有这些附加帧,我正在考虑一个自定义命令/环境。
我已经找到了如何自定义框架环境https://tex.stackexchange.com/a/224679/71672。但是,由于 knitr 逐字输出,
我需要脆弱选项。 使用下面的(幼稚的?)代码,我得到错误 ! \beamer@processframefirstline 的参数有一个额外的 }。 !段落在 \beamer@processframefirstline 完成之前结束。 !额外的 },或忘记了 \endgroup。 !LaTeX 错误:输入第 18 行的 \begin{myframe} 由 \end{document} 结束。\begin{frame}[fragile]{slide title}
fragile
参考答案是否可以实现该选项?
我是否应该考虑采用其他方法?
\documentclass{beamer}
\usepackage{environ}
\NewEnviron{myframe}[1][]{%
{\setbeamercolor{background canvas}{bg=yellow}
\begin{frame}[fragile]{#1}
\BODY
\end{frame}
}}
\begin{document}
\begin{frame}[fragile]
\frametitle{first slide}
regular
\end{frame}
\begin{myframe}[some title]
myframe with different bg and maybe also an image
\end{myframe}
\begin{frame}{outro}
regular again
\end{frame}
\end{document}
答案1
使用environment=myframe
选项:
\documentclass{beamer}
\newenvironment{myframe}[1]{%
\setbeamercolor{background canvas}{bg=yellow}
\begin{frame}[environment=myframe,fragile]{#1}
}{
\end{frame}
}
\begin{document}
\begin{frame}[fragile]
\frametitle{first slide}
regular
\end{frame}
\begin{myframe}{some title}
myframe with different bg and maybe also an image
\end{myframe}
\begin{frame}{outro}
regular again
\end{frame}
\end{document}