TikZ 的图片语法不适用于边缘节点

TikZ 的图片语法不适用于边缘节点

最后,我想在更大图片的节点内绘制图片。由于tikzpicture不建议嵌套,我认为该pic语法提供了一种方便的替代方法。

但是,pic当存在边缘节点时,它似乎不像我想象的那样工作:在图中pic,边缘节点位于路径的末端,而不是中间。

有人能解释一下这里发生了什么并提出解决办法吗?

\documentclass{article}
\usepackage{tikz}

\begin{document}

\tikzset{test/.pic={
        \node (a) at (0,0) {a};
        \node (b) at (3,0) {b};
        \draw (a)--node{edge node} (b);
    }
}
\begin{tikzpicture}
\pic {test};
\end{tikzpicture}


\begin{tikzpicture}
\node (a) at (0,0) {a};
\node (b) at (3,0) {b};
\draw (a)--node{edge node} (b);
\end{tikzpicture}

\end{document}

在此处输入图片描述

答案1

不幸的是,我不知道发生了什么,但指定pos边缘节点的选项可以解决放置问题:

\documentclass{article}
\usepackage{tikz}

\begin{document}

\tikzset{test/.pic={
        \node (a) at (0,0) {a};
        \node (b) at (3,0) {b};
        \draw (a)--node[pos=0.5]{edge node} (b);
    }
}
\begin{tikzpicture}
\pic {test};
\end{tikzpicture}


\begin{tikzpicture}
\node (a) at (0,0) {a};
\node (b) at (3,0) {b};
\draw (a)--node{edge node} (b);
\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容