我有两个并排的图形 (.pdf),我想从右边的图形向左边的图形画一个箭头,箭头的末端在左图中的特定位置。以下是 MWE:
\documentclass{scrartcl}
\usepackage{tikz}
\begin{document}
\begin{figure}[htbp]
\tikz[remember picture]{\node(figleft){\framebox{\parbox[c][3cm]{0.4\textwidth}{\hspace{3.5cm}\raisebox{2cm}{Figure 1}}}};}%
\hfill
\raisebox{10mm}{\tikz[remember picture]{\node(figright){\framebox[0.4\textwidth]{Figure 2}};}}%
\tikz[overlay, remember picture]{\draw[thick, stealth-] (figleft-|figleft.north) -- (figright-|figright.west);}
\end{figure}
\end{document}
箭头应该在图 1 中的特定位置结束(例如,出现文本“图 1”的位置)。我想我需要以某种方式指定节点的位置figleft
。一个粗略的想法是将节点放置在“图 1”的位置,然后将箭头绘制到该位置。我尝试过,\tikz[remember picture]{\node at (-1cm,3cm) (anchor) {Anchor};}
但位置(-1cm, 3cm)
似乎没有得到尊重。
答案1
\framebox
当 可以实现几乎完全相同的功能时,将其放入节点中似乎有些奇怪[draw]
。唯一的区别是[inner sep]
vs。\fboxsep
也(figleft-|figleft.north)
等同于简单的(figleft.north)
等。
更重要的是,\raisebox
通过降低基线来抬高文本。所以[baseline=-10mm]
相当于\rasiebox{10mm){...}
。同样,图 1 在 上方 2cm (figleft.base)
。
\documentclass{scrartcl}
\usepackage{tikz}
\begin{document}
\begin{figure}[htbp]
\tikz[remember picture]{\node[draw,minimum height=3cm,minimum width=0.4\textwidth](figleft){\hspace{3.5cm}\raisebox{2cm}{Figure 1}};}%
\hfill
\tikz[remember picture, baseline=-10mm]{\node[draw,minimum width=0.4\textwidth,anchor=south](figright){Figure 2};}
\tikz[overlay, remember picture]{\draw[thick, stealth-] (figleft.base east) ++ (0,2) -- (figright.west);}
\end{figure}
\end{document}