Ich möchte oben in einem Frame (über dem Frame-Titel und der Standard-Frame-Überschrift) eine Textzeile platzieren, etwa:
\begin{frame}
My top of frame text
\frametitle{My title}
My frame body
\end{frame}
aber Beamer formatiert automatisch neu. Haben Sie Vorschläge? Danke.
Antwort1
Hier habe ich einen linksbündigen \smash
ed-Stapel über dem Rahmentitel hinzugefügt. Er scheint den gleichen Abstand zu haben wie wenn es \frametitle
sich nur um einfachen Text handelt. Ein vollständiges MWE vom OP hätte geholfen zu verstehen, ob dieser Ansatz angemessen ist.
\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}
Antwort2
Dies ist eine „native“ Beamer-Lösung:
\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}
Im Grunde wird dadurch eine benutzerdefinierte frame
Umgebung erstellt, die eine gepatchte frametitle
Vorlage einbettet. Auf diese Weise können Sie myframe
den Text über dem Titel aufrufen, wann immer Sie ihn möchten, und die Standardeinstellung, frame
wenn Sie ihn nicht möchten.
Bei Bedarf kann das Patchen global durchgeführt werden (entfernen Sie einfach das newenvironment
).