Coloque o texto acima do título do quadro no beamer

Coloque o texto acima do título do quadro no beamer

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 \smashpilha 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}

insira a descrição da imagem aqui

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}

insira a descrição da imagem aqui

Basicamente, isso cria um frameambiente personalizado que incorpora um frametitlemodelo corrigido. Dessa forma, você pode chamar myframesempre que quiser o texto acima do título e o padrão framequando não quiser.

Se necessário, o patch pode se tornar global (basta remover o newenvironment).

informação relacionada