我想在我的 Beamer 中显示一段简短的 Latex 代码。代码也是关于 Beamer 的。我不想使用\lstinputlisting{file.tex}
。那么有什么办法吗?这是没有错误的代码。无论如何,当我启用三条禁用行时,会发生错误。
\documentclass{beamer}
\usetheme{Madrid}
\usepackage{listings}
\lstset{
language=[latex]tex,
breaklines=true}
\begin{document}
\begin{frame}[fragile]
\begin{lstlisting}
\documentclass{beamer}
\begin{document}
% \begin{frame}
% Test
% \end{frame}
\end{document}
\end{lstlisting}
\end{frame}
\end{document}
答案1
避免使用的一种方法\lstinputlisting
是“装箱”环境,然后使用框架内的lstlisting
命令。\usebox
平均能量损失
\documentclass{beamer}
\usetheme{Madrid}
\usepackage{listings}
\lstset{%
language=[latex]tex,
breaklines=true}
\newsavebox{\myLst}
\begin{document}
\begin{lrbox}{\myLst}
\begin{lstlisting}
\documentclass{beamer}
\begin{document}
% \begin{frame}
% Test
% \end{frame}
\end{document}
\end{lstlisting}
\end{lrbox}
\begin{frame}
\usebox{\myLst}
\end{frame}
\end{document}
结果
答案2
环境frame
一定不缩进此类框架。»投影机« 手册第 60 页对此有所说明:
要确定框架的结束,请使用以下规则:包含的单行的第一次出现恰好
\end{⟨frame environment name⟩}
结束框架。⟨环境名称⟩通常是frame
,但可以使用environment
选项进行更改。这个特殊规则是必要的,因为毕竟在收集框架内容时不会对其进行解释。
\documentclass{beamer}
\usetheme{Madrid}
\usepackage{listings}
\lstset{
language=[latex]tex,
breaklines=true
}
\begin{document}
\begin{frame}[fragile]
\begin{lstlisting}
\documentclass{beamer}
\begin{document}
% \begin{frame}
% Test
% \end{frame}
\end{document}
\end{lstlisting}
\end{frame}
\end{document}