Quero colocar uma linha de texto na parte superior de um quadro (acima do título do quadro e do título do quadro padrão), como:
\begin{frame}
My top of frame text
\frametitle{My title}
My frame body
\end{frame}
mas o beamer reformata automaticamente. Você tem alguma sugestão? Obrigado.
Responder1
Aqui, adicionei uma \smash
pilha ed alinhada à esquerda no topo do título do quadro. Parece ter o mesmo espaçamento de quando \frametitle
é apenas texto simples. Ter um MWE completo do OP teria ajudado a compreender se esta abordagem é adequada.
\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}
Responder2
Esta é uma solução Beamer "nativa":
\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}
Basicamente, isso cria um frame
ambiente personalizado que incorpora um frametitle
modelo corrigido. Dessa forma, você pode chamar myframe
sempre que quiser o texto acima do título e o padrão frame
quando não quiser.
Se necessário, o patch pode se tornar global (basta remover o newenvironment
).