我正在使用beamerarticle
并想在内容周围放置一个框之间帧,并且只有当有内容时才显示。这可能吗?我尝试使用mdframes
与使用 mdframed 和 beamerarticle 构建 \frame但没有成功,因为编译时出现错误。
\documentclass[a4paper,12pt]{article}
\usepackage{beamerarticle}
\usepackage{mdframed}
\mode<article>{
\setbeamertemplate{frame begin}{\end{mdframed}}
\setbeamertemplate{frame end}{\begin{mdframed}}
}
\begin{document}
\begin{frame}
\frametitle{testframe}
content for testframe
\end{frame}
lalala interframetext
\begin{frame}
\frametitle{testframe}
content for testframe
\end{frame}
\end{document}
答案1
两个问题:
您的模板时间不对。
frame begin
和frame end
模板是在框架环境已经开始/仍在运行时执行的。这会在您的 mdframe 和 beamer 的框架环境之间创建一种链式链接。您必须在 beamer 框架之前或之后打开和关闭 mdframe。您还必须考虑边缘情况,例如,第一个
\begin{frame}
尝试关闭从未打开的环境,最后\end{frame}
一个也创建一个mdframe
从未关闭的环境。
%\documentclass{beamer}
\documentclass[a4paper,12pt]{article}
\usepackage{beamerarticle}
\usepackage{mdframed}
\mode<article>{
\AfterEndEnvironment{frame}{\begin{mdframed}}
\BeforeBeginEnvironment{frame}{\end{mdframed}}
}
\begin{document}
\mode<article>{\begin{mdframed}}
\begin{frame}
\frametitle{testframe}
content for testframe
\end{frame}
lalala interframetext
\begin{frame}
\frametitle{testframe}
content for testframe
\end{frame}
\mode<article>{\end{mdframed}}
\end{document}