SIunit est mort, vive SIunitx !

Tout comme subfig est venu remplacer le fameux package subfigure, SIunitx se revendique comme étant le successeur de SIunitTour d’horizon.

Quelques options avant de commencer

Bien entendu, il vous faudra charger le package siunitx dans le préambule. Je vous recommande de plus l’option « abbreviations », qui va permettre de charger par défaut tout un tas d’abréviations d’unités :

\usepackage[load-configurations = abbreviations]{siunitx}

De plus, pour respecter la typographie française (virgule comme séparateur des décimales et espace fine pour les milliers), vous pouvez précharger la configuration française :

\sisetup{locale = FR,
detect-all,
}

L’option « detect-all » permettra de garder la même fonte que dans le texte.

Écriture des unités

Bien évidemment, siunitx reprend les fonctionnalités de siunit, mais la syntaxe change un peu.

Nombre + unité (cas simple)

\SI{25000}{\milli\meter}

Nombre + unité

Nota : rien ne nous oblige ici à utiliser les macros \milli et \meter simplement pour affichers la lettre « m », donc la commande suivante est strictement équivalente :

\SI{25000}{mm}

Vous remarquerez que le package a le bon goût de mettre en forme le nombre automatiquement : il ajoute une espace fine entre les milliers.

Nombre + unité (cas plus complexe)

Vous l’aurez compris, les plupart des multiplicatifs et des unités élémentaires existent déjà. Reste à combiner toutes ces unités élémentaires.

Exposants

Exemple avec les « m² ». Les deux commandes suivantes sont équivalentes :

\SI{215}{\square\meter}
\SI{215}{\meter\squared}

Unités inverse

Il suffit de placer la commande \per pour passer l’exposant en négatif.

\SI{210}{\km\per\hour}

Unités avec exposant négatif

\SI{300}{\watt\per\square\meter}

Unités avec exposant négaitf (2)

Nota : dans le premier exemple, si on avait voulu empêcher l’utilisation d’exposants, c’est-à-dire utiliser « / » pour l’unité réciproque :

\SI[per-mode=symbol]{210}{\km\per\hour}

Exposants persos

Par défaut, siunitx fournit des exposants jusque 3 (« cubic »). Vous pouvez bien entendu passer une unité à n’importe-quel exposant avec la commande suivante :

\tothe{mon-exposant-perso}

Puissance de 10

Outre les multiples habituels (\kilo, \mega, \pico etc.), vous pouvez utiliser les puissances de 10 directement dans la valeur donnée :

\SI{6.022e23}{\per\mol}

Puissance de 10

 

 

Unités seules

Grosse nouveauté par rapport à l’ancien package, il est possible de n’afficher que l’unité, avec la même syntaxe que précédemment, mais en minuscule :

\si{\newton\meter}

Unité seule

Nota : pour définir le point centré comme séparateur des unités :

\sisetup{inter-units-product=\ensuremath{\cdot}}

Angles

\ang{15}

Écriture des angles

 

Écriture des nombres

Il est possible de donner des valeurs adimensionnelles, tout en profitant de la mise en forme automatique :

\num{24415.15625}

Grand nombre à virgule

 

On peut même passer plusieurs valeurs en même temps, par exemple pour indiquer des dimensions :

\num{10240x7680}

Nombres multiples

 

Listes et gammes

SIunitx offre la possibilité de donner des gammes de valeur :

\SIrange{10}{25}{\liter}

Gamme de valeur

 

Par défaut, le package va placer l’unité pour les deux bornes, et utiliser « to » comme séparateur. Pour obtenir le résultat ci-dessus, il nous faut donc :

\sisetup{
range-phrase=--,     % Utilise le tiret court pour dire "de... à"
range-units=single,  % Cache l'unité sur la première borne
}

De même, on peut définir une liste exhaustive :

\SIlist{0;8;16;32;64}{\mega b}

Liste de valeurs

 

Là encore, il nous faut personnaliser un peu les options pour traduire le « and » par défaut :

\sisetup{
list-final-separator= { et },   % Place "et" à la fin de la liste
list-units=single               % L'unité ne s'affiche qu'au dernier élément
}

Définir ses propres unités

Si vous avez des unités à rallonge, vous serez peut-être tentés de créer des raccourcis. Exemple pour la conductance :

\DeclareSIUnit{\cond}{\watt\per\kelvin\per\meter\squared}

Il vous suffira ensuite d’utiliser l’unité \cond pour afficher vos watt-par-kelvin-et-par-mètre-carré

Pour aller plus loin

Une seule référence : la documentation du package bien sûr !

 

 

Bonne compilation !