我正在使用定制投影机主题,我遇到了占用多行的长框架标题问题。在这种情况下,标题会向上滑动,但我希望它使用向下的空间:
我想在两种情况下保持相同的间距。我有什么选择?
- 我可以定义一个
\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}