TikZ:节点名称中的计算

TikZ:节点名称中的计算

我想在页面上放置可变数量的节点,但我还希望能够为这些节点指定一个(整数)名称。但是,我遇到了一个问题,即只有某些类型的命令才能出现在节点的标签中(请参阅这个问题)。

我为了实现自己的愿望而进行的天真的尝试是......

\documentclass{article}
\usepackage{tikz}
\def\n{3}
\begin{document}
\begin{tikzpicture}
 \node[draw, circle] (\n + 1) {4};
 \node[draw, circle] (\n + 2) [right of=4] {5};
\end{tikzpicture}
\end{document}

...但这会出现错误消息...

! Package pgf Error: No shape named 4 is known.

...因为节点的名称实际上是“3 + 1”(或接近于它的值)。

我发现了这个黑客...

\documentclass{article}
\usepackage{tikz}
\def\n{3}
\begin{document}
\begin{tikzpicture}
 \pgfmathtruncatemacro{\nPlusOne}{\n + 1}
 \node[draw, circle] (\nPlusOne) {4};
 \node[draw, circle] (\n + 2) [right of=4] {5};
\end{tikzpicture}
\end{document}

...其行为正确。但是,当调用也使用此 hack 的嵌套函数时,它们会\nPlusOne使用给定的 值进行重新定义\n

问题

将计算的整数分配给节点标签的更好方法是什么?

答案1

那么像这样的事情怎么样:

\documentclass{article}
\usepackage{tikz}
\newcounter{n}\setcounter{n}{3}
\addtocounter{n}{1}
\begin{document}
  \begin{tikzpicture}
     \node[draw, circle] (\arabic{n}){4};
     \addtocounter{n}{1}
     \node[draw, circle] (\arabic{n}) [right of=4] {5};
     \draw (4)--(5);
  \end{tikzpicture}
\end{document}

生产

在此处输入图片描述

相关内容