我正在尝试使用 animate 包创建一个简单的 SVG 动画:
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{animate}
\usepackage{multido}
\usepackage{listofitems}
\newcommand\fileopenr[2]{%
\newread#1%
\immediate\openin#1=#2%
}
\newcommand\readtolist[3][,]{%
\setsepchar{#1}%
\immediate\read#2 to \inputline{%
\ifeof#2
\multiframebreak%
\else%
\greadlist#3\inputline%
\fi%
}%
}
\begin{document}
\begin{animateinline}[poster=first,autoplay,loop]{25}
\fileopenr{\dataP}{xP.dat}%
\readtolist[ ]{\dataP}{\posP}%
\multiframe{251}{}{%
\begin{tikzpicture}
\pgfmathsetmacro{\col}{ifthenelse(\posP[3]>=0,"green!50!black","red!50!black")}
\fill[color=\col] (5,1+0) rectangle ++(\posP[3]/2,0.2);
\draw[thick, color=black, -latex] (0,0) -- (10,0) node[right]{$x$};
\node[draw,circle,fill] (goal) at (10/1.5,0) {};
\fill[color=green] (\posP[1]/1.5,0) rectangle ++(1,0.5);
\end{tikzpicture}
\readtolist[ ]{\dataP}{\posP}%
}
\end{animateinline}
\end{document}
该文件xP.dat
是一个空格分隔的数字列表,可用这里。
当我使用 创建动画 PDF 时,此方法非常有效pdflatex
。但是,当我尝试通过添加选项\documentclass[dvisvgm]{standalone}
然后运行来创建 SVG 文件时
latex filename
latex filename
dvisvgm --exact --font-format=woff --zoom=-1 filename
根据软件包文档,我收到错误
ERROR: error in special: expected '-->' at end of comment
并且编译后的SVG文件是垃圾。
我错过了什么?