如何在投影仪帧字幕中显示自动断帧计数器?

如何在投影仪帧字幕中显示自动断帧计数器?

在 beamer 中,我使用一种惯例,即插入章节标题作为框架标题,然后提供更具体的标题作为副标题。在这种情况下,我认为在框架副标题后面显示“子框架”编号比在框架标题后面显示更有意义,这似乎是标准的。

我“借用”了 beamerbaselocalstructure.sty 的以下部分

\long\def\beamer@@frametitle[#1]#2{%
  \beamer@ifempty{#2}{}{%
    \gdef\insertframetitle{{#2\ifnum\beamer@autobreakcount>0\relax{}\space\usebeamertemplate*{frametitle continuation}\fi}}%
  \gdef\beamer@frametitle{#2}%
  \gdef\beamer@shortframetitle{#1}%
}%
}

\mode
<all>
{
  \let\beamer@aftersubtitle=\relax
\newcommand<>\framesubtitle[1]{\only#2{\beamer@ifempty{#1}{}{\gdef\insertframesubtitle{{#1}}\beamer@aftersubtitle}}}
}

并将其修改为如下格式并放入 Beamer 文档中:

\makeatletter
\long\def\beamer@@frametitle[#1]#2{%
  \beamer@ifempty{#2}{}{%
    \gdef\insertframetitle{{#2}}%
  \gdef\beamer@frametitle{#2}%
  \gdef\beamer@shortframetitle{#1}%
}%
}
\mode
<all>
{
  \let\beamer@aftersubtitle=\relax
  \renewcommand<>\framesubtitle[1]{\only#2{\beamer@ifempty{#1}{}{\gdef\insertframesubtitle{{#1\ifnum\beamer@autobreakcount>0\relax{}\space\usebeamertemplate*{frametitle continuation}\fi}}\beamer@aftersubtitle}}}
}
\makeatother

几乎有效:在第一帧中,字幕显示为“字幕 I”,但在第二帧(自动断开)中,字幕变成了“字幕 II II”,而我想要的是“字幕 II”。我搞不清楚代码的哪一部分导致“II”重复出现?

我知道我不应该像这样乱搞,因为 beamer 可能有一个适当的界面来重新定义框架字幕,但我根本不知道。

相关内容