在投影機中滾動項目符號點

在投影機中滾動項目符號點

通常,當我使用投影機製作幻燈片時,我會使用一個itemize環境來\pause一次展示一個要點。此外,通常我想在一張投影片上顯示的所有點都不適合,我需要開始一張新投影片,其中包含更多點。

我想要的是一個itemize類似的環境,它會給我(當這些點不適合單張投影片時)滾動項目符號點,類似於以下程式碼的作用:

\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

這是內建在投影機的:

\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計數器iii。然而,這意味著您只能使用一個這樣的itemize列表,frame否則您將同時滾動瀏覽這兩個列表。我嘗試透過iii在每次開始時重置計數器來改進這一點frame。但如果我沒有這條線\AtBeginEnvironment{itemize}{\setcounter{iii}{0}}我會得到一大堆錯誤(“也許缺少一件物品”),因此目前僅限於每個 滾動itemize一次frame。此外,由於沒有前瞻機制,因此當最後 5 項顯示時它不會停止,而只有在最後一項出現時才停止。

程式碼

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

相關內容