beamer:脚注文本与导航符号冲突

beamer:脚注文本与导航符号冲突

演示文稿中的脚注是“通常不是一个好主意”beamer手册,第 130 页)。但是,假设我有正当理由\footnote在文档中使用该命令beamer(例如,打印类似于参考书目条目的完整引文)。许多beamer主题都包含导航符号,令我沮丧的是,我注意到脚注将放置在框架的最底部,它们可能会与任何存在的导航符号发生冲突。我尝试将框架的内容放在小页面内,但这会使脚注(太)紧密地与文本对齐。

\documentclass{beamer}

\useoutertheme{infolines}

\author{Author}
\institute{Institute}
\date{\today}

% Remove footnote rule
\renewcommand*{\footnoterule}{}

\begin{document}

\begin{frame}{Frame 1}

Some text.\footnote{A long footnote that partially overwrites the navigation symbols.}

\end{frame}

\begin{frame}{Frame 2}

\begin{minipage}{\textwidth}

Some text.\footnote{A footnote that is closely aligned to the text.}

\end{minipage}

\end{frame}

\end{document}

如何将脚注放在框架底部,不包括导航符号所要求的垂直空间?

编辑:Stefan 的回答让我意识到问题更加复杂。我正在寻找一种解决方案,该解决方案也适用于beamer在脚注中包含作者、机构等信息的主题(以及此信息正上方的导航符号)。我相应地编辑了我的代码示例。

EDIT2:根据Stefan的建议“只需插入导航符号”,这就是我想出的(将添加到我的代码示例的序言中):

\makeatletter
\setbeamertemplate{sidebar right}{}
\setbeamertemplate{footline}
{
  \leavevmode%
% Begin of additions - note that this is pure guesswork
  \vskip2pt%
  \begin{beamercolorbox}[wd=0.9925\paperwidth,right]{}
  \usebeamertemplate***{navigation symbols}%
  \end{beamercolorbox}
  \vskip2pt%
% End of additions
  \hbox{%
  \begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1ex,center]{author in head/foot}%
    \usebeamerfont{author in head/foot}\insertshortauthor~~\beamer@ifempty{\insertshortinstitute}{}{(\insertshortinstitute)}
  \end{beamercolorbox}%
  \begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1ex,center]{title in head/foot}%
    \usebeamerfont{title in head/foot}\insertshorttitle
  \end{beamercolorbox}%
  \begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1ex,right]{date in head/foot}%
    \usebeamerfont{date in head/foot}\insertshortdate{}\hspace*{2em}
    \insertframenumber{} / \inserttotalframenumber\hspace*{2ex} 
  \end{beamercolorbox}}%
  \vskip0pt%
}
\makeatother

再次重申我原来的问题:是否有一种不依赖于beamer使用哪些主题的解决方案?例如,如果存在导航符号,则在框架的最后一个(!)脚注后添加垂直空间?

答案1

您可以通过将导航符号放在脚注中而不是右侧边栏中的默认位置来实现这一点:

\setbeamertemplate{sidebar right}{}
\setbeamertemplate{footline}{\hfill\usebeamertemplate***{navigation symbols}}

原始定义使用\llap和侧边栏,这就是它可能被覆盖的原因:

% From beamerouterthemedefault.sty:
\defbeamertemplate*{sidebar right}{default}
{
  \vfill%
  \llap{\insertlogo\hskip0.1cm}%
  \vskip2pt%
  \llap{\usebeamertemplate***{navigation symbols}\hskip0.1cm}%
  \vskip2pt%
}

回应 locksteps 编辑:这个小例子使用了完整的脚注线进行演示。如果已经存在脚注线,我会修改插入\usebeamertemplate***{navigation symbols}其中的脚注线,这样它可能会变成高度为两行的脚注线。这不能被意外覆盖。

现在看到最后一次编辑的步调一致:例如,\addtobeamertemplate在脚注上而不是脚注上使用马修的建议将使我们:

\setbeamertemplate{sidebar right}{}% or get rid of navigation entries there somehow
\addtobeamertemplate{footline}{\hfill\usebeamertemplate***{navigation symbols}%
    \hspace*{0.1cm}\par\vskip 2pt}{}

这会保留空间,无论有没有现有脚线,都可以使用,无论脚线是一行还是多行高。我已经用柏林、新加坡和马德里主题测试过它。

答案2

我越了解 beamer 的模板机制,就越喜欢它。在序言中尝试一下:

\addtobeamertemplate{footnote}{}{\vspace{2ex}}

这只是给脚注添加一些空间,因此它不会覆盖导航符号。

答案3

马修的回答启发我在脚注行中添加垂直空间:

\addtobeamertemplate{footnote}{\vspace{-6pt}\advance\hsize-0.5cm}{\vspace{6pt}}
\makeatletter
% Alternative A: footnote rule
\renewcommand*{\footnoterule}{\kern -3pt \hrule \@width 2in \kern 8.6pt}
% Alternative B: no footnote rule
% \renewcommand*{\footnoterule}{\kern 6pt}
\makeatother

编辑:由 egreg 提供,缩小了脚注文本的水平尺寸。

相关内容