Latex

Incompatibilité entre le package SIunits et la commande \degres de babel en LaTeX

Latex… On aime ou on déteste. Les deux à la fois, c’est possible.

Si vous êtes français, il est très probable que vous utilisiez le package babel avec l’option francais (ou french, ou frenchb) pour respecter les règles de la typographie française. Cette option fournit les commandes \degres et \degre, respectivement pour les températures et les degrés d’alcool, et pour les angles :

\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[francais]{babel}

\begin{document}

Grâce à \texttt{babel} et son option \texttt{french}, je peux écrire qu'il fait 21~\degres C dehors et qu'un angle droit mesure 90\degre.

\end{document}

J’ai écrit un long document avec énormément d’appels à la commande \degres. Puis, j’ai voulu utiliser le package SIunits pour disposer du symbole Ω et ainsi écrire la valeur de résistances. Ô rage ! ô désespoir ! ô Latex ennemi ! Dès l’ajout de l’utilisation de package dans mon préambule, la compilation échouait :

! Undefined control sequence.
<argument> \textdegree
l.9 ...ench}, je peux écrire qu'il fait 21\degres

La réponse est une nouvelle fois venue des forums de Developpez.com : il faut ajouter le package textcomp. Il définit un caractère degrés que frenchb utilise s’il est disponible. On a donc le code suivant :

\documentclass[11pt]{article}

\usepackage[utf8]{inputenc}
\usepackage[frenchb]{babel}
\usepackage{SIunits}
\usepackage{textcomp}

\begin{document}
Grâce à \texttt{babel} et son option \texttt{french}, je peux écrire qu'il fait 21~\degres C dehors et qu'un angle droit mesure 90\degre.

En revanche, avec \texttt{SIunits}, je peux écrire qu'il fait \unit{12}{\celsius} dehors et qu'un angle droit mesure \unit{90}{\degree}. Enfin, ma résistance est de \unit{451}{\kilo\ohm}.

\end{document}

La sortie en PDF (cliquez pour un meilleur affichage…) :

Latex degres

Pour l’utilisation du package SIunits, vous pouvez consulter cette page des Wikibooks. Pour écrire un (simple) \, lisez cette entrée de la FAQ Latex. Pour plus d’informations sur le mode français de babel, rendez-vous sur le site du module.