Im folgenden Code
\documentclass{article}
\thispagestyle{empty}
\usepackage{graphicx}
\usepackage{tikz}
\begin{document}
\begin{figure}
\begin{tikzpicture}
\node(inset) {
\begin{tikzpicture}
\coordinate(v) at (3, 4);
\node(t) at (v){v};
\draw[->] (1,2) -- (v);
\end{tikzpicture}
};
\node(t2)[blue] at (v){v};
\draw[->, red](5, -2) -- (v);
\end{tikzpicture}
\end{figure}
\end{document}
Ich versuche, einen Pfeil zu einem bestimmten Punkt zu zeichnen, der \coordinate
„v“ in einem verschachtelten entspricht \tikzpicture
.
Aus dem Ergebnis geht hervor, dass \coordinate
„v“ gegangen ist.
Wie repariert man?
Antwort1
Anstelle der Verschachtelung tikzpicture
von s verwenden Sie ein local bounding box
.
\documentclass{article}
\thispagestyle{empty}
\usepackage{tikz}
\usetikzlibrary{fit}
\begin{document}
\begin{figure}
\begin{tikzpicture}
\begin{scope}[local bounding box=inset]
\coordinate(v) at (3, 4);
\node(t) at (v){v};
\draw[->] (1,2) -- (v);
\end{scope}
\node(t2)[blue] at (v){v};
\draw[->, red](5, -2) -- (v);
\draw [red] (inset.east) -- (inset.west);
\end{tikzpicture}
\end{figure}
\end{document}
Antwort2
Sie können Saveboxen verwenden, um Tikzpictures sicher zu verschachteln, und die Koordinaten werden gespeichert. Die Methode [remember picture]
funktioniert so, dass der Ursprungsort in der Aux-Datei gespeichert wird, sodass Sie den Code zweimal ausführen müssen.
Es ist zu beachten, dass Sie das Bild durch Platzieren innerhalb eines Knotens an der Knotenposition (Ursprung) zentrieren (Standard).
\documentclass{article}
\thispagestyle{empty}
\usepackage{graphicx}
\usepackage{tikz}
\begin{document}
\begin{figure}
\sbox0{\begin{tikzpicture}[remember picture]
\coordinate(v) at (3, 4);
\node(t) at (v){v};
\draw[->] (1,2) -- (v);
\end{tikzpicture}
}
\begin{tikzpicture}[remember picture]
\node(inset) {\usebox0};
\node(t2)[blue] at (v){v};
\draw[->, red](5, -2) -- (v);
\end{tikzpicture}
\end{figure}
\end{document}
Antwort3
Versuchen Sie \tikzstyle{jedes Bild}+=[Bild merken]
\documentclass{article}
\thispagestyle{empty}
\usepackage{tikz}
\begin{document}
\tikzstyle{every picture}+=[remember picture]
\begin{tikzpicture}
\node(inset) {
\begin{tikzpicture}[remember picture]
\coordinate(v) at (3, 4);
\node(t) at (v){v};
\draw[->] (1,2) -- (v);
\end{tikzpicture}
};
\node(t2)[blue] at (v){v};
\draw[->, red](5, -2) -- (v);
\end{tikzpicture}
\end{document}