
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};
ただし、ノードでは使用できません。