这是我前段时间发现的一个问题,但一直没能弄清楚。也许是我的发行版出了问题,但我不知道该如何解决。以下是想法
考虑这个脚本
\documentclass[border = 5pt, tikz]{standalone}
\usepackage{circuitikz}
\begin{document}
\foreach \k in {1,...,10}
{
\begin{tikzpicture}
\draw (0, 0) rectangle (2, 2);
\fill[red] (\k/5, 1) circle (0.1);
\end{tikzpicture}
}
\end{document}
当我运行它时,它会生成10
页面,然后我可以使用它们来生成gif
另一方面,如果我将环境更改为circuitikz
\documentclass[border = 5pt, tikz]{standalone}
\usepackage{circuitikz}
\begin{document}
\foreach \k in {1,...,10}
{
\begin{circuitikz}
\draw (0, 0) rectangle (2, 2);
\fill[red] (\k/5, 1) circle (0.1);
\end{circuitikz}
}
\end{document}
我得到一个包含所有框架的页面
然后将其转换为gif
已被证明有点困难。
知道为什么会发生这种情况吗?谢谢!
我在用着Version 3.14159265-2.6-1.40.19 (TeX Live 2018/MacPorts 2018.47642_7)
答案1
如果你说\documentclass[border = 5pt, tikz]{standalone}
这不仅会加载tikz
,而且还会告诉standalone
它应该为每个生成单独的 pdf 页面tikzpicture
。为了为 circuitikz 生成单独的 pdf 页面,你可以这样做
\documentclass[border = 5pt, tikz]{standalone}
\usepackage{circuitikz}
\standaloneenv{circuitikz}
\begin{document}
\foreach \k in {1,...,10}
{
\begin{circuitikz}
\draw (0, 0) rectangle (2, 2);
\fill[red] (\k/5, 1) circle (0.1);
\end{circuitikz}
}
\end{document}
请注意,这种可能性并不唯一。另一种可能性是使用
\documentclass[border = 5pt, multi={circuitikz}]{standalone}
\usepackage{circuitikz}
\begin{document}
\foreach \k in {1,...,10}
{
\begin{circuitikz}
\draw (0, 0) rectangle (2, 2);
\fill[red] (\k/5, 1) circle (0.1);
\end{circuitikz}
}
\end{document}
而不是。有关更多信息,请参阅standalone
第 10 页的手册。
答案2
与动画 SVG 相同,使用animations
TikZ/Pgf-3.1 库:
使用以下方式编译
乳胶示例 dvisvgm --zoom=-1 示例
example.tex
:
\documentclass[dvisvgm]{standalone}
\usepackage{circuitikz}
\usetikzlibrary{animations}
\begin{document}
\begin{circuitikz}
\draw (0, 0) rectangle (2, 2);
\scoped [name=circle, animate = {
object=circle, :shift = { 0s = "{(1/5,1)}", 3s = "{(2,1)}", repeats }
}
] \fill[red] (0,0) circle (0.1);
\end{circuitikz}
\end{document}