tikzmath 루프에서 변수를 사용할 수 없는 이유는 무엇입니까?

tikzmath 루프에서 변수를 사용할 수 없는 이유는 무엇입니까?

다음 코드를 사용하여 원 배치를 그리려고 합니다. 하지만 원하는 피규어를 만드는데 실패했어요. 그리고 이라는 오류가 발생했습니다 undefined control sequence. argument 0,...,\NY. 하지만 내가 \NY. 4잘 작동한다. 에서 \NY를 사용할 수 없는 이유는 무엇입니까 {0,...,\NY}?

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric,arrows}
\usetikzlibrary{math}
\usetikzlibrary{positioning,calc}

\begin{document}
\begin{tikzpicture}
  \tikzmath{
    \VX = 30;
    \VY = 30;
    int \NX = 6;
    int \NY = 4;
    int \nix; int \niy;
    \OX = 0; \OY = 0;
    for \niy in {0,...,\NY}{%
      for \nix in {0,...,6}{%
        {\node [circle, draw = red, minimum size = \VX pt] at (\nix*\VX pt,\niy*\VY pt) {};};
      };
    };
  };
\end{tikzpicture}
\end{document}

답변1

같은 것들

int \NY = 4;

허락되지 않는다. 사용

int \NY; \NY = 4;

대신 MWE가 작동합니다.

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric,arrows}
\usetikzlibrary{math}
\usetikzlibrary{positioning,calc}

\begin{document}
\begin{tikzpicture}
  \tikzmath{
    \VX = 30;
    \VY = 30;
    int \NX; \NX = 6;
    int \NY; \NY = 4;
    int \nix; int \niy;
    \OX = 0; \OY = 0;
    for \niy in {0,...,\NY}{%
      for \nix in {0,...,\NX}{%
        {\node [circle, draw = red, minimum size = \VX pt] at (\nix*\VX pt,\niy*\VY pt) {};};
      };
    };
  };
\end{tikzpicture}
\end{document} 

여기에 이미지 설명을 입력하세요

답변2

또는 프리앰블에서 사용할 수도 \newcommand\NX{6} \newcommand\NY{4}있고 루프에서도 사용할 수도 있습니다.

여기에 이미지 설명을 입력하세요

MWE:

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric,arrows}
\usetikzlibrary{math}
\usetikzlibrary{positioning,calc}
\newcommand\NX{6}
\newcommand\NY{4}
\begin{document}
\begin{tikzpicture}
  \tikzmath{
    \VX = 30;
    \VY = 30;
    int \nix; int \niy;
    \OX = 0; \OY = 0;
    for \niy in {0,...,\NY}{%
      for \nix in {0,...,\NX}{%
        {\node [circle, draw = red, minimum size = \VX pt] at (\nix*\VX pt,\niy*\VY pt) {};};
      };
    };
  };
\end{tikzpicture}
\end{document}

관련 정보