TikZ の Pic 構文はエッジノードでは機能しません

TikZ の Pic 構文はエッジノードでは機能しません

最終的には、より大きな画像のノード内に画像を描画したいと思います。 s のネストは推奨されていないため、この構文が便利な代替手段になる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}

ここに画像の説明を入力してください

関連情報