我以为我已经驯服了enumitem
。我有这个逐项修复和这个枚举修复。
然后我尝试[<+->]
构造。失败了。注释该enumitem
部分可以避免错误,但我宁愿不这样做。
在当前状态下,此代码会产生两个错误,一个是由于 ,[<+->]
另一个是由于\onslide
。
\documentclass{beamer}
\usepackage{enumitem}
\setitemize{label=\usebeamerfont*{itemize item}%
\usebeamercolor[fg]{itemize item}
\usebeamertemplate{itemize item}}%https://tex.stackexchange.com/a/24491
\setenumerate[1]{%
label=\protect\usebeamerfont{enumerate item}%
\protect\usebeamercolor[fg]{enumerate item}%
\insertenumlabel.}%https://tex.stackexchange.com/a/45950
\begin{document}
\begin{frame}
\begin{itemize}[<+->]
\item 1
\item 2
\end{itemize}
\onslide<2>{text}
\end{frame}
\end{document}
答案1
答案2
您可以使用\beamerdefaultoverlayspecification{<+->}
以下解决方法(请参阅beamer 文档第 89 页)。
\documentclass{beamer}
\usepackage{enumitem}
\setlist[itemize]{%
label=\usebeamerfont*{itemize item}%
\usebeamercolor[fg]{itemize item}%
\usebeamertemplate{itemize item}%
}%http://tex.stackexchange.com/a/24491
\setlist[enumerate,1]{%
label=\protect\usebeamerfont{enumerate item}%
\protect\usebeamercolor[fg]{enumerate item}%
\insertenumlabel.%
}%http://tex.stackexchange.com/a/45950
\begin{document}
\begin{frame}
\beamerdefaultoverlayspecification{<+->}
\begin{itemize}
\item 1
\item 2
\end{itemize}
\onslide<2>{text}
\end{frame}
\end{document}
只是为了好玩:您还可以为 enumitem 定义一个新键来指定默认覆盖规范。不过,我更建议\beamerdefaultoverlayspecification
直接使用,如上所示。
\documentclass{beamer}
\usepackage{enumitem}
\setlist[itemize]{%
label=\usebeamerfont*{itemize item}%
\usebeamercolor[fg]{itemize item}%
\usebeamertemplate{itemize item}%
}%http://tex.stackexchange.com/a/24491
\setlist[enumerate,1]{%
label=\protect\usebeamerfont{enumerate item}%
\protect\usebeamercolor[fg]{enumerate item}%
\insertenumlabel.%
}%http://tex.stackexchange.com/a/45950
% definition of new key for enumitem:
\makeatletter
\enitkv@key{enumitem}{overlay}{%
\beamerdefaultoverlayspecification{#1}%
}
\makeatother
\begin{document}
\begin{frame}
\begin{itemize}[overlay=<+->]
\item 1
\item 2
\end{itemize}
\onslide<2>{text}
\end{frame}
\end{document}
为什么我建议使用第一种方法: 第二种方法没有优势,因为它在内部使用了第一种方法。第一种方法使用标准命令,如果读者还不了解这些命令,可以很容易地在文档中查找它们。另一方面,第二种方法可能会让阅读你代码的其他人感到困惑,因为他们很可能会认为密钥是由 enumitem 包定义的,当他们在自己的代码中尝试它时,会因为无法工作而感到沮丧。而且你需要记住的是,您需要为想要使用它的每个文档定义此键(并且可能每次都需要查找定义)。
第一种方式打字速度更快,因为自动完成功能会帮你完成。使用自动完成功能还可以确保你不会犯打字错误。
布局应该保持一致。因此,你应该\beamerdefaultoverlayspecification
在序言中使用一次,之后可能就不需要再使用它了。
编辑:根据第 9 页脚注 7,我已将\setitemize
和替换\setenumerate
为因为\setlist
enumitem 文档这些已被弃用。