Beamer 模板问题:右对齐框架字幕导致虚假的额外幻灯片(或更糟!)

Beamer 模板问题:右对齐框架字幕导致虚假的额外幻灯片(或更糟!)

这里有一份 MWE 可以说明这个问题。

\documentclass{beamer}
\defbeamertemplate{frametitle}{weird}{%
  \insertframetitle\par%
  \rule{\textwidth}{4pt}%
  \flushright%
  \insertframesubtitle\par%
}
\setbeamertemplate{frametitle}[weird]
\begin{document}
\begin{frame}
\frametitle{Here is the title}
%\framesubtitle{Here is the subtitle}
Here is the text
\pause
Here is more text
\end{frame}
\end{document}

此代码失败并显示:

! LaTeX Error: Something's wrong--perhaps a missing \item.

注释掉\pause\flushright或取消注释\framesubtitle可以进行编译。[注释掉\pause会导致最后出现虚假的空白页。]

所以我猜想这是字幕为空时出现的“错误模式”问题。但我还不太清楚如何修复它。有什么线索吗?或者有什么提示可以尝试修复它吗?

答案1

使用这两个宏而不是使用 的参数有什么意义frame?这有效:

\begin{frame}{Here is the title}{Here is the subtitle}


您还应该检查是否存在字幕:

\documentclass{beamer}
\makeatletter
\defbeamertemplate{frametitle}{weird}{%
  \insertframetitle\par%
  \rule{\textwidth}{4pt}%
  \ifx\insertframesubtitle\@empty\else
  \flushright%
  \insertframesubtitle\par\fi}
\makeatother
\setbeamertemplate{frametitle}[weird]
\begin{document}
\begin{frame}{Here is the title}{}
Here is the text
\pause
Here is more text
\end{frame}
\end{document}

相关内容