Beamer - 使用框架标题修改框架环境

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

它与所有选项配合得很好,但框架标题出现在一个奇怪的位置(与内容一起,而不是正常的顶部位置)。有人知道如何修复它吗?

一个最小的工作示例:

\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 节)

相关内容