
Debería haber una forma recomendada/estándar/habitual de hacer (lo que sugiere) lo siguiente:
\begin{tikzpicture}
\node (tikzpicture0) at (0pt,100pt) []{
\begin{tikzpicture}
\ABSOLUTE-AND-CONTEXT-AWARE-node (node00) at (0pt,0pt) []{(0pt,0pt)};
\node (node01) at (0pt,10pt)[]{(0pt,10pt)};
\end{tikzpicture}
};
\node (tikzpicture1) at (100pt,200pt) []{
\begin{tikzpicture}
\node (node10) at (0pt,0pt) []{(0pt,0pt)};
\node (node11) at (0pt,10pt)[]{(0pt,10pt)};
\end{tikzpicture}
};
\node (tikzpicture2) at (200pt,300pt) []{
\begin{tikzpicture}
\node (node20) at (0pt,0pt) []{(0pt,0pt)};
\node (node21) at (0pt,10pt)[]{(0pt,10pt)};
\end{tikzpicture}
};
\draw[->] (node00)--($(node10)+(100pt,200pt)$);
\end{tikzpicture}
donde se supone que ABSOLUTO significa que se puede hacer referencia a (nodo00) fuera de la imagen tikz en la que se definió, y se supone que AND-CONTEXT-AWARE significa que la coordenada (0pt,100pt) de la imagen tikz circundante se agrega a la coordenada del nodo (0 puntos, 0 puntos).
Por supuesto, el código
\begin{tikzpicture}
\node (tikzpicture0) at (0pt,100pt) []{
\begin{tikzpicture}
\node (node00) at (0pt,0pt) []{(0pt,0pt)};
\node (node01) at (0pt,10pt)[]{(0pt,10pt)};
\end{tikzpicture}
};
\node (tikzpicture1) at (100pt,200pt) []{
\begin{tikzpicture}
\node (node10) at (0pt,0pt) []{(0pt,0pt)};
\node (node11) at (0pt,10pt)[]{(0pt,10pt)};
\end{tikzpicture}
};
\node (tikzpicture2) at (200pt,300pt) []{
\begin{tikzpicture}
\node (node20) at (0pt,0pt) []{(0pt,0pt)};
\node (node21) at (0pt,10pt)[]{(0pt,10pt)};
\end{tikzpicture}
};
\draw[->] (node00)--($(node10)+(100pt,200pt)$);
\end{tikzpicture}
rendimientos
mientras que la ilustración deseada debe verse como la ilustración (coordenada-obtenida-codificada)
¿Qué me recomienda?
Respuesta1
El consejo general es no utilizar tikzpicture
mensajes anidados. Puedes hacer lo mismo usando scope
en su lugar. En el código siguiente agregué algunos nombres a sus nodos, solo para diferenciarlos. La flecha al final de su código no coincide con la flecha en su imagen codificada ya que su punto final se deriva de node10
y no node01
. Agregué uno en rojo usando node01
en su lugar.
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\node (node00) at (0pt,0pt) []{N00:(0pt,0pt)};
\node (node01) at (0pt,10pt)[]{N01:(0pt,10pt)};
\begin{scope}[shift={(100pt,200pt)}]
\node (node10) at (0pt,0pt) []{N10:(0pt,0pt)};
\node (node11) at (0pt,10pt)[]{N11:(0pt,10pt)};
\end{scope}
\begin{scope}[shift={(200pt,300pt)}]
\node (node20) at (0pt,0pt) []{N20:(0pt,0pt)};
\node (node21) at (0pt,10pt)[]{N21:(0pt,10pt)};
\end{scope}
\draw[->] (node00)--($(node10)+(100pt,200pt)$) node[anchor=west]{(N10)+(100pt,200pt)};
\draw[red,->] (node00)--($(node01)+(100pt,200pt)$);
\end{tikzpicture}
\end{document}
Respuesta2
Si entiendo esto correctamente, hay un problema con su concepto. Echemos un vistazo al siguiente caso:
\begin{tikzpicture}
\node at (10,10) {This was 10, 10};
\node at (15,15) {This was 15, 15};
\draw (current bounding box.south west) rectangle (current bounding box.north east);
\end{tikzpicture}
Esto nos dará
Un par de cosas a tener en cuenta: el cuadro resultante no tiene un tamaño de 15x15 aunque tiene la mayor distancia al origen. Y tampoco tiene 5x5 debido a la longitud del texto.
Por lo tanto, no será posible encontrar dónde están los nodos en relación absoluta con el lienzo final a menos que arregle el cuadro delimitador de antemano. La solución restante sería piratear la ubicación del nodo e incluir los valores actuales del cuadro delimitador y el tamaño propio y actualizar todo en consecuencia. Incluso entonces, si coloco algo en (-2,-2)
este momento, todos los valores de los nodos deben actualizarse porque el cuadro delimitador ahora de repente se vuelve 17ish x 17ish. Por lo tanto, la colocación de los nodos debe retrasarse hasta que se escriba la imagen completa. Y ni siquiera hemos tocado las transformaciones como el escalado y las traducciones.
Por lo tanto, mi opinión es que esto no funcionará con manipulaciones sencillas. Reitero el mantra general: no anidar imágenes de TikZ. Siempre hay otra manera.
Su problema real (cualquiera que sea) que motivó esta dirección probablemente podría resolverse con las respuestas de¿Se pueden exportar las coordenadas tikz a un archivo de texto?con una solución de dos pasos.