
Preciso de um efeito de exibição para texto como este (em javascript) aquihttp://jsfiddle.net/VZvK7/.
No entanto, não sei como inserir código js no LaTeX (além de usar o pacote AcroTeX) e isso também me forçaria a usar o Acrobat Reader, então gostaria de implementar um efeito semelhante no Beamer. É possível?
(é claro que eu adoraria ver abordagens alternativas para isso)
Responder1
A ideia básica é colocar cada letra em um único slide.
\documentclass{beamer}
\usepackage{pgffor}
\usepackage{ragged2e} %for justification
\newcommand{\comma}{,}
\newcommand{\myduration}[1]{%
\foreach \l in {#1}{%
\transduration<\l>{.05}%
}%
}
\newcommand{\anitext}[2]{%
\myduration{#1}%
\foreach \i in {#2}{%
\temporal<+>{}{\Large\bfseries \vphantom{Mpgjy}\i}{\vphantom{Mpgjy}\i}% %the phantom removes the bumping
}%
}
\begin{document}
\begin{frame}
\justifying
\pause
\anitext{2,...,122}{%
L,o,r,e,m,\space,i,p,s,u,m,\space,d,o,l,o,r,\space,s,i,t,\space,a,m,e,t\comma,\space,c,o,n,s,e,c,t,e,t,u,r,\space,a,d,i,p,i,s,c,i,n,g,\space,e,l,i,t\comma,\space,s,e,d,\space,d,o,\space,e,i,u,s,m,o,d,\space,t,e,m,p,o,r,\space,i,n,c,i,d,i,d,u,n,t,\space,u,t,\space,l,a,b,o,r,e,\space,e,t,\space,d,o,l,o,r,e,\space,m,a,g,n,a,\space,a,l,i,q,u,a.
}
\end{frame}
\end{document}
O que eu usei:
\comma
: uma macro para colocar vírgulas no texto sem atrapalhar o loop\myduration
: uma macro que define um\transduration
efeito de 0,05 segundos. Para cada letra.\anitext
: uma macro para definir o efeito de animação usando o Beamer\temporal
internamente, no exemplo o texto aparece em negrito e\Large
depois volta ao normal.
É claro que o texto a ser animado precisa ser pré-processado para que cada letra seja seguida por uma vírgula. Para fazer isso coloquei o texto a ser animado em um arquivo separado e usei:
cat <finename> | fold -w1 | paste -sd+, -
Além disso, cada espaço precisa ser substituído por uma \space
macro (fiz isso por meio de pesquisar e substituir).
O primeiro argumento da \anitext
macro é igual ao número de caracteres do texto original (sem vírgulas). Também é possível adicionar uma vírgula após cada par de caracteres (com fold -w2
), mas a animação fica menos fluida.
No MwE o texto animado começa no slide número 2, para que o usuário possa avançar para o slide número 2 quando quiser iniciar a animação e depois admirar a falsa animação :)
Usei isso também com textos mais longos, de até 450 caracteres, e tirando a quantidade ridícula de slides do PDF resultante, funciona bem.