A sintaxe Pic do TikZ não funciona com nós de borda

A sintaxe Pic do TikZ não funciona com nós de borda

Eventualmente, eu gostaria de desenhar uma imagem dentro de um nó de uma imagem maior. Como o aninhamento tikzpictures não é recomendado, pensei que a picsintaxe fornecia uma alternativa conveniente.

No entanto, picnão parece funcionar como pensei quando há nós de borda: Na picimagem, o nó de borda está onde está o final do caminho, em vez de no meio.

Alguém pode explicar o que está acontecendo aqui e sugerir uma saída para isso?

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

insira a descrição da imagem aqui

Responder1

Infelizmente não tenho ideia do que está acontecendo, mas especificar a posopção para o nó de borda resolve o posicionamento:

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

insira a descrição da imagem aqui

informação relacionada