我想在框架顶部(框架标题和默认框架标题上方)放置一行文本,例如:
\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
)。