我正在尝试在投影仪中制作一张幻灯片,其中每行都带有警报。这是我当前正在使用的代码:
\newenvironment{stepenumerate}{\begin{enumerate}[<+->]}{\end{enumerate}}
\newenvironment{stepitemize}{\begin{itemize}[<+->]}{\end{itemize}}
\newenvironment{stepenumeratewithalert}{\begin{enumerate}[<+-| alert@+>]}{\end{enumerate}}
\newenvironment{stepitemizewithalert}{\begin{itemize}[<+-| alert@+>]}{\end{itemize}}
\documentclass{beamer}
\begin{document}
\begin{frame}[fragile]
\frametitle{The Title}
\framesubtitle {The title}
\begin{stepitemizewithalert}
\item This is the first line:
\end{stepitemizewithalert}
\begin{definition}<2->
This is the definition.
\end{definition}
\begin{stepitemizewithalert}
\item <3->This is the third line.
\end{stepitemizewithalert}
\end{frame}
\end{document}
您可能会注意到,第一行没有问题,但定义和第三行没有出现警报。您能帮我解决这个问题吗?
谢谢大家。
最好的,
达里奥
答案1
我认为你滥用了 beamer 的<3->
功能。当你写
\item <3->This is the third line.
你是说这个物品应该从第三面开始出现没有警报。从某种意义上说,使用这种环境的全部目的就是避免必须手动插入所有命令<k->
。
您的 MWE 中的问题是stepenumeratewithalert
环境中的幻灯片编号不同步。这似乎总是在 itemize 环境开始时发生,所以我不确定这是否是一个错误,或者 beamer 作者是否认为这是一个功能。
无论如何,您都可以stepenumeratewithalert
使用命令的可选参数在环境开始时手动“设置”侧面编号\pause
。详细地说,以下内容似乎可以满足您的要求:
\documentclass{beamer}
\newenvironment{stepenumeratewithalert}{\begin{enumerate}[<+-| alert@+>]}{\end{enumerate}}
\begin{document}
\begin{frame}[fragile]
\begin{stepenumeratewithalert}
\item This is the first line:
\end{stepenumeratewithalert}
\begin{definition}<2->
This is the definition.
\end{definition}
\pause[3]% set current slide number equal to 3
\begin{stepenumeratewithalert}
\item This is the third line.
\end{stepenumeratewithalert}
\end{frame}
\end{document}
以下是第三张幻灯片的输出:
不管怎样,我尽可能地尝试使用\pause
,而不是显式<k->
命令。例如,我会将 放在环境\pause
前面definition
,而不是用 硬编码幻灯片编号<2->
。当然,有时这是不可避免的。