LaTeX/Beamer里的动画
今天算是弄通了Beamer里面的动画。之前,动画是我唯一让我留在MS PPT的理由,做模拟做实验,都是动画演示比较直观。Office的公式很差,而且换台计算机,可能还无法显示。还好有TeXPoint插件,利用LaTeX编译出来的公式图形来替代原生的Office公式输出。而Beamer输出的PDF文档,对于动画的支持一直不是那么好。于是还是暂时忍受PowerPoint做讲稿了。
最近,由于国际大搬家,换了一个地方以后,单位购买的Office版本从2003换到了2007,结果问题来了,以前一些讲稿,现在拿新版的Office一开,有不少地方需要调节。有一些由于版本的问题,不能在Wine里面的Office打开,还要到Windows原生的Office里转换格式,才能在Linux里面用。
想想以后不想如此折腾了,毕竟已经完全转到Linux,而且这个系统对于工作又不可或缺。于是查了几种方法来在PDF里加动画,找到了一个很满意解决方案。实际就是用一个animate包(英文说明,作者Alexander Grahn),然后用下面代码就可以实现:
\usepackage{animate}
...
\animategraphics[<options>]{<frame rate>}{<file basename>}{<first>}{<last>}
这个动画是由一个系列的图形文件构成的,自己定义动画的帧速<frame rate>,图形文件的目录和名称<file basename>,以及开始和结束的文件名称<first>、<last>。对于系列的图形文件,很多软件都有直接输出文件的命令。例如,下面的Mathematica输出命令就可以自动输出一系列的图片(文件名A1.jpg到A100.jpg):
Table[{image = "A" <> ToString[i] <> ".jpg";
Export[image, Show[G[i][[1]]]];}, {i, 1, 100}];
这里“G[i]”是一个带函数的图形输出命令。如果文件存在Figures目录下面,那么Beamer里调用下面命令就可以了。
\animategraphics[controls, buttonsize=3mm, height=0.3\textheight]{5}{Figures/A}{1}{100}
实际的例子可以看这里:slides.pdf。
如果动画是GIF、AVI格式之类的,也是有很多方法转换成系列图形的,例如ImageMagick,直接在命令行就可以完成转换。输出的带有动画的PDF文档,不再需要保存动画和图形文件,每次拷贝只需要一个文件就足够了。另外PDF的好处就是跨平台,在什么地方都可以看到一样的结果。
现在,用LaTeX/Beamer做讲稿的唯一问题已经解决。虽然做出来比较复杂的讲稿需要很多的时间,但是简单的东西,够用就可以了。另外,讲稿的目的,其实就是为了演讲者自己讲得清除,讲稿过于华丽倒是有反作用的。
PS,想到以后如果用PDF文档投文章,是不是可以直接插入动画了。如果从网上下载PDF,那么本地就可以直接看动画了。