En el siguiente código
\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}
Intento dibujar una flecha hacia un punto específico correspondiente a \coordinate
"v" en un archivo \tikzpicture
.
Del resultado se desprende que \coordinate
"v" ha caminado.
¿Como arreglar?
Respuesta1
En lugar de anidar tikzpicture
s, utilice un 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}
Respuesta2
Puede utilizar cajas de guardado para anidar imágenes tikz de forma segura y se recordarán las coordenadas. La forma en [remember picture]
que funciona es guardar la ubicación de origen en el archivo auxiliar, por lo que debe ejecutar el código dos veces.
Cabe señalar que al colocar la imagen dentro de un nodo, la centra (predeterminado) en la ubicación del nodo (origen).
\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}
Respuesta3
Prueba \tikzstyle{cada imagen}+=[recordar imagen]
\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}