TeXLive 2017 中 Latex beamer 逐字问题与 \end{frame}

TeXLive 2017 中 Latex beamer 逐字问题与 \end{frame}

以下 MWE 无法与 TeXLive 2017-20170807 中的 beamer 2017/07/13 v3.42 编译:

\documentclass{beamer}

\begin{document}
\begin{frame}[fragile]
  \begin{verbatim}
    \end{frame}
  \end{verbatim}
\end{frame}
\end{document}

问题仅\end{frame}在 verbatim 环境中使用 时发生,尽管使用了[fragile]。不同的文本不会导致问题。lualatex 产生的错误如下:

Runaway argument?
! File ended while scanning use of \@xverbatim.

但是,TeXLive 2016-20160801 的旧版本(例如 3.36)的 latex beamer 确实可以正确编译 MWE,并且没有任何错误。

进一步调查显示,它看起来像是提交的回归0c387de(修复 github 问题#326)。

答案1

beamer只是提前扫描\end{frame},因此您不能\end{frame}在 内逐字使用 inside frame。 这也记录在案:

在此处输入图片描述

但有一个解决方法,也有记录:

在此处输入图片描述

应用于您的具体示例:

\documentclass{beamer}

\newenvironment{fragileframe}%
  {\begin{frame}[fragile,environment=fragileframe]}%
  {\end{frame}}

\begin{document}
\begin{fragileframe}
  \begin{verbatim}
    \end{frame}
  \end{verbatim}
\end{fragileframe}
\end{document}

相关内容