逐字揭開動畫效果?

逐字揭開動畫效果?

我需要像這裡(在 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}

我用的是:

  1. \comma:一個宏,用於在文本中使用逗號而不擾亂循環
  2. \myduration\transduration:設定0.05 秒效果的巨集。對於每個字母。
  3. \anitext:內部使用Beamer設定動畫效果的宏\temporal,在範例中文字顯示為粗體,\Large然後恢復正常。

當然,需要對要製作動畫的文字進行預處理,以便每個字母後面都跟有一個逗號。為此,我將要動畫的文字放入單獨的檔案中並使用:

cat <finename> | fold -w1 | paste -sd+, -

另外,每個空格都需要用巨集替換\space(我是透過搜尋和替換完成的)。

巨集的第一個參數\anitext等於原始文字中的字元數(不包括逗號)。也可以在每對字元後面加上一個逗號(帶有fold -w2),但動畫會不太流暢。

在此輸入影像描述

在 MwE 中,動畫文字從第 2 號幻燈片開始,以便使用者在想要開始動畫時可以前進到第 2 號幻燈片,然後欣賞假動畫:)

我也用它來處理更長的文本,最多 450 個字符,除了生成的 PDF 的幻燈片數量令人難以置信之外,它工作得很好。

相關內容