为什么包裹清单不适用于 Beamer?

为什么包裹清单不适用于 Beamer?

我想在 Beamer 演示文稿中展示 LaTeX 代码。

如果我尝试将以下 MWE 作为文章,它可以完美地运行:

\documentclass{article}
\usepackage{xcolor}
\usepackage{listings}
\lstset
{
    language=[LaTeX]TeX,
    breaklines=true,
    basicstyle=\tt\scriptsize,
    keywordstyle=\color{blue},
    identifierstyle=\color{magenta},
}

\begin{document}
\begin{lstlisting}
     \documentclass{article}
     \begin{document}
     Hello World
     \end{document}
\end{lstlisting}
\end{document}

然而,当我想将该代码放入 Beamer 演示文稿中时,就像下面的 MWE 一样:

\documentclass{beamer}
\usepackage{lmodern}
\usepackage{listings}
\lstset
{
    language=[LaTeX]TeX,
    breaklines=true,
    basicstyle=\tt\scriptsize,
    keywordstyle=\color{blue},
    identifierstyle=\color{magenta},
}

\title{A Tiny Example}
\author{John Doe}
\date{\today}
\begin{document}
\maketitle
\begin{frame}
\frametitle{First Slide}
\begin{lstlisting}
    \documentclass{article}
    \begin{document}
    Hello World
    \end{document}
\end{lstlisting}
\end{frame}
\end{document}

我收到以下错误:

 ! Missing \endcsname inserted.

 ! LaTeX Error: Can be used only in preamble.

答案1

使用可选参数fragile

\begin{frame}[fragile]%%%%%%%%%%%%
\frametitle{First Slide}
\begin{lstlisting}
    \documentclass{article}
    \begin{document}
    Hello World
    \end{document}
\end{lstlisting}
\end{frame}

相关内容