La sintaxis de imágenes de TikZ no funciona con nodos de borde

La sintaxis de imágenes de TikZ no funciona con nodos de borde

Con el tiempo, me gustaría hacer un dibujo dentro de un nodo de una imagen más grande. Dado que no se recomienda anidar tikzpictures, pensé que la picsintaxis proporcionaba una alternativa conveniente.

Sin embargo, picno parece funcionar como pensaba cuando hay nodos de borde: en la picimagen, el nodo de borde está donde está el final del camino en lugar de estar en el medio.

¿Alguien puede explicar qué está pasando aquí y sugerir una salida a esto?

\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}

ingrese la descripción de la imagen aquí

Respuesta1

Desafortunadamente, no tengo idea de lo que está pasando, pero especificar la posopción para el nodo de borde resuelve la ubicación:

\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}

ingrese la descripción de la imagen aquí

información relacionada