这个 MWE 真的很小。我们利用了带有两个可选参数{description}
的环境beamer
:覆盖规范和项目宽度。
\documentclass{beamer}
%\documentclass{article}
%\usepackage{beamerarticle}
\begin{document}
\begin{frame}{The Animal Kingdom}
\begin{description}[<+->][Guans of America]
\item[Gnus] these are large cow-like animals
\item[Gnats] much smaller than gnus
\item[Guans of America] mid sized, I think
\end{description}
\end{frame}
\end{document}
现在,这在 beamer 模式下运行良好,但在 beamerarticle 中却不行,它会生成以下消息:
! LaTeX Error: Something's wrong--perhaps a missing \item.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.7 \item[Gnus] t
hese are large cow-like animals
?
在我看来,这似乎是一个错误。我想知道是否有一个可扩展的解决方法。我在一个大型演示文稿中遇到了几十个此类问题。
可以找到 Joseph Wright 对 beamer 源代码中此错误的修复这里。
{
\AtBeginDocument{
\let\beamer@origdescription=\description
- \renewcommand{\description}[1][]{\beamer@origdescription}
+ % The description environment doesn't use either optional
+ % arg in article mode, so simply gobble them
+ \def\description{%
+ \@ifnextchar[%]
+ {\beamer@description@}
+ {\beamer@origdescription}%
+ }
+ \def\beamer@description@[#1]{%
+ \@ifnextchar[%]
+ {\beamer@description@@}
+ {\beamer@origdescription}%
+ }
+ \def\beamer@description@@[#1]{\beamer@origdescription}
}
}
我尝试在\mode<article>
守卫中使用这个想法,但失败了。在下一个版本发布之前,如果能找到临时解决方法,我将不胜感激。
答案1
这里有一个简单的解决方法:将覆盖规范移至frame
环境中。在 MWE 示例中,写入:
\documentclass{beamer}
%\documentclass{article}
%\usepackage{beamerarticle}
\begin{document}
\begin{frame}[<+->]{The Animal Kingdom}
\begin{description}[Guans of America]
\item[Gnus] these are large cow-like animals
\item[Gnats] much smaller than gnus
\item[Guans of America] mid sized, I think
\end{description}
\end{frame}
\end{document}
在具有更丰富覆盖规范的框架中,您必须解决默认覆盖规范的问题。