为 Beamer Slides 一步步绘制 TikZ 图片

为 Beamer Slides 一步步绘制 TikZ 图片

我想为beamer幻灯片一点一点地揭示/绘制一幅图画。我想象在循环\only内使用\foreach应该可行,例如:

\documentclass{beamer}
\usepackage{tikz}

\begin{document}
  \begin{frame}
    \begin{tikzpicture}[every node/.style={draw,circle}]
      \node (n0) {$0$};
      \foreach \i [evaluate=\i as \j using \i-1] in {1,...,3} {%
        \only<\i->{%
          \node[right of=n\j] (n\i) {$\i$};
        }
      }
    \end{tikzpicture}
  \end{frame}
\end{document}

不幸的是,出现了两个问题。

  • 节点名称出了问题;我收到以下形式的错误

    Package pgf Error: No shape named n0.0 is known.
    
  • \j当在的参数中使用时\only,我收到数百个错误和页面。

这里发生了什么?

答案1

显然,evaluate不会产生整数,而是浮点数(错误消息暗示了这一点)。使用

\def\j{\the\numexpr\i-1\relax}

而是(当然是在循环内部)\j以所需的方式计算并解决两个问题。

PGF 有一些宏可以使其变得更好;

\pgfmathtruncatemacro{\j}{\i-1}

有同样的效果。

然而,最优雅的方式是由克劳迪奥·菲安德里诺

\foreach \i [evaluate=\i as \j using int(\i-1)]

相关内容