Beamer frametitle: увеличить интервал для многострочных заголовков

Beamer frametitle: увеличить интервал для многострочных заголовков

Я используюиндивидуальный проектортема и у меня проблема с длинными заголовками фреймов, которые занимают несколько строк. В этом случае заголовок скользит вверх, но я бы предпочел, чтобы он использовал пространство вниз: короткий заголовок работает отлично Длинные заголовки используют пространство над заголовком

Я бы хотел сохранить одинаковый интервал в обоих случаях. Какие у меня есть варианты?

  • Могу ли я определить вариант \frametitle[long]{longFrameTitle}с большим разбросом?
  • Могу ли я написать оператор if, который автоматически увеличивает интервал, если заголовок длиннее n символов?
  • Могу ли я определить нечто, называемое \longframetitle?

  • Можно ли вручную вставлять интервалы в каждом кадре с длинными заголовками?

Я ищу самое простое решение, поскольку эта проблема возникает только в нескольких кадрах.

Что я пробовал, но не сработало:

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

решение1

Очень простое решение, которое, похоже, работает, — это использование следующего макроса:

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

В вашем конкретном случае:

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

длинный заголовок кадра в две строки

Связанный контент