
Мне нужен эффект появления текста, как здесь (в JavaScript)http://jsfiddle.net/VZvK7/.
Однако я не знаю, как вставить js-код в LaTeX (кроме использования AcroTeX Bundle), и это также заставило бы меня использовать Acrobat Reader, поэтому я хотел бы реализовать аналогичный эффект в Beamer. Возможно ли это?
(конечно, я бы с удовольствием увидел альтернативные подходы к этому)
решение1
Основная идея — поместить каждую букву на отдельный слайд.
\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}
Что я использовал:
\comma
: макрос для добавления запятых в текст, не нарушая цикл\myduration
: макрос, устанавливающий\transduration
эффект 0,05 секунды. Для каждой буквы.\anitext
: макрос для настройки эффекта анимации с использованием Beamer\temporal
внутри; в этом примере текст отображается жирным шрифтом, а\Large
затем возвращается к обычному начертанию.
Конечно, текст для анимации должен быть предварительно обработан, чтобы каждая буква сопровождалась запятой. Для этого я поместил текст для анимации в отдельный файл и использовал:
cat <finename> | fold -w1 | paste -sd+, -
Также каждый пробел необходимо заменить макросом \space
(я сделал это через поиск и замену).
Первый аргумент макроса \anitext
равен количеству символов в исходном тексте (без запятых). Также можно добавлять запятую после каждой пары символов (с fold -w2
), но тогда анимация будет менее плавной.
В MwE анимированный текст начинается со слайда номер 2, так что пользователь может перейти к слайду номер 2, когда захочет начать анимацию, а затем полюбоваться фальшивой анимацией :)
Я использовал этот метод и с более длинным текстом, до 450 символов, и, если не считать невероятного количества слайдов в полученном PDF-файле, он работает отлично.