Beamer はオーバーレイ内の環境間でカウンターのリセットを一時停止しますか?

Beamer はオーバーレイ内の環境間でカウンターのリセットを一時停止しますか?

私はこの質問の答えを読んでいましたオーバープリントと列挙ブロックの混合

[リンクをたどる必要がないようにコードを再コピーします]

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

そして、2 番目の環境のデフォルトの増分オーバーレイ仕様で、括弧内の数字が使用されていることに気付きましたenumerate。( の存在を確認してください[<+(2)->]) そうすることで、環境の 2 番目の番号付きリストの項目がoverlayarea増分的に明らかになります。

なぜそれが必要なのでしょうか?環境beamerpauses間でリセットされることを意味しているようです。それとも、環境内のコマンドenumerate間でリセットされるのでしょうか?onlyoverlay

それは不快な動作ではないでしょうか? なぜなら、それはあたかも、ビーマーの一時停止を自分で追跡しなければならないかのようです。 の有用性は[<+->]失われてしまいますね?

答え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さまざまな段階でのカウンターの値を示す 3 つのスライドのプレゼンテーションが作成されます。

スライド2までは、すべてが予想どおりです。スライド2の の終わりには のenumerate値はbeamerpauses3です。しかし、スライド3ではbeamerpausesです1。なぜこのようなことが起こるのでしょうか? オーバーレイの仕様が\onlyだったため1-2すべてbeamerpausesスライド1と2で起こっていることは、それらのスライドでのみ発生します。特に、列挙によって生成されるステップは効果があります。のみスライド 1 と 2 の場合。 の影響を受けない 3 番目のスライドでは、\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}

スライド 3 は のスコープ内にあるため、スライド 3 のカウンターの値が 3 になっていることがわかります\only

元の例のカウンターの「汚い」手動増加は、単に OP が達成したかった特殊効果によるものでした。おそらく、この同じ効果は、手動介入なしで別の方法で達成できるのではないでしょうか。

関連情報