我在增加 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}