- 考虑以下最小工作示例。
- 拥有 pdf 格式的动画真是太棒了。
- 但有时能够出口把它变成动画 gif 或者其他(swf、视频文件、svg?)。
- 我如何实现这个目标?
- 注意:我经常将动画与 pgfplots 结合起来。
\documentclass{article}
\usepackage{animate}
\usepackage[active,tightpage]{preview}
\PreviewEnvironment{animateinline}
\begin{document}
\begin{center}
\fboxsep1mm
\begin{animateinline}[autoplay,loop]{2}
a
\newframe
b
\newframe
c
\end{animateinline}
\end{center}
\end{document}
评论
动画并非在所有 PDF 查看器中都可见。它肯定适用于当前Adobe Reader。
答案1
1 动画 SVG ( animate
[2018/11/20]
)
- 适合包含在网页中(或单独查看,也可以在移动设备上查看)
- 可自由缩放(矢量图形)
- 依赖于 M. Gieseking 的
dvisvgm
输出驱动程序/实用程序(可在 TeXLive 和 MikTeX 中使用)
编译
latex myAnim.tex % or lualatex --output-format=dvi or xelatex --no-pdf dvisvgm --exact --font-format=woff --zoom=-1 myAnim.dvi % or myAnim.xdv
myAnim.tex
:
\documentclass[dvisvgm,12pt]{article}
\usepackage{animate}
\pagestyle{empty}
\begin{document}\Huge
\begin{center}
\begin{animateinline}[controls,buttonsize=0.5em,autoplay,loop]{2}
\multiframe{10}{i=0+1}{
\framebox[1em]{\i}
}
\newframe
\framebox[1em]{A}
\newframe
\framebox[1em]{B}
\newframe
\framebox[1em]{C}
\newframe
\framebox[1em]{D}
\newframe
\framebox[1em]{E}
\newframe
\framebox[1em]{F}
\end{animateinline}
\end{center}
\end{document}
<object>
使用标签嵌入到 HTML 中<object type="image/svg+xml" data="myAnim.svg"> <!-- fallback & search engine indexing --> <img src="myAnim.svg" /> </object>
Chromium Web 浏览器及其衍生浏览器(Chrome、Opera 等)拥有迄今为止最佳的渲染性能,可以通过以下方式测试:洛伦兹吸引子示例。
2 导出为多页 PDF ( animate
[2018/08/22]
)
自版本起[2018/08/22]
,animate
具有包选项export
,与standalone
文档类,例如:
\documentclass[export]{standalone}
\usepackage{animate}
或者
\documentclass{standalone}
\usepackage[export]{animate}
动画帧作为多页文档的单独页面输出,适合使用外部程序(例如来自 ImageMagick.org 的程序)转换为其他文件格式,例如动画 GIF convert
:
convert -density 300 -delay 4 -loop 0 -alpha remove multipage.pdf animated.gif
以每秒 100/4=25 帧的速度创建动画 GIF。
答案2
可以使用 wolfram 脚本和 latexalpha2wlua.sty (windows、pdflatex、lualatex) 制作动画 GIF
看https://tex.stackexchange.com/a/579254/161015以获得完整的答案。
\documentclass{standalone}
\RequirePackage[cache]{latexalpha2wlua} % option cache (faster on the second run) or nocache (recalculate always)
\begin{document}
Produce an animated GIF in current directory
\newcommand{\iplotx}{%
Animate[Plot3D[Sin[x*y +a], {x, 0, 6}, {y, 0, 6}], {a, 0, 4}]
}
\wolframonlygif{\iplotx}{animaxvi} %#2 name of animated gif
\end{document}
此外
(1)作为输出的一部分,动画 gif 将保留在当前目录中
(2)放在latexalpha2wlua.sty
文档的同一目录下或者您的本地 texmf
目录中。