本文内容:如何在 LaTeX 中插入 GIF 格式的动图
分为两大步骤:
- 利用 ImageMagick 开源工具将 GIF 格式的动图逐帧地切分成一系列 PNG 格式的图片;
- 在 LaTeX 中用 animate 宏包插入拆分得到的一系列图片,变成动画。
第一步:ImageMagick的下载、安装、使用
gif 转 png 神器——ImageMagick
下载
Windows 用户请到这里下载对应版本的安装包。
安装
安装ImageMagick过程中务必请注意:应当勾选 Install legacy utilities(e.g. convert)
(否则就没有convert
命令,笔者的亲历).
使用
既有图形界面的使用,也可以用命令行使用。(参考文末的参考资料)
下图是图形界面:
本文使用命令行方式将 .gif 分割为 png。假设我要处理的图片为 foo.gif:
1. 首先进入要处理的图片所在的文件夹,在地址栏输入cmd
,回车,打开命令窗口。
2. 运行convert
命令:
convert foo.gif -coalesce foo.png
运行结束后就可以在相同文件夹下获得一系列分解后的 png 图片(这里我得到了foo-0.png ~ foo-300.png 一共301张):
第二步: LaTeX 中 animate 宏包的使用
animate
宏包支持目前最流行的几种编译方式:
- pdfLaTeX / LuaLaTeX
- LaTeX -> dvips -> ps2pdf / LaTeX -> dvipdfmx
- XeLaTeX -> xdvipdfmx
支持这些特性的 PDF 阅读器比较少。目前已知的有
- Adobe Acrobat / Reader
- PDF-XChange
- Foxit Reader
(福昕阅读器好像就不行)
使用
- 引入
animate
宏包:\usepackage[<options>]{animate}
- 此前必须先引入
graphicx
宏包
animate
提供了 \animategraphics
命令,用于插入「一系列」的图片,而后将他们组成动画——相当于插入了动图。
命令格式为:
\animategraphics[<options>]{<frame rate>}{<file basename>}{<first>}{<last>}
此处 options
是命令的参数,主要用于控制动画的各种效果(具体参数介绍请看下一节【附:option命令参数】)。这部分参数大都也可用于宏包选项。frame rate
的单位是 Hz,表示 1 秒钟内,「放映」多少帧。
一个完整的具体的可执行例子如下:
\documentclass{beamer}
\usepackage{graphicx} % Allows including images
\usepackage{animate}
\begin{document}
\animategraphics[width=\linewidth, autoplay=True]{24}{figure/foo-}{0}{300}
\end{frame}
效果如下,pdf 打开滑到此页,动画自动播放:
附:option命令参数
(参考来源这里)
-type=<type name>
:使用指定的图片类型(而不按照前面提到的顺序搜索)。
poster[= first | <num> | last | none]
:指定用于打印和默认展示的动画帧,默认是第一帧。autopause
:当动画所在页不再呈现时,自动暂停动画。autoresume
:当被暂停的动画重新呈现时,自动恢复播放。autoplay
:当动画所在页在 PDF 阅读器中呈现时,自动播放动画。loop
:播放到最后一帧时,从第一帧开始继续播放;如此往复。palindrome
:播放到最后一帧时,逐帧倒退;如此往复。step
:忽略 frame rate,只在每次点击鼠标时播放一帧。width=<h-size>, height=<v-size>, totalheight=<v-size>, keepaspectratio
:按绝对长度缩放动画的大小。scale=<factor>
:按比例缩放动画的大小。controls
:展示用于控制动画的按钮。begin=<begin content>, end=<end content>
:仅用于 animateinline 环境,在每一帧的内容前后添加相应内容。
附:参考资料
参考资料
-------完结撒花★,°:.☆( ̄▽ ̄)/$:.°★ 。--------