![beamer、verbatim 和 `\end{frame}`](https://linux22.com/image/391312/beamer%E3%80%81verbatim%20%E5%92%8C%20%60%5Cend%7Bframe%7D%60.png)
截至目前 TL2018,包含\end{frame}
一行逐字代码的最小 beamer/verbatim 文件无法编译:
\documentclass{beamer}
\usepackage{fancyvrb}
\begin{document}
\begin{frame}[fragile]
\begin{verbatim}
\documentclass{beamer}
\begin{document}
\begin{frame}{My first slide}
Hello World
\end{frame}
\end{document}
\end{verbatim}
Hello
\end{frame}
\end{document}
如果我注释掉\end{frame}
逐字块中的那一行,一切就都好了。
错误是
Runaway argument?
^^M\documentclass{beamer}^^M\begin{document}^^M\begin{frame}{My first\ETC.
! File ended while scanning use of \@xverbatim.
<inserted text>
\par
l.10 \end{frame}
答案1
当然,嵌套框架来记录beamer
本身是一种比较特殊的情况。在这里,您可以使用创建“替代名称”环境的功能。
\documentclass{beamer}
\newenvironment{slide}{\begin{frame}[fragile,environment=slide]}{\end{frame}}
\begin{document}
\begin{slide}
\begin{verbatim}
\documentclass{beamer}
\begin{document}
\begin{frame}{My first slide}
Hello World
\end{frame}
\end{document}
\end{verbatim}
Hello
\end{slide}
\end{document}