在下面的程式碼中
\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
使用代替嵌套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
您可以使用保存箱安全地嵌套 tikz 圖片,並且座標將被記住。有效的方法[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}