Tikz 动画永不停止编译

Tikz 动画永不停止编译

为什么这个 MWE 永远不会停止编译并生成大量的 pdf 页面?

\documentclass[french,xcolor=dvipsnames,9pt]{beamer}
\usepackage{tikz}
\usetheme{Warsaw}\usecolortheme{wolverine}

\setbeamersize{text margin left=.4cm}
\setbeamersize{text margin right=.4cm}

\newcommand{\Rect}[2][blue]{%
    \begin{scope}[#2]
        \draw[draw=#1,fill=#1!25,join=round]
            (0,0) -- (2,0) -- (0,1) -- cycle ;
        \filldraw[#1] (0,0) rectangle (.2,.2) ; 
    \end{scope}
    }

\begin{document}

\begin{frame}
\begin{center}

\begin{tikzpicture}

\only<1->{\Rect{}}

\foreach \i [evaluate=\i as \j using \i+2] in {1,...,2} {%
    \only<\j>{
    \begin{scope}[shift={(3*\i/20,0)}]
        \Rect{}
    \end{scope}
    }
    }


\end{tikzpicture}
\end{center}
\end{frame}
\end{document}

答案1

我没有检查,但可能发生的情况是\only宏的参数与帧计数器值进行比较,并且由于 TikZ 算术\i+2返回小数点,因此3.0这种比较永远不会得到满足。因此,您需要将结果转换为整数以使其成为3。所以

\foreach \i [evaluate=\i as \j using int(\i+2)] in {1,...,2} {%

可以。

相关内容