Beamer frametitle 中的垂直间距问题长达几行

Beamer frametitle 中的垂直间距问题长达几行

我使用 Beamer 自定义模板。除此之外,我还重新定义了标题,以便在帕尔博,以及组成模板的其他内容,例如徽标、用 Tikz 绘制的一些水平线等。请注意,我已删除了许多这些次要内容,以得出我在此处提供的最小示例,但仍然会重现问题。

问题是,有时标题很长,必须分成两行,在演示过程中,行间距会变得不同,这是一种非常烦人的行为。不仅如此,有时还会出现“额外的幻灯片”。在我提供的特定示例中,我打算创建两张幻灯片,但我得到了三张,尽管其中一张是空的!文本编译没有问题,我不知道发生了什么,尽管我猜我做错了什么帕尔博和换行。

什么原因可能导致这种不当行为?

\pdfminorversion=4
\PassOptionsToPackage{draft}{graphicx}
\documentclass[xcolor=dvipsnames]{beamer}
\usepackage[utf8]{inputenc}
%\usepackage]{graphicx}
\usepackage[english]{babel}
\usepackage{tikz}
\usepackage{amsfonts}
\usepackage{textpos}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%THIS THEME DISCARDS THE TITLE IN THE SLIDES, AND USES HEADLINE INSTEAD
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\setbeamertemplate{frametitle}{}
\providecommand\insertframetitle{}
\setbeamertemplate{headline}{

  \hspace{1cm}
  \fbox{\parbox[][1.1cm][c]{.65\textwidth}{\flushleft\bf\Large\insertframetitle}}

  \begin{textblock*}{100mm}(.8\textwidth,-1.0cm)
    \includegraphics[width=2.0cm]{logo.pdf}
  \end{textblock*}

  \vspace*{0.2cm}

  \hspace*{0.6cm}
  \tikz \fill [] (0,0) rectangle (9.0, 2pt);
}

\begin{document}

\begin{frame}{Climate Reconstructions and Simulations}
  Text text text
\end{frame}

\begin{frame}{What the model does right: synoptic-regional scale connections}
  Text text text
\end{frame}

\end{document}

幻灯片1 幻灯片2 幻灯片 3

答案1

改成。\providecommand\insertframetitle{}\providecommand\insertframetitle*{}

来自 Beamer 用户指南:

如果添加一颗星,则会发生三件事。首先,模板被放在 TEX 组中,从而限制了模板内使用的命令的大多数副作用。其次,在这个组中,使用名为 beamer-color 的元素名称并选择前景色。第三,还使用 ​​beamer-font 元素名称。这个带一颗星的版本通常是最佳版本。


编辑:感谢 Ignasis 的评论,我终于搞清楚了。使用 struts 并更改 parbox 中内容的对齐方式。

\providecommand\insertframetitle*{}
\setbeamertemplate{headline}{

  \hspace{1cm}
  \fbox{\parbox[][1.1cm][b]{.65\textwidth}{\flushleft\bf\Large\strut\insertframetitle\strut}}

  \begin{textblock*}{100mm}(.8\textwidth,-1.0cm)
    \includegraphics[width=2.0cm]{logo.pdf}
  \end{textblock*}

  \vspace*{0.2cm}

  \hspace*{0.6cm}
  \tikz \fill [] (0,0) rectangle (9.0, 2pt);
}

\strut类似于执行\vphantom{}。我查看了 frametitle 的默认定义(在 中beameroutertheme.sty),发现它包含\strut\insertframetitle\strut。这与从 更改为 相结合,\parbox[][1.1cm][c]...可以\parbox[][1.1cm][b]...得到您想要的结果!

相关内容