意外的 tikz/counter 行为

意外的 tikz/counter 行为

我一直徒劳地尝试将foreach[counter=\xi] x in {1,2,3}tikz/pgf 中的语句与 LaTeX 结合使用。每次都失败。不管了。所以我继续尝试使用计数器,这肯定会奏效。这是一个意外失败的 MWE。

\documentclass{minimal}
\usepackage{tikz}
\begin{document}
\newcommand{\test}[1]{
\newcounter{i}
\setcounter{i}{0}
\foreach \x in #1
{
\draw (0,\i) -- (1,0);
\setcounter{i}{\i+1}
}
}

\begin{tikzpicture}
\test{{1,2,3}}
\end{tikzpicture}
\end{document}

这段代码,至少对我来说,产生了

替代文本

有人能解释一下原因吗?我该如何解决这个问题,或者我如何才能在 pdfLaTeX 编译时foreach[counter=\xi]不返回异常的情况下真正开始工作\inaccessible

答案1

检查计数器宏的使用。您可以使用\value{i}而不是 来访问其值,也可以使用或\i来增加它。另一方面,您可以直接使用。\stepcounter{i}\addtocounter{i}{1}\x

尝试例如:

\setcounter{i}{0}
\foreach \x in #1
{
\draw (0,\value{i}) -- (1,0);
\stepcounter{i}
}

替代文本

如果没有额外的计数器,那么它只是:

\foreach \x in #1
{
\draw (0,\x) -- (1,0);
}

答案2

您使用的是哪个版本的 TikZ?count(not counter) 选项是在 2.10 版中引入的(抱歉,我没有将此信息添加到我对您的其他问题的回答中)。如果您使用的是 TeX Live 2010,那么一个简单的tlmgr update --all命令(除其他命令外)将 TikZ 更新到当前版本。

相关内容