在节点文本括号内访问节点名称

在节点文本括号内访问节点名称

我希望将其写$\n$为节点文本,其中\n包含节点的名称。

工作示例:

\documentclass{standalone}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
 [node distance=2em]
\node (0) {0};
\node (h) [above of=0] {};
\node (a) [left of=h] {$a$};
\node (b) [right of=h] {$b$};
\draw (0) -- (a);
\draw (0) -- (b);
\end{tikzpicture}
\end{document}

理想情况下,我希望将节点的描述写a

\node (a) [left of=h] {$\n$};

这样我就可以忘记文本(但仍然保留它们在数学模式中)。

答案1

TikZ 3.0可以使用node contentsname选项:

\documentclass{standalone}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}[node distance=2em,
      mathnode/.style={name=#1, node contents=$#1$}]
\node (0) {0};
\node (h) [above of=0] {};
\node [mathnode=a, left of=h];
\node [mathnode=b, right of=h];
\draw (0) -- (a);
\draw (0) -- (b);
\end{tikzpicture}
\end{document}

在此处输入图片描述

注意:如果以后不需要它,可以避免使用节点h

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning}

\begin{document}
\begin{tikzpicture}
 [node distance=2em,
mathnode/.style={name=#1, node contents=$#1$}]
\node (0) {0};
\node [mathnode=a, above left= of 0];
\node [mathnode=b, above right = of 0];
\draw (0) -- (a);
\draw (0) -- (b);
\end{tikzpicture}
\end{document}

相关内容