为什么 Tikz 忽略我的变量增量?

为什么 Tikz 忽略我的变量增量?

我对一个简单的问题束手无策(我刚刚学习 Tikz)。我试图使用 tikzmath 来增加一个变量。但是,每次执行循环时,我的代码的输出都是 1。以下是最小示例(我使用的是 TexLive 2015 和 Tikz 3.0.0):

    \documentclass[]{article}
    \usepackage{tikz}
    \usetikzlibrary{math,calc}

    \begin{document}

    \begin{tikzpicture}

    \tikzmath{
       int \y;
       \y = 0;
     }
    \foreach \k in {1,2,...,88}{
    \tikzmath{
    \y=\y+1;
     }
    print {$y=\y$};
    }
    \end{tikzpicture}

    \end{document}

答案1

显然,\foreach循环不能与 tikzmath 一起使用,(至少到目前为止我还没有找到方法。但for可以在命令内部使用循环tikzmath

\documentclass[]{article}
\usepackage{tikz}
\usetikzlibrary{math,calc}
\begin{document}

\begin{tikzpicture}
  \tikzmath{
    int \y;
    int \x;
    \y = 0;
    for \x in {1,2,...,88}{%
      \y=\y+1;
      print {$y=\y$};
    };
  };
\end{tikzpicture}




\end{document}

答案2

也许这只是因为这是一个 MWE,但你似乎并没有真正使用蒂克兹所以我建议你使用pgffor 包,它是 pgf/tikz 的子集。

其次,还有一种更“tikz-ish”的方式来实现这一点,因为它\foreach采用了一个可选count参数,可以完全按照你的要求执行操作。

经过这两项更改后,MWE 如下:

\documentclass[]{article}
\usepackage{pgffor}

\begin{document}\noindent
    \foreach \k [count=\y] in {10,...,29}{%
         $y=\y (k=\k)$
    }
\end{document}

输出结果如下:

enter image description here

相关内容