Die Bildsyntax von TikZ funktioniert nicht mit Randknoten

Die Bildsyntax von TikZ funktioniert nicht mit Randknoten

Schließlich möchte ich ein Bild innerhalb eines Knotens eines größeren Bildes zeichnen. Da das Verschachteln tikzpicturevon s nicht empfohlen wird, dachte ich, dass die picSyntax eine praktische Alternative bietet.

Allerdings picscheint es bei Randknoten nicht so zu funktionieren wie gedacht: Im picBild liegt der Randknoten dort, wo der Pfad endet und nicht dazwischen.

Kann jemand erklären, was hier los ist, und einen Ausweg vorschlagen?

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

Bildbeschreibung hier eingeben

Antwort1

Leider habe ich keine Ahnung, was los ist, aber die Angabe der posOption für den Randknoten löst das Platzierungsproblem:

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

Bildbeschreibung hier eingeben

verwandte Informationen