TikZ:节点名称中的变量算术结果

TikZ:节点名称中的变量算术结果

我在增加 TikZ 中的变量然后将结果用作节点名称的一部分时遇到了麻烦:

\def\x{2}
\begin{figure}[H]
\begin{tikzpicture}
\pgfmathsetmacro{\xplusone}{add(\x,1)}
\node (X\xplusone1) at (0,0) {};
\path (1, 1) edge (X\xplusone1);
\end{tikzpicture}
\end{figure}

似乎将最后一行解析为“X3”而不是“X31”。

答案1

\pgfmathsetmacro即使您只使用整数,也始终会将其结果保存为小数。这会使 TikZ 感到困惑,因为它假设句点将节点名称与锚点分隔开。您应该改用\pgfmathtruncatemacro,这将丢弃小数位:

\documentclass{article}
\usepackage{tikz}

\begin{document}

\def\x{2}
\begin{tikzpicture}
\pgfmathtruncatemacro{\xplusone}{\x + 1}
\node (X\xplusone1) at (0,0) {};
\path (1, 1) edge (X\xplusone1);
\end{tikzpicture}

\end{document}

相关内容