在 foreach 中使用变量

在 foreach 中使用变量

我正在尝试在 foreach 循环中使用变量。这会让事情变得简单很多,因为我只需要更改一个值,多个循环就会受到影响。

像这样:

\begin{tikzpicture}[y=-1cm]
    
    \pgfmathsetmacro\end{2}

    \foreach \x in {0,...,\end}{
        %do something
    }


    \foreach \x in {1,...,\end}{
        %do something
    }

\end{tikzpicture}

问题是,当我使用这个时,我得到了很多与这个 tikZ 图像无关的错误。大部分都Something's wrong--perhaps a missing \item.像是有什么东西坏了。

非常感谢

答案1

您正在\end与指令相同的分组级别上进行重新定义\end{tikzpicture}。因此,当 TeX 看到时,\end{tikzpicture}它将遵循您的重新定义并将其替换为

2.0{tikzpicture}

你知道为什么你的选择并不好吗?

使用不同的名称,例如有很多\END。但实际上应该是

\pgfmathtruncatemacro{\END}{2}

否则您将得到2.0并且循环将使用浮点数。

例子:

\documentclass{article}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}
  \pgfmathtruncatemacro\END{2}
  \foreach \x in {0,...,\END}{
       \draw(\x,1)--(\x,0);
  }
\end{tikzpicture}

\end{document}

相关内容