我拼命想制作一个宏,让我可以简单地在图形上添加一个带圆圈的数字和连接器。为此,我尝试在 overpic 的命令 \put 中使用 tikz 函数来完成这项工作。我实际上得到了一个带圆圈的数字和一个连接器,但似乎 tikz 绘图框的左下角在 overpic 包的 \put{} 中给定值的位置上有一个正偏移。在这里,为了使偏移明显,我希望将连接器置于 (0,0)。
此外,此偏移量对图片比例敏感。这就是为什么我在下面的虚拟代码中以两张不同大小的图片作为示例的原因。
此外,如果图例连接器能够与图形尺寸保持比例,那就更好了。
实际上我梦想的宏是:指定连接器尖端的坐标、连接器角度、连接器长度(例如图片宽度的百分比)和文本(这里是一个带圆圈的数字)。
如果有专门的软件包可以做到这一点就更好了。我无法想象我是唯一一个想这样做的人……
有人可能会建议直接在 tikz 中完成所有操作。但由于我已经使用 overpic 处理其他图形,如果我可以避免更改所有内容,那就太好了。
提前非常感谢您!!
我把虚拟代码放在这里,您可以使用任何图形来测试它。
% !TEX TS-program = pdflatex
\documentclass[10pt]{article}
\usepackage{graphicx}
\usepackage{caption}
\DeclareGraphicsRule{.tif}{png}{.png}{`convert #1 `dirname #1`/`basename #1 .tif`.png}
%% Concerned packages:
\usepackage[percent]{overpic}
\usepackage{tikz}
%%
\title{Title}
\author{Name}
\begin{document}
\maketitle
\begin{figure}[htbp]
\centering
\begin{overpic}[width=1\columnwidth,grid,tics=5]{example-image-a} %,grid,tics=5
\put(0,0){
\begin{tikzpicture}
\path (0,0) node (x) {}
(0.5,0.5) node[circle,draw](y){1};
\draw[black] (x) -- (y);
\end{tikzpicture}}
\end{overpic};
\caption{Picture with the legend added with the overpic and tikz package.}
\label{fig:mouse}
\end{figure}
\begin{figure}[htbp]
\centering
\begin{overpic}[width=0.7\columnwidth,grid,tics=5]{example-image-a} %,grid,tics=5
\put(0,0){
\begin{tikzpicture}
\path (0,0) node (x) {}
(0.5,0.5) node[circle,draw](y){1};
\draw[black] (x) -- (y);
\end{tikzpicture}}
\end{overpic};
\caption{Picture with the legend added with the overpic and tikz package.}
\label{fig:mouse}
\end{figure}
\end{document}
答案1
实际上你不需要overpic
。你可以只使用 Tikz 来完成。但我们需要修改你的代码,如下所示:
- 图像(我使用了一个示例)和节点都位于 tikzpicture 内部。
- 您可以将
\draw
和结合起来\node
,无需同时指定。 - 图像将位于 内
\includegraphics
,而 又位于 节点本身内,锚点位于 上,并且和south west
均为 0 。inner sep
outer sep
现在西南是(0,0)
。
输出
一些细节
代码
\documentclass[10pt]{article}
\usepackage{tikz}
\usepackage{graphicx}
\usepackage{caption}
\DeclareGraphicsRule{.tif}{png}{.png}{`convert #1 `dirname #1`/`basename #1 .tif`.png}
\title{Title}
\author{Name}
\newcommand{\note}[3]{
\node[circle,draw] (#3) at (#2) {#3};
\draw (#1) -- (#3);
}
\begin{document}
\maketitle
\begin{figure}[htbp]
\centering
\begin{tikzpicture}
\node[anchor=south west, inner sep=0, outer sep=0] {\includegraphics[width=1\columnwidth]{example-image-a}}; %,grid,tics=5
\note{0,0}{.5,.5}{1}
\end{tikzpicture}
\caption{CAD of a mouse with the legend added with the overpic and tikz package.}
\label{fig:mouse}
\end{figure}
\end{document}