Latex使用技巧:插入.gif动画

本文内容:如何在 LaTeX 中插入 GIF 格式的动图

分为两大步骤:

  1. 利用 ImageMagick 开源工具将 GIF 格式的动图逐帧地切分成一系列 PNG 格式的图片;
  2. 在 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 环境,在每一帧的内容前后添加相应内容。

附:参考资料

参考资料

-------完结撒花★,°:.☆( ̄▽ ̄)/$:.°★ 。--------

猜你喜欢

转载自blog.csdn.net/qq_37851620/article/details/102829579