以下 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}