diff --git a/slides.pdf b/slides.pdf index a73f794..5208c25 100644 Binary files a/slides.pdf and b/slides.pdf differ diff --git a/theme/beamerfontthemeOUCSlide.sty b/theme/beamerfontthemeOUCSlide.sty index 45f8bb7..18652ea 100644 --- a/theme/beamerfontthemeOUCSlide.sty +++ b/theme/beamerfontthemeOUCSlide.sty @@ -205,20 +205,38 @@ {\def\insertpart{{\beameroucslide@partformatspacingb{LetterSpace=15.0}\beameroucslide@partformatcaps{\beameroucslide@partformatspacinga[120]{\expandafter\hyperlink\partlink}}}}}% {}% {\PackageError{beameroucslide}{Patching original part failed}\@ehc} -\patchcmd{\beamer@@frametitle} - {{% - \gdef\insertframetitle{{#2\ifnum\beamer@autobreakcount>0\relax{}\space% - \usebeamertemplate*{frametitle continuation}\fi}}% - \gdef\beamer@frametitle{#2}% - \gdef\beamer@shortframetitle{#1}% - }} - {{% - \gdef\insertframetitle{{\beameroucslide@frametitleformatcaps{#2}\ifnum% - \beamer@autobreakcount>0\relax{}\space% - \usebeamertemplate*{frametitle continuation}\fi}}% - \gdef\beamer@frametitle{#2}% - \gdef\beamer@shortframetitle{#1}% - }} - {} - {\PackageError{beameroucslide}{Patching original frame title failed}\@ehc} +% beamer 3.69(TeX Live 2023)起 \beamer@@frametitle 的定义发生了变化: +% 1. 内部增加了 \ifblank 判断; +% 2. 用 \beamer@insertframetitlecontinuation 取代了 \usebeamertemplate*{frametitle continuation}。 +% 因此这里按 beamer 版本分别处理,保证在 TeX Live 2022 与 2023 下都能编译通过。 +\@ifundefined{beamer@insertframetitlecontinuation} + {% 旧版 beamer(TeX Live 2022 及以前):沿用原有的补丁方式 + \patchcmd{\beamer@@frametitle} + {{% + \gdef\insertframetitle{{#2\ifnum\beamer@autobreakcount>0\relax{}\space% + \usebeamertemplate*{frametitle continuation}\fi}}% + \gdef\beamer@frametitle{#2}% + \gdef\beamer@shortframetitle{#1}% + }} + {{% + \gdef\insertframetitle{{\beameroucslide@frametitleformatcaps{#2}\ifnum% + \beamer@autobreakcount>0\relax{}\space% + \usebeamertemplate*{frametitle continuation}\fi}}% + \gdef\beamer@frametitle{#2}% + \gdef\beamer@shortframetitle{#1}% + }} + {} + {\PackageError{beameroucslide}{Patching original frame title failed}\@ehc}% + } + {% 新版 beamer(TeX Live 2023 及以后):按新定义重写,并加入标题格式控制 + \long\def\beamer@@frametitle[#1]#2{% + \ifblank{#2}{}{% + \gdef\insertframetitle{{\beameroucslide@frametitleformatcaps{#2}% + \ifnum\beamer@autobreakcount>0\relax{}\space% + \beamer@insertframetitlecontinuation\fi}}% + \gdef\beamer@frametitle{#2}% + \gdef\beamer@shortframetitle{#1}% + }% + }% + } \makeatother