我有一个跨越双列文档中两列的图形。
下面给出了一个最小代码示例。
\documentclass[twocolumn]{article}
\usepackage{lipsum}
\usepackage{graphicx}
\usepackage{stfloats}
\usepackage[caption=false,font=footnotesize]{subfig}
\begin{document}
\begin{figure*}[b!]
\centering
\subfloat[Box A]{\label{f_a}\includegraphics[height=3cm]{example-image-a.png}}
\hspace{1pt}
\subfloat[Box B]{\label{f_b}\includegraphics[height=3cm]{example-image-b.png}}
\hspace{1pt}
\subfloat[Box C]{\label{f_c}\includegraphics[height=3cm]{example-image-c.png}}
\label{myfig}
\caption{Three boxes}
\end{figure*}
\lipsum
\end{document}
我想从一张图片到另一张图片画一个箭头,而不影响图形编号或标题。
如何达到预期结果?
答案1
要将 tikz 元素与图像相结合,必须将其与坐标系叠加。复制自“使用 TikZ 在图像上绘图”:
\begin{tikzpicture}
\node[anchor=south west,inner sep=0] (image) {\includegraphics{... name of image ...}};
\begin{scope}[x={(image.south west)},y={(image.north east)}]
... tikz code, with (0,0) = south west and (1,1) = north east ...
\end{scope}
\end{tikzpicture}
要使用跨tikzpicture
s 的位置,必须使用remember picture
选项。此外,overlay
对于连接图像的元素,该选项是必需的;否则它们会占用空间并影响布局。下面是一个包含两张图片和一个连接箭头的示例(我将其放入单独的图片中)。
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[remember picture]
\node[anchor=south west,inner sep=0] (imageA) {\includegraphics[height=2cm]{example-image-a.png}};
\begin{scope}[x={(imageA.south west)},y={(imageA.north east)}]
\node[coordinate] (A) at (0.9,0.9) {};
\end{scope}
\end{tikzpicture}
\begin{tikzpicture}[remember picture]
\node[anchor=south west,inner sep=0] (imageB) {\includegraphics[height=2cm]{example-image-b.png}};
\begin{scope}[x={(imageB.south west)},y={(imageB.north east)}]
\node[coordinate] (B) at (0.3,0.3) {};
\end{scope}
\end{tikzpicture}
\begin{tikzpicture}[remember picture,overlay]
\draw[->] (A) -- (B);
\end{tikzpicture}
\end{document}