对于我的海报,我使用beamer
带有tcolorbox
包的类。
我的问题是使用该enumerate
环境会出现以下编译错误:
! Undefined control sequence.
\beamer@enum@ ...fix item}##1}}}}}\beamer@cramped
\raggedright \beamer@first...
l.18 }
即使使用以下非常简单的 MWE 也会出现这种情况(上述错误实际上是由此产生的,尽管我的文档的错误消息类似):
\documentclass{beamer}
\usepackage[poster]{tcolorbox}
\begin{document}
\begin{tcbposter}
\posterbox[]
{name=part1}{%
This is a test:
\begin{enumerate}
\item Just
\item a
\item test.
\end{enumerate}
}
\end{tcbposter}
\end{document}
该错误显然来自enumerate
环境,因为当我在文档中对其进行注释时,该错误就消失了。
我找不到任何可以解释该问题的东西。
答案1
问题在于enumerate
对 done的重新定义beamer
。例如,下面的方法有效(但在我看来,这只是一个修复,而不是真正的解决方案):
\let\enumeratebak\enumerate
\let\endenumeratebak\endenumerate
\documentclass{beamer}
\usepackage[poster]{tcolorbox}
\begin{document}
\begin{tcbposter}
\posterbox[]
{name=part1}{%
This is a test:
\begin{enumeratebak}
\item Just
\item a
\item test.
\end{enumeratebak}
}
\end{tcbposter}
\end{document}
解决您的问题的另一个(真正)解决方案是添加缺失的\begin{frame}
和\end{frame}
:
\documentclass{beamer}
\usepackage[poster]{tcolorbox}
\begin{document}
\begin{frame}
\begin{tcbposter}
\posterbox[]
{name=part1}{%
This is a test:
\begin{enumerate}
\item Just
\item a
\item test.
\end{enumerate}
}
\end{tcbposter}
\end{frame}
\end{document}
** 编辑 **(看看对当前答案的评论):
我的文件中实际上有两个问题。第一个问题是缺乏frame
,正如斯基尔蒙以上。第二个是我的序言中存在\usepackage{enumitem}
。这显然会导致enumerate
在这样的文档中使用环境时出现另一个错误。
结论:当beamer
与tcolorbox
包一起使用该类时,enumerate
只有将其放在frame
只有按照上述方法没有使用该enumitem
包。