Frametitle do Beamer: aumente o espaçamento para títulos com várias linhas

Frametitle do Beamer: aumente o espaçamento para títulos com várias linhas

Estou usando umprojetor personalizadotema e estou tendo problemas com títulos de quadros longos que ocupam várias linhas. Nesse caso, o título desliza para cima, mas prefiro que use o espaço para baixo: Título curto funciona bem Títulos longos usam espaço no topo do título

Eu gostaria de manter o mesmo espaçamento em ambos os casos. Quais são minhas opções?

  • Posso definir uma opção \frametitle[long]{longFrameTitle}com separação maior?
  • Posso escrever uma instrução if que aumente o espaçamento automaticamente se o título tiver mais de n caracteres?
  • Posso definir algo chamado \longframetitle?

  • Posso inserir espaçamento manualmente em cada quadro com títulos longos?

Procuro a solução mais fácil, pois só dá problema em alguns frames.

O que tentei até agora, mas não funcionou:

\setbeamertemplate{frametitle}{%
\begin{beamercolorbox}[

    wd=\paperwidth,
    leftskip=1cm,
    rightskip=1cm,
    ht=5ex,dp=1.5ex
]{frame title}%
    \usebeamerfont{frame title}\insertframetitle%
\end{beamercolorbox}%
}

\setbeamertemplate{longframetitle}{%
\begin{beamercolorbox}[
    sep=-7cm,
    wd=\paperwidth,
    leftskip=1cm,
    rightskip=1cm,
    ht=5ex,dp=1.5ex
    ]{frame title}%
    \usebeamerfont{frame title}\insertframetitle%
\end{beamercolorbox}%
}

Responder1

Uma solução muito suja que parece funcionar é usar a seguinte macro:

\newcommand{\longframetitle}[2]{\frametitle{\tikz[inner xsep=0pt,baseline]{\node[anchor=base west] (titlePos) {\phantom{short fittitius title}};
\node[anchor=base west,text width=#1 ex] at (titlePos.base west) {#2};
}}}%\longframetitle{lenght of the line of the multiline title in ex}{title}

Com o seu caso específico:

\documentclass[11pt]{beamer}
\usetheme{leipzig}
\begin{document}
\title{short Title}

\newcommand{\longframetitle}[2]{\frametitle{\tikz[inner xsep=0pt,baseline]{\node[anchor=base west] (titlePos) {\phantom{short fittitius title}};
\node[anchor=base west,text width=#1 ex] at (titlePos.base west) {#2};
}}}%\longframetitle{lenght in ex}{title} 

\begin{frame}
    \frametitle{short Title}
\end{frame}

\begin{frame}
\longframetitle{50}{Looooooooooooooooooong Title which\\[-2pt] occupies multiple lines}

\end{frame}

\end{document}

frametitle longo em duas linhas

informação relacionada