作为后续行动突出显示 TikZ 绘图的特定部分,我想知道如何gif
从一系列beamer
幻灯片生成动画图像()。
Martin Scharrer 举了这个例子:
我们也欢迎提供一些有关裁剪 PDF 文件的提示。=)
答案1
我在 Ubuntu Linux 下按照以下方式生成了该动画 GIF。它应该也可以在其他操作系统下工作,因为外部软件也可用于 Windows、Mac 和其他操作系统。
这假设beamer
frame
带有多个叠加层作为起点。上面的 GIF 代码可以在我的回答中找到突出显示 TikZ 绘图的特定部分。
- 确保其他幻灯片都是空的,例如
\setbeamertemplate{navigation symbols}{}%
- 确保所有幻灯片具有相同的大小。
- 编译为 PDF(直接或间接)。
- 裁剪 PDF,例如使用
pdfcrop <file>.pdf
。 使用图像魔术师从多页 PDF 生成动画 GIF:
convert -verbose -delay 50 -loop 0 -density 300 <file>-crop.pdf <file>.gif
根据您的喜好更改设置。
-verbose
其实不是必需的。
-delay
以 1/100 秒为单位说明动画中每幅图像的持续时间。
-loop
说明重复次数。0
此处表示无限重复。
-density
确定光栅图像的密度,单位为每英寸点数 (dpi)。这将影响 GIF 大小,并且由于 PDF 是矢量图形,因此是必需的。您还可以使用300x300
等分别选择 X 和 Y 密度。
这里还有一个外部示例,展示了我在其中一篇科学出版物中所用的图表:脉宽调制(30万)
我可能会添加对此的支持standalone
。开发人员版本中已经添加了转换支持。
答案2
对于那些需要非 Beamer 版本的人,请参阅以下内容。
LaTeX 输入文件:
在此插图中我使用了 PSTricks。
% travelingwave.tex
\documentclass{minimal}
\usepackage{pstricks-add,multido}
\newcommand\Left{0}
\newcommand\Bottom{-0.9}
\newcommand\Right{3.14}
\newcommand\Top{0.9}
\parindent=0pt
\paperwidth=\dimexpr\Right cm\relax
\paperheight=\dimexpr\Top cm - \Bottom cm\relax
\special{papersize=\the\paperwidth,\the\paperheight}
\topmargin=-72.27pt
\oddsidemargin=-72.27pt
\pagecolor{black}
\begin{document}
\multido{\r=0+7.5}{48}
{
\begin{pspicture*}(\Left,\Bottom)(\Right,\Top)
\psplot[plotpoints=300,algebraic,linecolor=yellow]{\Left}{\Right}{0.9*sin(2*(x-\r*Pi/360))}
\end{pspicture*}\newpage
}
\end{document}
批处理文件:
rem compile.bat takes a LaTeX input file without extension.
echo off
latex %1
dvips -t unknown %1
gswin32c -dAutoRotatePages=/None -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=%1.pdf %1.ps
convert -verbose -delay 25 -loop 0 -density 300 %1.pdf %1.gif
rem acrord32 %1.pdf
del %1.log
del %1.aux
del %1.dvi
del %1.ps
为了简单起见,将travelingwave.tex
和保存compile.bat
在同一目录中。要编译,请输入compile travelingwave
DOS 命令,然后按回车键。完成!
结果:
笔记:
- 看ImageMagick v6 示例——动画基础
convert
有关开关的详细描述。 - 如果
\pagecolor{<any-color-including-white>}
禁用,我们将得到如下效果。 - ImageMagick在后台
convert
调用 GhostScript如下。gswin32c.exe
答案3
我不知道我的答案是否符合在此网站上发布答案的要求(因为它实际上不LaTeX
涉及任何代码),但它就在这里。
随着在线工具的出现,将一定范围的文档转换为其他范围的文档变得很容易,而无需下载任何程序。所有这些工具都易于使用,因此不需要占用我们电脑中的任何空间。
由于beamer
输出是PDF
文件,我们可以将PDF
其转换GIF
为易捷格式按照以下简单步骤:
Upload
PDF 文档Set up
GIF(选择幻灯片和延迟量)Convert!
以下是一个例子:
答案4
在 ImageMagick 上花了几个小时却毫无结果(我一直收到错误消息)后,我决定使用 Photoshop + Acrobat Pro 解决方案。下面是我的做法。
所需软件
- Acrobat Pro(我使用的是 Acrobat X),或任何其他允许您将 PDF 页面导出或保存为图像的 PDF 阅读器
- Photoshop(我使用的是 CS3,但可能更新的版本,甚至稍旧的版本也可以使用)
脚步:
- 生成 Beamer 幻灯片的 PDF 文件
- 在 Acrobat Pro 中,点击
File
>Save as
>Image
><select PNG or JPEG>
,在弹出的窗口中选择Settings...
右侧的 ,在“转换”下将“分辨率”改为600 pixels/inch
或以上(默认分辨率很低),然后点击OK
和Save
,每页图片就会保存为 到指定位置<PDF_Name>_Page_#.png
。 - 打开 Photoshop,转到
File
>Script
>Load Files into Stack
。Browse
选择步骤 2 中生成的所有图像文件并单击OK
。现在所有页面都应作为 Photoshop 文档的图层导入。 - 转到
Window
并选择Animation
显示动画面板。 - 从动画面板右上角的弹出菜单中,选择
Make frames from layers
,然后Reverse frames
按正确的顺序设置帧。 - 在动画面板中选择所有帧(单击第一帧,然后
Shift
按住 Ctrl 键并单击最后一帧),并在任意帧的右下角选择帧速率。您还可以在面板左下角设置重复选项。单击播放按钮进行预览。 - 最后,转到
File
>Save for Web & Devices...
>Save
(右上角)> 为其命名,并确保选择.gif
作为扩展名。然后我们就完成了!
注意:如果要裁剪 PDF 文件,则在步骤 6 之后,选择图层面板中的所有图层,使用裁剪工具裁剪图像。