当我拥有超过六个itemize
环境时,我收到错误:! LaTeX Error: Too deeply nested.
下面是一个可运行的示例。我做错了什么?
\documentclass{beamer}
\begin{document}
\begin{frame}
\itemize{\item{blah}} %1
\end{frame}
\begin{frame}
\itemize{\item{blah}} %2
\end{frame}
\begin{frame}
\itemize{\item{blah}} %3
\end{frame}
\begin{frame}
\itemize{\item{blah}} %4
\end{frame}
\begin{frame}
\itemize{\item{blah}} %5
\end{frame}
\begin{frame}
\itemize{\item{blah}} %6
\end{frame}
\begin{frame}
\itemize{\item{blah}} %7 -- Errors out. Delete this line and it compiles.
\end{frame}
\end{document}
答案1
你是不是使用itemize
环境,但只有itemize
开始代码而没有相应的itemize
结束代码。即使使用环境的开始和结束代码代替环境,也只有在您真正知道自己在做什么的情况下才应该这样做。但是使用没有结束代码的开始代码大多是错误的——在您的情况下是嵌套错误,因为永不\itemize
结束,因此每个新代码\itemize
都被视为新的嵌套列表级别。
初学者切勿误用环境作为命令或命令作为环境。环境应与 一起使用\begin{environment} … \end{environment}
,如下所示:
\documentclass{beamer}
\begin{document}
\begin{frame}
\begin{itemize}\item blah\end{itemize} %1
\end{frame}
\begin{frame}
\begin{itemize}\item blah\end{itemize} %2
\end{frame}
\begin{frame}
\begin{itemize}\item blah\end{itemize} %3
\end{frame}
\begin{frame}
\begin{itemize}\item blah\end{itemize} %4
\end{frame}
\begin{frame}
\begin{itemize}\item blah\end{itemize} %5
\end{frame}
\begin{frame}
\begin{itemize}\item blah\end{itemize} %6
\end{frame}
\begin{frame}
\begin{itemize}\item blah\end{itemize} %7
\end{frame}
\end{document}
答案2
以下内容是 @cabobah 的配套文章回答,这说明您的代码包含语法错误:大量\itemize
指令没有对应的指令。此外,使用语法代替语法\enditemize
是没有充分理由的。\itemize ... \enditemize
\begin{itemize} ... \end{itemize}
如果由于某种原因,你坚持无论如何使用\itemize ... \enditemize
语法,请注意,它们都不\itemize
采用\item
括号分隔的参数。因此
\itemize{\item{blah}}
是代码混乱影响的一个典型例子。它可以(应该?)写得更简单一点,如下
\itemize \item blah
总结一下,如果你觉得必须使用\itemize ... \enditemize
语法,那就养成写作的习惯
\documentclass{beamer}
\begin{document}
\begin{frame}
\itemize \item blah \enditemize %1
\end{frame}
\begin{frame}
\itemize \item blah \enditemize %2
\end{frame}
% ...
\end{document}