在我的演示中,我希望有一个列表环境来展示如何进行演示。到目前为止,我发现,listings
在演示中使用时,我们应该将选项传递fragile
给我们想要在其中使用该环境的框架listings
。然后我认为下面的方法可以工作(使用 lualatex 编译):
\documentclass[lualatex]{beamer}
\usepackage{listings}
\lstset{language={[LaTeX]TeX}}
\begin{document}
\begin{frame}[fragile]{Minimum Working Example}
\begin{lstlisting}
\documentclass[lualatex]{beamer}
\begin{document}
\begin{frame}{I am the title of this slide!}
I am some body text.
\end{frame}
\end{document}
\end{lstlisting}
\end{frame}
\end{document}
这让 lua 非常恐慌:
PANIC:调用 Lua API 时出现未受保护的错误(对象正在使用)
前几个 latex 错误是:
./test.tex:14: 缺少 } 插入。
} l.14 \end{frame}./test.tex:14: LaTeX 错误:输入第 2 行的 \begin{lstlisting} 以 \end{be amer@framepauses} 结束。
./test.tex:14:Extra },或者被遗忘的\endgroup。
当注释掉这些行时,\begin{frame} ... \end{frame}
它可以编译得很好,如下图所示。
谷歌搜索后,我并没有找到太多答案,大部分都是一些问题,这些问题的答案是我们fragile
在使用时不要忘记传递给框架listings
。这些问题和这个问题的区别在于,除了在框架中有一个列表外,我还试图将框架放在列表中。
答案1
另一个选择是使用[containsverbatim]
:
\documentclass[lualatex]{beamer}
\usepackage{listings}
\lstset{language={[LaTeX]TeX}}
\begin{document}
\begin{frame}[containsverbatim]
\frametitle{Minimum Working Example}
\begin{lstlisting}
\documentclass[lualatex]{beamer}
\begin{document}
\begin{frame}{I am the title of this slide!}
I am some body text.
\end{frame}
\end{document}
\end{lstlisting}
\end{frame}
\end{document}
来源:https://stackoverflow.com/questions/2981008/latex-issue-with-beamer-and-listings。
答案2
作为一种解决方法,您可以应用 beamer 用户指南第 62 页中的示例:
% !TeX TS-program = lualatex
\documentclass[lualatex]{beamer}
\usepackage{listings}
\lstset{language={[LaTeX]TeX}}
\newenvironment{slide}
{\begin{frame}[fragile,environment=slide]}
{\end{frame}}
\begin{document}
\begin{slide}
\frametitle{Minimum Working Example}
\begin{lstlisting}
\documentclass[lualatex]{beamer}
\begin{document}
\begin{frame}{I am the title of this slide!}
I am some body text.
\end{frame}
\end{document}
\end{lstlisting}
\end{slide}
\end{document}