itemize
スライドに Beamer を使用する場合、多くの場合、一度に 1 つの箇条書きを表示する環境を使用します\pause
。また、表示したいすべてのポイントが 1 つのスライドに収まらないことが多く、さらにいくつかのポイントを含む新しいスライドを開始する必要があります。
私が望むのは、代わりに、itemize
(ポイントが 1 つのスライドに収まらない場合に)次のコードのように、箇条書きのポイントを表示する のような環境です。
\documentclass{beamer}
\begin{document}
\begin{frame}
\begin{itemize}
\only<-5>{\item one}
\only<2-6>{\item two}
\only<3-7>{\item three}
\only<4-8>{\item four}
\only<5-9>{\item five}
\only<6-10>{\item six}
\only<7-11>{\item seven}
\only<8-12>{\item eight}
\only<9->{\item nine}
\only<10->{\item ten}
\only<11->{\item eleven}
\only<12->{\item twelve}
\end{itemize}
\end{frame}
\end{document}
ただし、使用しているスライドの数を追跡したくありません。
どこかにそんな環境があるのでしょうか?
また、何らかのアニメーション化されたローリングがあれば素晴らしいのですが、それはあまりにも要求しすぎかもしれません。
答え1
これはbeamerに組み込まれています:
\documentclass{beamer}
\begin{document}
\begin{frame}
\begin{itemize}[<only@+-+(4)>]
\item one
\item two
\item three
\item four
\item five
\item six
\item seven
\item eight
\item nine
\item ten
\end{itemize}
\end{frame}
\end{document}
オーバーレイの指定+-+(4)
は と同じ意味を持ちます。(n+1)-(n+5)
ここで はn
現在のスライド数です。only@
アクションはアイテムを で囲みます\only<...>
。指定を環境への引数として渡すと、itemize
各アイテムのデフォルトになります。
ループ内で項目テキストを指定する場合は、各項目の前に\foreach
明示的に呼び出すことができます。\only
\documentclass{beamer}
\usepackage{pgffor}
\begin{document}
\begin{frame}
\begin{itemize}
\foreach \x in {a,b,...,z} {%
\only<+-+(4)>{\item \x}
}
\end{itemize}
\end{frame}
\end{document}
ビーマー(v3.22)マニュアルのセクション9.6.3(アクション仕様)と9.6.4(増分仕様)を参照してください。また、この答え私の。
答え2
これはかなり奇妙な問題と制限のあるバージョンです。新しいカウンターiii
と新しい\myitem
コマンドを定義します。このようなitemize
環境を複数のスライドで使用する場合は、カウンターをリセットする必要があります。そうしないと、たとえば最初のスライドに 10 ポイントがある場合、次のスライドではスライド 11 から開始されます。そのため、ツールボックスはカウンター\AtBeginEnvironment
をリセットします。ただし、これはごとに 1 つのリストiii
しか使用できないことを意味します。そうしないと、両方のリストを同時にスクロールすることになります。私は、各 の先頭でカウンターをリセットすることでこれを改善しようとしました。しかし、この行がないと、大量のエラーが発生します (itemize
frame
iii
frame
\AtBeginEnvironment{itemize}{\setcounter{iii}{0}}
「おそらく欠品」) なので、現時点では 1itemize
回につき1 回のスクロールに制限されていますframe
。また、先読みメカニズムがないため、最後の 5 つの項目が表示されても停止せず、最後の 1 つの項目が存在する場合にのみ停止します。
コード
\documentclass{beamer}
\usetheme{Darmstadt}
\usepackage{tikz}
\usepackage{etoolbox}
\newcounter{iii}
\AtBeginEnvironment{itemize}{\setcounter{iii}{0}}
\newcommand{\myitem}[2][$\bullet$]
{ \stepcounter{iii}
\pgfmathtruncatemacro{\endslide}{\theiii+4}
\only<\theiii-\endslide>{\item[#1] #2}
}
\begin{document}
\begin{frame}[t]
\begin{itemize}
\myitem{a \theiii}
\myitem{b \theiii}
\myitem{c \theiii}
\myitem{d \theiii}
\myitem{e \theiii}
\myitem{f \theiii}
\myitem{g \theiii}
\myitem{h \theiii}
\myitem{i \theiii}
\myitem{j \theiii}
\myitem{k \theiii}
\myitem{l \theiii}
\myitem{m \theiii}
\myitem{n \theiii}
\myitem{o \theiii}
\myitem{p \theiii}
\myitem{q \theiii}
\myitem{r \theiii}
\myitem{s \theiii}
\myitem{t \theiii}
\myitem{u \theiii}
\myitem{v \theiii}
\myitem{w \theiii}
\myitem{x \theiii}
\myitem{y \theiii}
\myitem{z \theiii}
\end{itemize}
\end{frame}
\end{document}
結果
答え3
@Matthew Leingang の優れた回答の拡張として参考までに、リストに 4 項目未満が表示されないように、先頭と末尾をハードコードする方法を次に示します。
\documentclass{beamer}
\usepackage{pgffor}
\begin{document}
\begin{frame}
\begin{itemize}
\only<-1>{\item 1}
\only<-2>{\item 2}
\only<-3>{\item 3}
\only<+-+(3)>{\item 5}
\only<+-+(3)>{\item 6}
\only<+-+(3)>{\item 7}
\only<+-+(3)>{\item 8}
\only<+-+(3)>{\item 9}
\only<+-+(3)>{\item 10}
\only<+-+(3)>{\item 11}
\only<+-+(3)>{\item 12}
\only<+-+(3)>{\item 13}
\only<+->{\item 14}
\only<+->{\item 15}
\only<+->{\item 16}
\only<+->{\item 17}
\end{itemize}
\end{frame}
\end{document}