Add part numbers and descriptions to figure?

I'd like to add part numbers and descriptions to a figure containing an object consisting of several parts. A circle with a number in it, a line and a dot or arrow that points to the relating part (let's say a given coordinate in an included image).

How do I do that? Are there any packages that can handle that for me?

• Does the figure already exist, and you just need to add annotations? Or do you need to create the figure part, too. What have you tried so far? See, for example, tex.stackexchange.com/questions/142828/… – Steven B. Segletes Feb 27 '14 at 13:58
• Also related: tex.stackexchange.com/questions/9559/… – jub0bs Feb 27 '14 at 14:02
• The figure already exists (the image, that is). To be honest, I haven't tried anything in TeX, so far. I've been adding the annotations (thanks for the word) by using Photoshop up to now. But that leads to different font sizes when I rescale the images... – Hendrik Wiese Feb 27 '14 at 14:08

The answers provided in Drawing on an image with TikZ can be used here; the only thing that makes this not an exact duplicate is how to add the annotations; this can be done using pins; a little example:

\documentclass{article}
\usepackage{tikz}
\usepackage{graphicx}

\begin{document}

\begin{tikzpicture}[
every pin/.style={
fill=orange!40,
circle,
minimum size=18pt,
font=\footnotesize},
every pin edge/.style={
<-,
>=latex,
thick,
orange!40,
shorten <=1pt,
}
]
\node[anchor=south west,inner sep=0]
(image) at (0,0)
{\includegraphics[width=0.7\textwidth]{example-image-a}};
\begin{scope}[x={(image.south east)},y={(image.north west)}]

\node[pin={[pin distance=1.2cm]60:1}] at (0.6,0.42) {};
\node[pin={90:2}] at (0.5,0.72) {};
\node[pin={[pin distance=2cm]160:3}] at (0.5,0.43) {};

% The coordinate grid
\draw[help lines,xstep=.1,ystep=.1] (0,0) grid (1,1);
\foreach \x in {0,1,...,9} { \node [anchor=north] at (\x/10,0) {0.\x}; }
\foreach \y in {0,1,...,9} { \node [anchor=east] at (0,\y/10) {0.\y}; }
\end{scope}
\end{tikzpicture}

\end{document}


And once the auxiliary grid is commented out: