使用 Beamer,如何使文本在单击时显示,然后变灰?

使用 Beamer,如何使文本在单击时显示,然后变灰?

使用\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}

在此处输入图片描述

相关内容