本文內容:如何在 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 環境,在每一幀的內容前後添加相應內容。
附:參考資料
參考資料
-------完結撒花★,°:.☆( ̄▽ ̄)/$:.°★ 。--------