なぜ \pgfmathtruncatemacro はラベルになれないのでしょうか?

なぜ \pgfmathtruncatemacro はラベルになれないのでしょうか?

pgfmath を使用してモジュラー値を計算しようとしています。ただし、この値をノードのラベルとして指定しようとすると、コンパイルされません。

次のコードは失敗します:

\documentclass{article}

\usepackage{tikz}

\begin{document}

\begin{tikzpicture}

    \pgfmathsetmacro{\N}{5}

    \foreach \x in {0,...,\N}
    {
        \pgfmathtruncatemacro{\next}{Mod(\x+1,\N)}
        \node at (\next,0) {\next};
%        \node at (\next,0) {\x};
    }

\end{tikzpicture}

\end{document}

「Missing } insert. } l.16 }」というエラーが発生します。16 行目は「}」がある行です。

「\node」の行をコメントアウトされた行に置き換えたコードはコンパイルされます (例として)。何が間違っているのか、どうすれば修正できるのか説明していただけませんか?

私は、この答えしかし、数式モードは役に立たないようです。

ありがとう!

答え1

は特別なので使用しないでください\next。カーネル全体で使用され、再定義される可能性があり、問題が発生します。代わりに、 のようなより説明的な名前を使用してください\nextnode

答え2

TiがZプロセスはノードで使用されます

\let\next=

{コード内の開始グループ文字を吸収する

\node at (\next,0) {\next};

したがって、Ti\nextまでMod(\x+1,\N)Z がノードに入ります。

\nextそれが座標で使用できる理由です

\node at (\next,0) {\x};

ただし、ノードでは使用できません。

関連情報