BeamerArticle:使用 mdframed 在框架之间围绕文本的框会导致错误

BeamerArticle:使用 mdframed 在框架之间围绕文本的框会导致错误

我正在使用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 beginframe 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}

相关内容