Я хотел бы получить результат, идентичный следующему:
\documentclass{beamer}
\begin{document}
\begin{frame}[<+->]{Sampling}
\begin{itemize}
\item A random sample of ten people from the US will \alt<5>{{\color{blue}on average}}{on average} produce
five men and five women, but... \uncover<+->{ any given trial is likely to over-represent one sex and underrepresent
the other.}
\item Analogy: if you flip a fair coin 10 times, \alt<5>{{\color{blue}on average}}{on average} you'll get 5
heads and 5 tails, but... \uncover<+->{ sometimes we might get 7 heads and 3 tails, and other times 8 tails
and 2 heads.}
\item What does ``\alt<5>{{\color{blue}on average}}{on average}'' mean above?
\item It means that if we were to take a lot of samples.... blah blah.
\end{itemize}
\end{frame}
\end{document}
Однако вместо \alt<5>{{\color{blue}on average}}{on average}
, я хочу лениво поставить \groupA{on average}
для первых двух экземпляров "в среднем", а для третьего и последнего что-то вроде \revealGroupA{on average}
. То есть, я хочу написать следующий код, но добиться того же результата, что и выше:
\documentclass{beamer}
\begin{document}
\begin{frame}[<+->]{Sampling}
\begin{itemize}
\item A random sample of ten people from the US will \groupA{on average} produce
five men and five women, but... \uncover<+->{ any given trial is likely to over-represent one sex and underrepresent
the other.}
\item Analogy: if you flip a fair coin 10 times, \groupA{on average} you'll get 5
heads and 5 tails, but... \uncover<+->{ sometimes we might get 7 heads and 3 tails, and other times 8 tails
and 2 heads.}
\item What does ``\revealGroupA{on average}'' mean above?
\item It means that if we were to take a lot of samples.... blah blah.
\end{itemize}
\end{frame}
\end{document}
Некоторые примечания:
В примере аргумент («в среднем») всегда один и тот же, но в других случаях использования это не так.
Я также много делаю этого на уроках математики, поэтому было бы неплохо, если бы команда работала и в области математики, и за ее пределами.
Я бы, скорее всего, использовал этот механизм в нескольких разных кадрах одного и того же файла.
Не уверен, что это уместно, но я планирую расширить ответ, чтобы также создать
\groupB
команду, которая по сути будет делать то же самое, но использовать другой цвет. Причина этого в том, что я могу захотеть использовать и то, и другое\groupA
в\groupB
одном кадре.
решение1
Вы можете использовать totcount
пакет для хранения номера наложения, по которому ваша группа будет отображаться между компиляциями (не используйте одну и ту же группу повторно в разных кадрах):
\documentclass{beamer}
\makeatletter
\newcommand*{\slideinframe}{\beamer@slideinframe}
\makeatother
\usepackage{totcount}
\setbeamercolor{alerted text}{fg=blue}
\newcounter{overlaygroupA}
\setcounter{overlaygroupA}{0}
\newcommand{\revealGroupA}[1]{%
\only<.>{\setcounter{overlaygroupA}{\slideinframe}}%
\alert<.>{#1}%
}
\newcommand{\groupA}[1]{%
\alert<\totvalue{overlaygroupA}>{#1}%
}
\regtotcounter{overlaygroupA}
\begin{document}
\begin{frame}[<+->]{Sampling}
\begin{itemize}
\item A random sample of ten people from the US will \groupA{on average} produce
five men and five women, but... \uncover<+->{ any given trial is likely to over-represent one sex and underrepresent
the other.}
\item Analogy: if you flip a fair coin 10 times, \groupA{on average} you'll get 5
heads and 5 tails, but... \uncover<+->{ sometimes we might get 7 heads and 3 tails, and other times 8 tails
and 2 heads.}
\item What does ``\revealGroupA{on average}'' mean above?
\item It means that if we were to take a lot of samples.... blah blah.
\end{itemize}
\end{frame}
\end{document}