decoration

Le symbole 1 “blackboard”

Trucs et astuces…

Je suis un utilisateur intensif de presque toutes les calligraphies possibles des lettres de l’alphabet en mathématique. C’est parfois plus simple de changer l’aspect d’une lettre pour signifier un nouveau concept mathématique (ou un objet particulier), que de trouver une n-ième lettre, même éventuellement grecque.

J’ai donc l’habitude d’utiliser toutes la commande du type \mathcal{...}, \mathbf{...}, \mathrm{...}, \mathsf{...}, etc.

L’une des commandes définies par amsfonts.sty est l’indispensable \mathbb{...} qui produit nos chres ensembles sacrés : les entiers naturels, les entiers relatifs, les nombres réels, les nombres complexes, mais aussi les quaternions, et pourquoi pas un corps quelconques…

Il se trouve qu’il y a une énorme lacune dans la définition de cette commandes : elle ne permet d’accéder qu’à des lettres majuscules, dessinées avec une double barre. Cette commande ne peut pas faire mieux : les autres lettres ne sont pas dessinées avec les doubles barres dans les polices fournies par l’AMS. Dommage.

Dans la vie de tous les jours, les minuscules et les chiffres en “double barre” ne sont pas très courants… sauf pour le 1, qui symbolise l’unité d’une algèbre. Depuis des années, ce problème particulier nous gâche la vie.

Je vous propose dans ce qui suit 3 solutions.

La première solution est la plus ancienne. Il s’agit d’un bricolage apparu assez tôt dans l’histoire des lettres “blackboard”, il nous a été fourni dans des feuilles de style de Springer-Verlag (merci à eux). Il s’agit tout simplement de prendre un 1 normal et de lui coller la lettre l :

% méthode Springer-Verlag très ancienne, bricolage avec un 1 et un l
\newcommand\bbone{{\mathchoice{1\mskip-4.4mu\mathrm{l}}{1\mskip-4.4mu\mathrm{l}}{1\mskip-4.5mu\mathrm{l}} {1\mskip-4.5mu\mathrm{l}}}}

Ce code fonctionne parfaitement, mais visuellement on peut se rendre compte du bricolage, car les lignes ne sont bien sûr pas correctement ajustées.

La seconde méthode est apparue avec une fonte qui contenait toutes les lettres majuscules plus le 1, le h et le k. Cette fonte peut être activée avec le package dsfont.sty et il définit un nouvel alphabet \mathds{...}. Le problème est que le nombre d’alphabets mathématiques utilisables en LaTeX est limité. Appeler ce package pour seulement récupérer le 1 est inutile.

Le code ci-dessous définit une commande qui n’a pas besoin de charger un nouvel alphabet mathématique. En fait, il y a deux fontes possibles : avec ou sans sérif. J’ai donc proposé deux solutions. Attention, les commandes ci-dessous utilisent la commande \text{...} définie par le package amsmath.sty qu’il faut donc appeler aussi.

% police dsfont, avec sérif
\newcommand{\bbone}{{\text{\usefont{U}{dsrom}{m}{n}1}}}
% police dsfont, sans sérif (un peu plus gras que le précédent)
\newcommand{\bbone}{{\text{\usefont{U}{dsss}{m}{n}1}}}

On peut trouver le 1 défini par la méthode précédente un peu épais, et mal coordonné avec les fontes de l’AMS. Aussi, je propose une troisième solution. Cette dernière est très récente, puisque la fonte utilisée vient juste d’être convertie en PostScript (début décembre 2010). Il s’agit de la fonte bbold, qui est activée avec la package bbold.sty. Le code est un peu plus compliqué que les précédents car le fichier de définition de cette fonte n’a pas (encore) été mis à jour pour prendre en compte la fonte PostScript ! Aussi, les premières lignes servent à installer correctement cette fonte. Ensuite, la commande est du même type que les deux précédentes. En particulier, elle utilise aussi la commande \text{...} définie par le package amsmath.sty qu’il faut donc appeler aussi.

% police bbold, mais le fichier Ubbold.fd n'est pas à jour pour utiliser exclusivement les versions .pfb
\DeclareFontFamily{U}{bbold}{}
\DeclareFontShape{U}{bbold}{m}{n}{<-5.5> bbold5 <5.5-7.5> bbold7 <7.5-> bbold10}{}
\newcommand{\bbone}{{\text{\usefont{U}{bbold}{m}{n}1}}}

Toute autre solution est la bienvenue !