Beamer 和列表...如何多次包含 \end{frame}

Beamer 和列表...如何多次包含 \end{frame}

跟进这个问题,我想在幻灯片中包含代码。代码中包含“\end{frame}”,因此我不得不按照链接中的建议将代码框起来,但如果我想多次包含包含“\end{frame}”的代码,我就无计可施了……

在下面的 MWE 中,我想在第一张幻灯片中包含带有“第一张幻灯片”的代码,在第二张幻灯片中包含带有“第二张幻灯片”的代码...有什么帮助吗?

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

\newsavebox{\codebox}% For storing listings

\title{A Tiny Example}
\author{John Doe}
\date{\today}


\begin{document}

\begin{lrbox}{\codebox}
\begin{lstlisting}
\begin{frame}
First slide
\end{frame}
\end{lstlisting}
\end{lrbox}

\begin{lrbox}{\codebox}
\begin{lstlisting}
\begin{frame}
Second slide
\end{frame}
\end{lstlisting}
\end{lrbox}

\maketitle

\begin{frame}[fragile]
\frametitle{First Slide}
\usebox{\codebox}
\end{frame}

\begin{frame}[fragile]
\frametitle{Second Slide}
\usebox{\codebox}
\end{frame}
\end{document}

答案1

只需将框的第二个定义移到第一张幻灯片的后面:

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

\newsavebox{\codebox}% For storing listings

\title{A Tiny Example}
\author{John Doe}
\date{\today}


\begin{document}

\begin{lrbox}{\codebox}
\begin{lstlisting}
\begin{frame}
First slide
\end{frame}
\end{lstlisting}
\end{lrbox}


\maketitle

\begin{frame}[fragile]
\frametitle{First Slide}
\usebox{\codebox}
\end{frame}

\begin{lrbox}{\codebox}
\begin{lstlisting}
\begin{frame}
Second slide
\end{frame}
\end{lstlisting}
\end{lrbox}


\begin{frame}[fragile]
\frametitle{Second Slide}
\usebox{\codebox}
\end{frame}
\end{document}

相关内容