在 TikZ 中编辑具有许多节点的图形时(例如使用 tikzedt --http://www.tikzedt.org/),跟踪节点名称会变得很麻烦。因此,我希望在生成初步输出时在标签中显示它们的名称。
在阅读完文档并在互联网上搜索后,根据这篇文章,这是我得到的最接近的答案: 如何从 pgfkeys 样式元素中提取值
但我不知道如何引用当前节点的名称..
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[
% does work:
mystyle/.style={label={right:\pgfkeysvalueof{/pgf/minimum width}}}
% does not work:
% mystyle/.style={label={right:\pgfkeysvalueof{/pgf/name}}}
]
\node [mystyle, draw] (n1) {1};
\end{tikzpicture}
\end{document}
生成的输出显示在左下方,所需的输出显示在右下方:
我希望标签在样式中定义,而不是在每个单独节点的代码中定义,这样我就不需要为每个节点单独编辑代码。
提前谢谢您!
答案1
你想要这样的东西吗?
致谢阿莱南诺...
\documentclass[border=10pt,multi,tikz]{standalone}
\begin{document}
\begin{tikzpicture}[
mystyle/.style={%
label={right:\pgfkeysvalueof{/pgf/minimum width}},
},
my style/.style={%
append after command={% courtesy of Alenanno ref: https://tex.stackexchange.com/questions/287967/drawing-thin-line-around-a-multipart-tikz-shape#comment696552_287972
\pgfextra{\node [right] at (\tikzlastnode.mid east) {\tikzlastnode};}
},
},
]
\node (n1) [mystyle, draw] {1};
\node (n2) [my style, draw] at (0,1) {2};
\end{tikzpicture}
\end{document}
编辑
跟进percusse 的评论,你可以看到
\draw (0,0) -- (1,1) node (n2) [my style, draw] {2} -- (2,2) node (n3) [my style, draw]{2};
在定位节点方面做了需要做的事情......
但并非你所希望的那样......
答案2
这需要相当深奥的技巧,你可能不想参与其中。主要是因为名称不是设置为值,而是粗略地说是指向形状 ID 的指针。
相反,您可以使用自己的样式,这样您就可以跳过括号并同时设置名称和标签。完成后,您基本上可以删除标签部分。
\begin{tikzpicture}[mystyle/.style={name = #1, label={right:#1}}]
\node [mystyle=n1, draw] {1};
\end{tikzpicture}