Автоматически запускать сгруппированные команды форматирования в наложениях

Автоматически запускать сгруппированные команды форматирования в наложениях

Я хотел бы получить результат, идентичный следующему:

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

введите описание изображения здесь

Связанный контент