使用\pause
,单击时会出现文本,但之后仍保持黑色。
使用\setbeamercovered{transparent}
,文本之前和之后都是灰色的。
我如何组合这些效果,以便文本在点击之前完全不可见,但之后保持灰色?
答案1
\uncover
定义为
\newrobustcmd*{\uncover}{\alt{\beamer@fakeinvisible}{\beamer@makecovered}}
您希望在幻灯片放映之前将其真正隐藏,然后在当前幻灯片上假装隐藏,并在后续幻灯片中覆盖。\temporal
命令最接近您的需求。但是如果我们写
\newcommand{\myuncover}{\temporal{\beamer@reallymakeinvisible}{\beamer@fakeinvisible}{\beamer@makecovered}}
然后\myuncover<1>{...}
就会报错,所以我定义了一个\mytemporal
类似于的命令来\temporal
让其<...>
在之后工作\myuncover
,下面是完整代码:
\documentclass{beamer}
\setbeamercovered{transparent=40}
\makeatletter
\protected\long\def\mytemporal#1#2#3<#4>{% past, present, future
\gdef\beamer@doifnotinframe{\beamer@picked}\def\beamer@doifinframe{#2}%
{\beamer@masterdecode{#4}%
\ifbeamer@localanotherslide\gdef\beamer@picked{#1}\else\gdef\beamer@picked{#3}\fi}\beamer@donow}
\newcommand{\myuncover}{\mytemporal{\beamer@reallymakeinvisible}{\beamer@fakeinvisible}{\beamer@makecovered}}
\makeatother
\begin{document}
\begin{frame}{test}
\myuncover<1>{test 1}
\myuncover<2>{test 2}
\myuncover<3>{test 3}
\end{frame}
\end{document}