启用注释时,Beamer 不会呈现自定义“endpage”模板

启用注释时,Beamer 不会呈现自定义“endpage”模板

最近我构建了我的第一个 LaTeX beamer 主题。

该主题是开源的,可从以下网址获取https://code.europa.eu/pol/european-commission-latex-beamer-theme/它与 Nix 集成,因此任何想要使用 LaTeX 或 Pandoc 创建文档的人都可以使用一个命令快速设置其环境

该主题也可在 Overleaf 上使用:https://www.overleaf.com/latex/templates/european-commission/qtzkhyvfxbrw

您可以在此处找到使用它生成的文档的示例:https://github.com/ecphp/session--complexity-and-monads/releases/download/v11-c200d1f/11--complexity-and-monads--c200d1f.pdf

我提出这个问题是因为我在使用时注意到了一些事情\notes{}。当我这样启用它们时:

\setbeameroption{show notes on second screen=right}
\setbeamerfont{note page}{size=\tiny}

自定义 beamer 主题模板endpage不再呈现。

模板endpage定义在这里:https://code.europa.eu/pol/european-commission-latex-beamer-theme/-/blob/master/src/latex/ec/style/beamerthemeec.sty#L19 这基本上是该文件的最后一页,其中包含一些法律信息和许可证。

我在这里做了一个 MWE:

\documentclass{beamer}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

% If you comment the two following lines, you will see the last page of the PDF
\setbeameroption{show notes on second screen=right}
\setbeamerfont{note page}{size=\tiny}

\makeatletter
\setbeamertemplate{endpage}{
    \begin{frame}
        The last slide
    \end{frame}
}
\makeatother

\AtEndDocument{\usebeamertemplate{endpage}}

\begin{document}

\begin{frame}[plain]
  \titlepage
\end{frame}

\section{Introduction}
\subsection{Proof of the Main Theorem}

\begin{frame}
  \frametitle{There Is No Largest Prime Number}
  \framesubtitle{The proof uses \textit{reductio ad absurdum}.}

  \begin{theorem}
    There is no largest prime number.
  \end{theorem}
\end{frame}

\end{document}

尝试渲染此文档,您将看到最后一帧未被渲染。

然后删除两行:

\setbeameroption{show notes on second screen=right}
\setbeamerfont{note page}{size=\tiny}

并再次渲染文档,最后一帧就在那里。

因此,我来​​这里是为了就这个特定问题寻求一些帮助。

还可以随意在全球范围内审查主题,并让我知道我是否做得正确,您可以在此目录中找到主题的来源:https://code.europa.eu/pol/european-commission-latex-beamer-theme/-/tree/master/src/latex/ec/style

提前致谢!

答案1

您可以使用以下方法解决该问题\AddToHook{env/document/end}{\usebeamertemplate{endpage}}

\documentclass{beamer}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

% If you comment the two following lines, you will see the last page of the PDF
\setbeameroption{show notes on second screen=right}
\setbeamerfont{note page}{size=\tiny}

\makeatletter
\setbeamertemplate{endpage}{
    \begin{frame}
        The last slide
    \end{frame}
}
\makeatother

\AddToHook{env/document/end}{\usebeamertemplate{endpage}}

\begin{document}

\begin{frame}[plain]
  \titlepage
\end{frame}

\section{Introduction}
\subsection{Proof of the Main Theorem}

\begin{frame}
  \frametitle{There Is No Largest Prime Number}
  \framesubtitle{The proof uses \textit{reductio ad absurdum}.}

  \begin{theorem}
    There is no largest prime number.
  \end{theorem}
\end{frame}

\end{document}

相关内容