问题:在 beamer 中,当我使用该allowframebreaks
选项时,第二帧(及后续帧)的标题如下所示:“[ II”、“[ III”等。实际标题在下面的文本中,如下所示:“Title]Title”。
推测原因:
我正在使用同事的 beamer 模板,但我并不完全理解它。它可能有点儿像黑客。不过,我已经找到了问题所在:\frametitle
正在重新定义,以便包含大学徽标。
这是一个 MWE(您需要提供一张图形logo.*
):
\documentclass[xetex]{beamer}
\usepackage{xltxtra}
\usepackage{lipsum}
\usetheme{Madrid}
\usepackage[absolute,overlay]{textpos}
\newcommand{\MyLogoNeg}{%
\begin{textblock}{90}(12.7,0.09)
\includegraphics[width=2.5cm]{logo}
\end{textblock}
}
\let\oldframetitle\frametitle
\renewcommand{\frametitle}[1]{\oldframetitle{#1}\MyLogoNeg}
\begin{document}
\begin{frame}[allowframebreaks]{Title}
\lipsum[1-2]
\end{frame}
\end{document}
我怎样才能在不破坏的情况下添加徽标allowframebreaks
?
答案1
问题是\frametitle
可以有一个覆盖规范以及一个可选参数:完整的语法是(参见beamer
手册,第 8.2.6 节)
\frametitle<⟨overlay specification⟩>[⟨short frame title⟩]{⟨frame title text⟩}
重新定义\frametitle
为\renewcommand
仅具有一个强制参数会破坏使用其中一个附加参数的情况(如beamer
使用选项时在内部完成的那样allowframebreaks
)。
不要直接进行黑客攻击\frametitle
,可以考虑将你的徽标添加到 beamer 模板中frametitle
,这是进行此类修改的更合适的地方:为此,请替换
\let\oldframetitle\frametitle
\renewcommand{\frametitle}[1]{\oldframetitle{#1}\MyLogoNeg}
经过
\addtobeamertemplate{frametitle}{}{\MyLogoNeg}