在图中添加指向子图的箭头

在图中添加指向子图的箭头

我正在使用双列格式工作,并且有一个包含多个子图的图形。我想要做的是在子图外创建箭头,指向每个子图内的特定内容。我在下面附上了一张草图,可以更好地解释我想要做的事情。

在 LaTeX 中可以实现这样的构造吗?我总是可以通过在 Photoshop 中编辑箭头然后将其作为一个组合图形上传到 Tex 来实现这一点,但如果可能的话,我会尽量避免这样做。

在此处输入图片描述

答案1

这是使用该库的一个例子tikzmark

(1)\tikzmark{<unique name>}在每个(子)图像后添加。

(2)在标记之间画箭头,xy在箭头的起点和终点处添加适当的偏移。原点位于右下角。

tikzmark库使用pic坐标系,因此使用 来调用标记pic cs: name。例如 (pic cs:a)

该库calc 允许符号+(< xshift >, < yshift >)引用原点的某个点。

A

\documentclass{article}
\usepackage{multicol}

\usepackage{tikz}
\usetikzlibrary{calc,tikzmark} % needed <<<<<<<<<<

\usepackage{kantlipsum}% ONLY dumy text


\begin{document}
\begin{multicols*}{2}
    1.  \kant[1]
    
    \begin{center}
        \includegraphics[width=0.5\columnwidth]{example-image-a}\tikzmark{a}
                
        \includegraphics[width=0.5\columnwidth]{example-image-b}\tikzmark{b}
            
        \includegraphics[width=0.5\columnwidth]{example-image-c}\tikzmark{c}
    \end{center}
    
    \begin{tikzpicture}[overlay,remember picture]
        \draw[arrows=->,black,ultra thick]  ( $ (pic cs:b) +(6mm,20mm) $ ) --   ( $ (pic cs:a) +(-10mm,10mm) $ );
        \draw[arrows=->,red,ultra  thick]   ( $ (pic cs:b) +(6mm,8mm) $ ) --    ( $ (pic cs:b) +(-10mm,5mm) $ );
        \draw[arrows=->,black,ultra thick]  ( $ (pic cs:b) +(6mm,8mm) $ ) --    ( $ (pic cs:a) +(-10mm,5mm) $ );
        \draw[arrows=->,blue,ultra thick]   ( $ (pic cs:b) +(6mm,4mm) $ ) --    ( $ (pic cs:c) +(-26mm,9mm) $ );
        
        \draw ( $ (pic cs:c) +(0mm,0mm) $ ) circle[radius=5pt]; % show the origin
        \node[anchor=north] at ( $ (pic cs:c) +(-1ex,-1ex) $ ){Origin of mark c};% show the origin
    \end{tikzpicture}
    
    2.  \kant[2-4]
\end{multicols*}

\end{document}

相关内容