我正在尝试在环境中使用计数器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}