Viñetas rodantes en el proyector

Viñetas rodantes en el proyector

A menudo, cuando uso el proyector para diapositivas, uso un itemizeentorno para \pausemostrar una viñeta a la vez. Además, muchas veces todos los puntos que quiero mostrar en una sola diapositiva no encajan y necesito comenzar una nueva diapositiva con un par de puntos más.

En cambio, lo que me gustaría es un itemizeentorno similar a - que me diera (cuando los puntos no caben en una sola diapositiva) viñetas rodantes, algo similar a lo que hace el siguiente código:

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

Sin embargo, no quiero realizar un seguimiento de cuántas diapositivas estoy usando.

¿Existe tal ambiente en alguna parte?

Además, algún tipo de movimiento animado sería excelente, pero podría ser pedir demasiado.

Respuesta1

Esto está integrado en el proyector:

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

La especificación de superposición +-+(4)significa lo mismo que (n+1)-(n+5)donde nestá el recuento de diapositivas actual. La only@acción envuelve el elemento en un archivo \only<...>. Poner la especificación como argumento para el itemizeentorno la convierte en el valor predeterminado para cada elemento.

Si desea especificar el texto del elemento en un \foreachbucle, puede llamar explícitamente \onlyantes de cada elemento:

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

Consulte las secciones 9.6.3 (Especificaciones de acción) y 9.6.4 (Especificaciones incrementales) del manual del proyector (v3.22). Tambiénesta respuestamío.

Respuesta2

Aquí tienes una versión, con un problema bastante extraño y por tanto una limitación. Define un nuevo contador iiiy un nuevo \myitemcomando. Si utiliza dichos itemizeentornos en más de una diapositiva, deberá restablecer el contador. De lo contrario, si por ejemplo tuviera 10 puntos en la primera diapositiva, comenzaría en la diapositiva 11 de la siguiente diapositiva. Así que usécaja de herramientasEs \AtBeginEnvironmentpara restablecer el iiicontador. Sin embargo, esto significa que solo puede usar una itemizelista de este tipo frame, de lo contrario, se desplazará por ambas al mismo tiempo. Intenté mejorar esto reiniciando el iiicontador al comienzo de cada uno frame. Pero si no tengo la línea, \AtBeginEnvironment{itemize}{\setcounter{iii}{0}}aparece una gran cantidad de errores ("tal vez falta un elemento"), por lo que por el momento esto está limitado a un desplazamiento itemizepor archivo frame. Además, como no hay un mecanismo de anticipación, no se detendrá cuando se muestren los últimos 5 elementos, sino sólo cuando el último esté presente.

Código

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

Resultado

ingrese la descripción de la imagen aquí

Respuesta3

Como referencia como extensión de la excelente respuesta de @Matthew Leingang. Así es como codifica el principio y el final para evitar que la lista muestre menos de 4 elementos.

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

información relacionada