Я читал ответ на этот вопросСмешивание надпечатки с блоками перечислений
[Я копирую код еще раз, чтобы вам не пришлось переходить по ссылке]
\documentclass{beamer}
\usetheme{Warsaw}
\begin{document}
\begin{frame}{Test}
\begin{center}
text before
\pause
\begin{overlayarea}{\textwidth}{3.3cm}
\only<2-3>{%
\begin{block}{Some title here}
\begin{enumerate}[<+->]
\item One
\item Two
\end{enumerate}
\end{block}}
\only<4-7>{%
\begin{block}{Some title here}
\begin{enumerate}[<+(2)->]
\item CHicken
\item Duck
\item Rooster
\end{enumerate}
\end{block}}
\end{overlayarea}
text after
\end{center}
\end{frame}
\end{document}
и я заметил использование числа в скобках в спецификации наложения с приращением по умолчанию во второй enumerate
среде. (см. наличие [<+(2)->]
) Только тогда элементы второго пронумерованного списка в overlayarea
среде будут раскрываться по приращению.
Зачем это нужно? Кажется, подразумевается, что beamerpauses
сбрасывается между enumerate
средами? Или сбрасывается между only
командами в overlay
среде?
[<+->]
Разве это не отвратительное поведение? Потому что это как будто вы должны следить за бимерпаузами. Тогда теряется полезность , не так ли?
решение1
Этот, на первый взгляд, странный феномен можно объяснить, рассмотрев следующий простой пример:
\documentclass{beamer}
\newcommand\showpauses{The value of beamerpauses at this point in slide \insertpagenumber\ is: \thebeamerpauses}
\begin{document}
\begin{frame}{Test}
\only<1-2>{\par\showpauses%
\begin{enumerate}[<+->]
\item One \showpauses
\item Two \showpauses
\end{enumerate}
}
\only<3>{\par\showpauses}
\end{frame}
\end{document}
После обработки документа у вас получится презентация из трех слайдов, демонстрирующая значение счетчика beamerpauses
на разных этапах.
До второго слайда все идет так, как и ожидалось: в конце enumerate
на втором слайде значение beamerpauses
равно трем; однако на третьем слайде beamerpauses
это 1
. Почему это произошло? Ну, потому что спецификация наложения для \only
была 1-2
, поэтомувсепроисходящее на слайдах 1 и 2 будет происходить только для этих слайдов; в частности, пошаговое выполнение, beamerpauses
произведенное перечислением, будет иметь эффекттолькодля слайдов один и два. В третьем слайде, который не находится под действием \only
, счетчик beamerpauses
будет иметь то значение, которое у него было раньше.
Это показывает что-то неправильное с beamer
? Я так не думаю; в конце концов, ожидаемое значение\only
— держать вещи в рамках его области действиятолькодля указанных слайдов.
Если вы используете <1->
(или <1-3>
) вместо <1-2>
в приведенном выше примере, как в
\documentclass{beamer}
\newcommand\showpauses{The value of beamerpauses at this point in slide \insertpagenumber\ is: \thebeamerpauses}
\begin{document}
\begin{frame}{Test}
\only<1->{\par\showpauses%
\begin{enumerate}[<+->]
\item One \showpauses
\item Two \showpauses
\end{enumerate}
}
\only<3>{\par\showpauses}
\end{frame}
вы увидите, что теперь на третьем слайде счетчик имеет значение три, поскольку третий слайд находится в области действия \only
.
"Грязное" ручное увеличение счетчика в исходном примере было просто следствием особого эффекта, которого хотел добиться ОП. Возможно, этот же эффект можно было бы достичь другим способом, без ручного вмешательства?