如何知道设置了 pgfkey 的节点的当前名称是什么

如何知道设置了 pgfkey 的节点的当前名称是什么

我想将信息传递给 pgfkey,该 pgfkey 必须生成一些相对于设置密钥的节点的代码。

在这个例子中,我想要访问节点 (a) 并将另一个节点放在 (a.north east)。 (**)是调用节点的坐标(a),但是我不想传递 (a),密钥必须自己猜测。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}

\begin{document}

\newlength{\MboxL}
\tikzset{/.search also={/tikz},
    title/.code={\node[red] at (**) {#1};},
}

\begin{tikzpicture}

\node[draw,title=Nounours] (a) {The} ;

\end{tikzpicture}

\end{document}

答案1

类似于这个答案?(我认为,不code应该使用append after command\pgfextra,因为否则当前节点就不会“完成”。)我想知道第 17.4 节,特别是这个node also技巧,是否对你有用。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}

\tikzset{
    title/.style = {
        append after command={
            \pgfextra{
                \node[red,anchor=south] at (\tikzlastnode.north east) (\tikzlastnode-outer) {#1};
            }
        }
    }
}

\begin{document}

\newlength{\MboxL}
\tikzset{/.search also={/tikz},
}

\begin{tikzpicture}

\node[draw,title=Nounours] (a) {The} ;

\node[draw] (b) at (5,0) {The} ;
\node also [label={[above,red,anchor=south west]:marmot}] (b);

\end{tikzpicture}

\end{document}

编辑:稍微清理了一下。

相关内容