在 tikzpicture 中使用 \onslide 计数器

在 tikzpicture 中使用 \onslide 计数器

我正在尝试在环境中使用计数器tikzpicture。计数器需要跟踪幻灯片从需要显示图片时开始的情况;这样,就可以轻松添加或删除一行。

    \documentclass{beamer}

    \usepackage{tikz}

    \begin{document}

    \newcounter{test}
    \addtocounter{test}{1}
    \begin{frame}
    \begin{tikzpicture}
    \onslide<\arabic{test}->{\draw (0,0)--(1,1);}
    \addtocountour{test}{1};
    \onslide<\arabic{test}->{\draw (1,1)--(2,0);}
    \addtocounter{test}{1};
    \onslide<\arabic{test}->{\draw (2,0)--(3,1);}
    \end{tikzpicture}
    \end{frame}

    \end{document}

答案1

您的代码存在一些问题:第一个拼写错误\addtocounter,写成了\addtocountour;此外,正如在Andrew Stacey 的帖子,如果您想使用覆盖规范内的计数器值(例如)\onslide<...>,您应该使用\value(而不是\arabic像您那样)。

然而,似乎使用\onslide<\value{...}> tikzpicture环境中会产生错误。我不确定为什么;其他贡献者可能会提出意见并提供比我的更完整的答案。

与此同时,这里有一个解决方法;它使用 PGF 整数(用命令定义\pgfmathtruncatemacro)而不是计数器,但会产生预期的输出:

在此处输入图片描述

\documentclass{beamer}

\usepackage{tikz}

\begin{document}

\pgfmathtruncatemacro\test{1}
\begin{frame}
    \begin{tikzpicture}
    \onslide<\test->{\draw (0,0)--(1,1);}
    \pgfmathtruncatemacro\test{\test+1}
    \onslide<\test->{\draw (1,1)--(2,0);}
    \pgfmathtruncatemacro\test{\test+1}
    \onslide<\test->{\draw (2,0)--(3,1);}
    \end{tikzpicture}
\end{frame}

\end{document}

相关内容