LaTeX – Aligner les valeurs négatives sur les abscisses

Avec TikZ, lors de la création d’un axe des abscisses avec des valeurs négatives, l’alignement de celle-ci se fait sur toute la largeur des caractères affichés. Avec la valeur -3, l’alignement se fait avec les deux caractères – et 3. D’où un décalage par rapport à la valeur numérique.

\begin{tikzpicture}
	\draw[->] (-5.5,0) -- (5.5,0);
	\foreach \x in {-5,...,-1}{
		\draw (\x,0.1cm) -- (\x,-0.1cm) node[below] {\x};
	}
	\foreach \x in {0,...,5}{
		\draw (\x,0.1cm) -- (\x,-0.1cm) node[below] {\x};
	}
\end{tikzpicture}

Voici l’affichage obtenu :

Pour éviter ce « décalage », il suffit d’ajouter un fantôme sur le caractère -, après l’affichage de la valeur numérique :

\draw (\x,0.1cm) -- (\x,-0.1cm) node[below] {\x\phantom{-}};

Cela permet d’ajouter un signe – invisible à droite de la valeur. Ainsi, l’alignement se fait par exemple sur les caractères -3-.

Voici le code de l’exemple :

\begin{tikzpicture}
	\draw[->] (-5.5,0) -- (5.5,0);
	\foreach \x in {-5,...,-1}{
		\draw (\x,0.1cm) -- (\x,-0.1cm) node[below] {\x\phantom{-}};
	}
	\foreach \x in {0,...,5}{
		\draw (\x,0.1cm) -- (\x,-0.1cm) node[below] {\x};
	}
\end{tikzpicture}

Voici l’affichage obtenu :

Si vous souhaitez ajouter un espace vertical supplémentaire entre les valeurs et l’axe, vous pouvez ajouter la commande \strut. L’espace est proportionnel au contexte typographique local.

Voici le code complet de l’exemple :

\begin{tikzpicture}
	\draw[->] (-5.5,0) -- (5.5,0);
	\foreach \x in {-5,...,-1}{
		\draw (\x,0.1cm) -- (\x,-0.1cm) node[below] {\x\phantom{-}\strut};
	}
	\foreach \x in {0,...,5}{
		\draw (\x,0.1cm) -- (\x,-0.1cm) node[below] {\x\strut};
	}
\end{tikzpicture}

Et voici l’affichage final obtenu :