我不是 LaTeX 专业人士,所以我不知道以下是否可行以及如何做到这一点。
我有一张图形(一个图,jpg),它显示了一个时间序列。我知道在 PowerPoint 中,如果一个人来到演示文稿中的幻灯片,时间序列曲线就会被绘制出来,因此不仅仅是显示/出现,而是慢慢地绘制成一条曲线,所以人们可以看到计算机实际上画出了这条线,就像人类画线一样。有人知道我该怎么做吗?
答案1
在这个答案中,我将解释如何制作 PDF 和 GIF 格式的动画:
确保您已安装以下应用程序并将 PATH 系统变量设置为它们的位置。
- TeXLive 或 MikTeX。
- GhostScript。您可以安装 32 位或 64 位版本。32 位和 64 位对应的应用程序名称分别为
gswin32c.exe
和gswin64c.exe
。 - ImageMagick。创建 GIF 动画时需要它。您可以安装 32 位或 64 位版本。
前两节将指导您创建一些支持文件,以简化您的工作流程。最后一节将展示如何利用支持文件来创建动画。
为 GIF 动画创建多用途批处理文件
创建一个名为如下的批处理文件GifAnimate.bat
。建议将其保存在单独的目录中,以便其他项目可以使用它。不要忘记将 PATH 设置为其位置。
rem this is GifAnimate.bat
rem %1 : filename (without extension) of a PDF file having pages to be animated.
rem %2 : delay between frames (in 1/100 miliseconds).
rem %3 : density of the GIF output. The higher it is the bigger output.
echo off
rem remove the previous GIF animation if any.
del %1.gif
convert -delay %2 -loop 0 -density %3 %1.pdf %1.gif
为 PDF 动画创建多用途批处理文件和模板
创建一个名为如下的批处理文件PdfAnimate.bat
。建议将其保存在单独的目录中,以便其他项目可以使用它。不要忘记将 PATH 设置为其位置。
rem this is PdfAnimate.bat
rem %1 : filename (without extension) of a PDF file having pages to be animated.
rem %2 : frame rate (in frames per second).
rem %3 : scale of the GIF output. The higher it is the bigger output.
echo off
rename %1.pdf %1-animate.pdf
pdflatex -interaction=batchmode --jobname=%1 "\newcommand\InputFileName{%1-animate}\newcommand\FrameRate{%2}\newcommand\OutputScale{%3}\input{PdfAnimateTemplate}"
del %1-animate.pdf
创建一个名为如下的模板文件PdfAnimateTemplate.tex
。建议将其保存在本地TDS中,以便其他项目可以使用它。
% this is PdfAnimateTemplate.tex
\documentclass[preview,border=12pt]{standalone}
\usepackage{animate}
\begin{document}
\animategraphics[autoplay,loop,scale=\OutputScale]{\FrameRate}{\InputFileName}{}{}
\end{document}
创建 GIF 和 PDF 动画
test.tex
创建一个名为如下的LaTeX 输入文件:
\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-plot}
\psset{plotpoints=3000,algebraic}
\begin{document}
\multido{\r=-3.5+0.5}{15}
{
\begin{pspicture}(-4,-2)(4,2)
\psaxes[arrows=->,linewidth=0.2pt](0,0)(-3.5,-1.5)(3.5,1.5)[$x$,0][$y$,90]
\psplot[linecolor=red]{-3.5}{\r}{sin(3*x)}
\end{pspicture}
}
\end{document}
首先使用 LaTeX 或 XeLaTeX 对其进行编译。
使用 LaTeX 如下(依次执行):
latex test.tex
dvips test.dvi
ps2pdf test.ps
使用 XeLaTeX 如下:
xelatex test.tex
您将获得一个名为 的 PDF 输出test.pdf
。它由 15 页组成。
为了得到相应的GIF动画,执行GifAnimate.bat test 20 250
,我们将得到以下输出:
要获取相应的PDF动画,执行PdfAnimate.bat test 25 3
,我们将得到一个PDF动画(这里无法显示)。
各种各样的
响应扬尼斯·拉扎里德斯' 在下面评论。我懒得给蝙蝠侠做动画,因为曲线有很多不连续之处。相反,我给出了另一个例子。希望下面的图表更令人兴奋!
\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-solides3d}
\psset{viewpoint=50 20 10 rtp2xyz,Decran=50,linewidth=0.5\pslinewidth}
\begin{document}
\multido{\rx=-0.5+0.05,\ry=-0.45+0.05,\i=1+1}{20}
{
\begin{pspicture}(-0.5,-0.5)(0.5,0.5)
\rput(0,0){%
\begin{pspicture*}(-0.5,-0.5)(0.5,0.5)
\defFunction[algebraic]{helicespherique}(t)
{0.5*cos(10*t)*cos(t)}
{0.5*sin(10*t)*cos(t)}
{0.5*sin(t)}
\ifnum\i=1
\psSolid
[
object=sphere,
linewidth=0.1pt,
linecolor=red,
resolution=720,
action=draw*,
ngrid=9 9,
r=0.5
]\fi
\psSolid
[
object=courbe,
linewidth=0.05pt,
linecolor=blue,
resolution=720,
range=pi \rx\space mul \ry\space pi mul,
function=helicespherique,
r=0.01
]
\end{pspicture*}}
\end{pspicture}
}
\end{document}
回应给定的评论
如果您想test.pdf
在 PDF 文档中添加动画(包含 15 页),请使用以下模板并使用 进行编译pdflatex
。
\documentclass{article}
\usepackage{animate}
\begin{document}
% your other contents go here
\animategraphics[autoplay,loop,scale=<OutputScale>]{<FrameRate>}{test}{}{}
% your other contents go here
\end{document}
在哪里
<OutputScale>
是表示缩放因子的实数。<FrameRate>
是一个表示每秒帧数的整数。
当然,<
和>
不是语法的一部分。