如何在LaTeX中制作动画
在这里, 我将演示如何利用Mathemathica在LaTeX中制作动画.
原理: LaTeX动画有两个比较著名的宏包, 一是animate, 二是movie15. 关于movie15的例子可以参考这里. 原理其实差不多, 只是用到的工具不同.
1. 制作frame, 也就是帧, 我们知道动画都是连续播放静态图片而运动起来的. 于是第一步就是用mathematica制作一个动画的frame;
2. 利用animate.sty将这些frame嵌入到pdf文件中; 这样就可以在acobat中播放了.
具体步骤如下:
1. 在Mathematica下运行如下代码:
1 2 3 4 |
flist = Most[ Map[Graphics[{Red, Disk[{0, 0}, 2], White, Disk[1.5 {Cos[#], Sin[#]}, 0.5]}] &, Range[Pi/2, -3 Pi/2, -Pi/6.]]] |
得到一列滚动的圆.
2. 利用如下代码将每幅图片提取到工作目录(可用Directory[]查看当前工作目录)
1 2 3 |
MapThread[ Export[StringJoin["frame-", ToString[#2], ".jpg"], #] &, {flist, Range[Length[flist]]}] |
3. 在同一目录下新建test.tex内容如下
1 2 3 4 5 6 7 8 9 10 11 |
\documentclass{beamer} \usepackage{animate} \begin{document} \begin{frame}{Example of animated PDF} \begin{figure}[htbp] \animategraphics[width=0.5\textwidth, controls,buttonsize=1em,buttonfg=0.5, loop]{5}{frame-}{1}{12} \end{figure} \end{frame} \end{document} |
其中第2行是宏包载入代码, 必须的. 而5-9是frame的主要内容, 它包括了一个figure来居中放置动画, 而6-8行就是动画嵌入代码了. 它的基本格式如下
1 2 |
\animategraphics[<options>]{<frame rate/>}{<file basename>}{<first>}{<last>} </last></first></file></options> |
各项参数意义是明显的:
width: 半个文章宽度
controls: 显示控制按钮
buttonsize: 按钮大小
buttonfg: 按钮透明度
loop: 循环播放.
更多的可参考animate的说明文档.
4. 运行pdflatex, 得到test.pdf 用acobat reader 打开即可.
5. 参考文献
i. PDF embedded animations with Mathematica and Latex-beamer
ii. The animate package
6. 附件
最终的pdf
发表回复