TikZ 的 Pic 語法不適用於邊緣節點

TikZ 的 Pic 語法不適用於邊緣節點

最終,我想在更大的圖片的節點內畫一張圖片。由於不建議嵌套tikzpictures,我認為該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}

在此輸入影像描述

相關內容