将文本放置在投影仪的框架标题上方

将文本放置在投影仪的框架标题上方

我想在框架顶部(框架标题和默认框架标题上方)放置一行文本,例如:

\begin{frame}
    My top of frame text
    \frametitle{My title}
    My frame body
\end{frame}

但 beamer 会自动重新格式化。您有什么建议吗?谢谢。

答案1

\smash在这里,我在框架标题顶部添加了一个左对齐的ed 堆栈。它似乎具有\frametitle与纯文本相同的间距。从 OP 获得完整的 MWE 将有助于理解这种方法是否合适。

\documentclass{beamer}
\usepackage{stackengine}
\renewcommand\stackalignment{l}
\begin{document}
\begin{frame}
    My top of frame text
%\frametitle{My title}
    \frametitle{\stackon{My title}{%
      \smash{\scriptsize extra text above the frame title}}}
    My frame body
\end{frame}
\end{document}

在此处输入图片描述

答案2

这是一个“原生”的 Beamer 解决方案:

\documentclass{beamer}

\makeatletter
\newenvironment{myframe}[2][c]{%
    \addtobeamertemplate{frametitle}{\hskip-.7\beamer@leftmargin\scriptsize #2\vspace*{-.2cm}}{}
    \begin{frame}[#1]%
}{%
    \end{frame}
}
\makeatother

\begin{document}
\begin{myframe}{text above}
\frametitle{frame title}
\end{myframe}

\begin{frame}
\frametitle{frame title}
\end{frame}
\end{document}

在此处输入图片描述

基本上,这会创建一个frame嵌入修补frametitle模板的自定义环境。这样,您可以myframe随时调用标题上方的文本,而不frame需要时则调用默认文本。

如果需要,可以将修补设为全局修补(只需删除newenvironment)。

相关内容