如何在两个图形之间绘制指向特定位置的箭头

如何在两个图形之间绘制指向特定位置的箭头

我有两个并排的图形 (.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}

演示

相关内容