circuitikz 与 tikzpicture:为动画生成多页独立文档

circuitikz 与 tikzpicture:为动画生成多页独立文档

这是我前段时间发现的一个问题,但一直没能弄清楚。也许是我的发行版出了问题,但我不知道该如何解决。以下是想法

考虑这个脚本

\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 相同,使用animationsTikZ/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}

相关内容