带有选项的 beamer 自定义框架环境

带有选项的 beamer 自定义框架环境

我正在制作大量幻灯片。其中一些幻灯片是关于附加材料的。
这些幻灯片应该有不同的背景颜色,也许还有一点徽标,以便在视觉上脱颖而出。
为了不重复背景和徽标多次,并且能够一次调整所有这些附加帧,我正在考虑一个自定义命令/环境。

我已经找到了如何自定义框架环境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}

在此处输入图片描述

相关内容