beamer 中的列表已损坏

beamer 中的列表已损坏

使用这个最小文档,我收到一个Missing } inserted错误:

\documentclass{beamer}

\usepackage{fontspec}

\usepackage{listings}


\begin{document}

\begin{frame}[fragile]{title}
  \begin{lstlisting}[language={[LaTeX]TeX}]
    \begin{frame}
      Hello World
    \end{frame} 
  \end{lstlisting}
\end{frame}

\end{document}

\end{frame}如果我删除列表内的行,它就会消失。

我很困惑。我尝试了 pdflatex (没有 fontspec) 和 lualatex。

答案1

你的问题是,你无法可靠地获取\end{frame}框架内的逐字内容,本身结束\end{frame}。建议的方法是使用具有替代名称的环境:

\documentclass{beamer}

\usepackage{listings}

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

\begin{document}

\begin{Frame}
  \frametitle{title}
  \begin{lstlisting}[language={[LaTeX]TeX}]
    \begin{frame}
      Hello World
    \end{frame} 
  \end{lstlisting}
\end{Frame}

\end{document}

(人们可以想象尝试解决这个问题的复杂解析安排,但它们看起来很糟糕并且不那么可靠。)

相关内容