비머의 롤링 총알 포인트

비머의 롤링 총알 포인트

슬라이드에 비머를 사용할 때 종종 한 번에 하나의 중요 항목을 표시하는 itemize환경을 사용합니다. \pause또한 단일 슬라이드에 표시하려는 모든 포인트가 맞지 않아 몇 개의 포인트를 추가로 사용하여 새 슬라이드를 시작해야 하는 경우가 많습니다.

내가 원하는 것은 itemize(포인트가 단일 슬라이드에 맞지 않을 때) 롤링 글머리 기호 포인트를 제공하는 -like 환경입니다. 이는 다음 코드의 기능과 유사합니다.

\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)어디에 있습니까? nonly@작업은 항목을 \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에서 시작됩니다. 그래서 나는 사용했다etoolbox\AtBeginEnvironment카운터 를 재설정하는 것 입니다 iii. 그러나 이는 해당 itemize목록을 하나만 사용할 수 있음을 의미합니다. frame그렇지 않으면 두 목록을 동시에 스크롤하게 됩니다. 나는 iii각각의 시작 부분에서 카운터를 재설정하여 이를 개선하려고 했습니다 frame. 하지만 해당 줄이 없으면 \AtBeginEnvironment{itemize}{\setcounter{iii}{0}}엄청난 양의 오류가 발생합니다("아마도 누락된 항목이 있을 수 있습니다"), 따라서 현재로서는 1회 스크롤로 제한 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}

관련 정보