다음 코드에서
\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}
\coordinate
중첩된 "v" 에 해당하는 특정 지점에 화살표를 그리려고 합니다 \tikzpicture
.
\coordinate
결과를 보면 "v"가 걸은 것으로 보입니다 .
어떻게 고치는 지?
답변1
tikzpicture
s를 중첩하는 대신 a를 사용하세요 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}
답변2
저장 상자를 사용하여 tikzpicture를 안전하게 중첩할 수 있으며 좌표가 기억됩니다. 작동 방식은 [remember picture]
원점 위치를 aux 파일에 저장하는 것이므로 코드를 두 번 실행해야 합니다.
노드 내부에 그림을 배치하면 그림의 중심이 노드 위치(원점)에 맞춰집니다(기본값).
\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}
답변3
\tikzstyle{모든 사진}+=[사진 기억]을 시도해 보세요.
\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}