假设我有以下内容
\documentclass{beamer}
\newcommand*{\something}{
\onslide<+-> this \onslide<+-> that
}
\newcommand*{\morething}{
\onslide<+-> more
}
\begin{document}
\begin{frame}
\something
\morething
\end{frame}
\end{document}
这将生成一堆幻灯片,其中this
、that
和more
连续出现。我想创建一个新的命令或环境来暂时禁用动画。让我将假设的命令称为\disableanim
。然后,以下代码将生成幻灯片,其中this
和that
只是同时出现(即没有动画),但 中的动画\morething
仍然保留。理想情况下,\disableanim
应该对其他叠加感知命令也有效。
\documentclass{beamer}
\newcommand*{\disableanim}{???}
\newcommand*{\something}{
\onslide<+-> this \onslide<+-> that
}
\newcommand*{\morething}{
\onslide<+-> more
}
\begin{document}
\begin{frame}
\disableanim{\something}
\morething
\end{frame}
\end{document}
谢谢你!
答案1
您可以暂时\onslide<.>
用以下无操作来替换:
\newcommand*{\disableanim}[1]{{%
\RenewDocumentCommand{\onslide}{ R<>{} }{}%
#1%
}}
请注意宏中的附加分组{
...}
限制了重新定义的范围。也可以插入其他覆盖感知命令的类似重新定义。