我怎样才能在 beamer 中拥有超过 6 个 itemize 环境?

我怎样才能在 beamer 中拥有超过 6 个 itemize 环境?

当我拥有超过六个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}

相关内容