![使用 mdframed 和 beamerarticle 构建 \frame](https://linux22.com/image/408550/%E4%BD%BF%E7%94%A8%20mdframed%20%E5%92%8C%20beamerarticle%20%E6%9E%84%E5%BB%BA%20%5Cframe.png)
我想要生成包含我的投影仪幻灯片(主要是图表)和说明的文章风格的讲义。
为此,我现在正在考虑使用 beamerarticle。我想使用 mdframed 来为幻灯片添加框架,并设置适当的 beamer 模板。使用 frametitles 为使用括号的框架添加框架时会出现问题(下面的第二个选项)。我extra } or forgotten \endgroup
在 处收到错误\end{frame}
。
\documentclass[a4paper,12pt]{article}
\usepackage{beamerarticle}
%\documentclass[ignorenonframetext]{beamer}
\usepackage{tikz}
\usepackage{mdframed}
\mode<article>{
\setbeamertemplate{frame begin}{\begin{mdframed}}
\setbeamertemplate{frame end}{\end{mdframed}}
}
\begin{document}
No problem: using \verb+\frametitle+
\begin{frame}
\frametitle{binary search tree}
\tikz \draw[dashed,thick] (0,0) rectangle (8,0.5) ;
\end{frame}
Error: frametitle as argument to \verb+\frame+
\begin{frame}{extended tree}
\tikz \draw[dashed,thick] (0,0) rectangle (8,0.5) ;
\end{frame}
\end{document}
谢谢。
答案1
我强烈建议不要使用这种令人困惑的 \begin{frame}{<frametitle>}
语法。这只是为了向后兼容。相反,你应该使用正确的\frametitle{...}
语法。它更加灵活。
如果你真的必须使用这种烦人的语法,你可以像这样解决问题:
\documentclass[a4paper,12pt]{article}
\usepackage{beamerarticle}
%\documentclass[ignorenonframetext]{beamer}
\usepackage{mdframed}
\mode<article>{
\AfterEndEnvironment{frame}{\end{mdframed}}
\BeforeBeginEnvironment{frame}{\begin{mdframed}\vspace*{-\baselineskip}}
}
\begin{document}
\begin{frame}
\frametitle{binary search tree}
test
\end{frame}
\begin{frame}{extended tree}
test
\end{frame}
\end{document}