为了在投影仪框架中包含一些标题(就在内容上方),我使用以下代码:
\makeatletter
\let\oldframe\frame
\def\frame{\@ifnextchar[\frame@i \frame@ii}
\def\frame@i[#1]{\oldframe[#1] Heading}
\def\frame@ii{\oldframe Heading}
\makeatother
它与所有选项配合得很好,但框架标题出现在一个奇怪的位置(与内容一起,而不是正常的顶部位置)。有人知道如何修复它吗?
一个最小的工作示例:
\documentclass{beamer}
\makeatletter
\let\oldframe\frame
\def\frame{\@ifnextchar[\frame@i \frame@ii}
\def\frame@i[#1]{\oldframe[#1] Heading}
\def\frame@ii{\oldframe Heading}
\makeatother
\begin{document}
\begin{frame}{Title}
The title does not appear as expected
\end{frame}
\end{document}
答案1
我不建议重新定义框架环境。这可能会导致问题,尤其是对于脆弱的内容。
如果你确实必须这么做:
\documentclass{beamer}
\newenvironment{myframe}[1]
{\begin{frame}[environment=myframe]
\frametitle{#1}
Heading\par
}
{\end{frame}}
\begin{document}
\begin{myframe}{Title}
The title does not appear as expected
\end{myframe}
\end{document}
(有关更多信息,请参阅 Beamer 用户指南第 8.1 节)