Ajouter une barre d’échelle sur une figure

Quiconque fait un peu de micrographie a déjà pu constater que les barres d’échelle faites par les logiciels de microscopie sont rarement élégantes, quand elles sont lisibles. Un moyen de concilier l’utile à l’agréable est d’utiliser TikZ pour mettre l’échelle en surcouche.

Exemple de rendu

Barre d'échelle avec TikZ
Barre d’échelle avec TikZ

Code associé

Dans le préambule :

\usepackage{graphicx}
\usepackage{tikz}
\usepackage{siunitx}
 
\newcommand{\scalebar}[5]{
 \begin{tikzpicture}
 \def\coinInfx{0.05}	% Position du coin inférieur gauche (x)
 \def\coinInfy{0.2cm}	% Position du coin inférieur gauche (y)
 \def\epai{0.1cm}	% Epaisseur du trait
  \draw (0,0) node[anchor=south west,inner sep=0] (image) {\includegraphics[#2]{#1}};
  \begin{scope}[x={(image.south east)},y={(image.north west)}]
	\fill [fill=blue, fill opacity=0.5] (\coinInfx,\coinInfy) rectangle +(#4/#3,2ex);
	\fill [white] 							(\coinInfx,\coinInfy+2ex) rectangle +(#4/#3,\epai);
	\draw [white] (\coinInfx+#4/#3/2,\coinInfy+2ex) node[anchor=north,inner sep=0.1em, font=\footnotesize]{\SI{#4}{#5}};
  \end{scope}
 \end{tikzpicture}
}

A l’endroit où vous souhaitez inclure la figure :

\scalebar{_adresse-de-l'image_}{_dimensions-souhaitées-de-l'image_}{_largeur-reelle-de-l'image_}{_valeur_affichée_}{_unités_}

On utilise ici le merveilleux package SIunitx pour afficher les unités proprement. Dans mon exemple, je voulais insérer la figure en pleine largeur. La micrographie mesurait 3244 µm de large, et je souhaitais afficher une barre de 500 µm. Ma commande était donc :

\scalebar{Micro.jpg}{width=\textwidth}{3244}{500}{\micro\meter}

Gros avantage par rapport à toutes les échelles « en dur » : même en changeant la dimension de l’image sur le document, la barre gardera la même épaisseur, et surtout la même police :

\scalebar{Micro.jpg}{width=0.5\textwidth}{3244}{500}{\micro\meter}
\scalebar{Micro.jpg}{width=0.5\textwidth}{3244}{500}{\micro\meter}

 

Crédit

Rendons à César ce qui est à César, ce code a été librement adapté depuis celui donné ici, je n’ai fait que le rendre plus robuste.

Bonne compilation !