Chiffres: les exposants (supérieurs) et indices (inférieurs)

Tutoriel
by Rainer Erich Scheichelbauer
en fr zh

29 août 2013 Publié le 24 juillet 2013

La frontière ultime des chiffres: supérieurs, inférieurs, et inférieurs scientifiques. Implémentez-les facilement à l’aide de ce tutoriel étape par étape.

Je présume que vous avez déjà des fractions. Nous les réutiliserons pour faire les chiffres supérieurs et inférieurs.

Supérieurs: la fonction sups

Imaginez m exposant 2 pour mètre carré, puis imaginez aussi x exposant 3. C'est la hauteur que doivent avoir les chiffres supérieurs. Selon votre design, des copies identiques de vos numérateurs peuvent très bien faire l’affaire. Cependant, de nombreux design ont besoin que les chiffres supérieurs soient placés légèrement plus haut:

Comment faut-il faire? Allez à Glyphe > Ajouter des glyphes… (Cmd-Shift-G) et créez des composantes copies de vos dénominateurs avec une simple recette:

zero.dnom=zerosuperior
one.dnom=onesuperior
two.dnom=twosuperior
three.dnom=threesuperior
four.dnom=foursuperior
five.dnom=fivesuperior
six.dnom=sixsuperior
seven.dnom=sevensuperior
eight.dnom=eightsuperior
nine.dnom=ninesuperior

Sélectionnez ensuite les glyphes supérieurs (en mode aperçu Police ou Édition, peu importe) et déplacez-les vers le haut: vous pouvez les repousser tout en haut d’un seul coup avec Filtre > Transformer > Transformation. Entrez une valeur appropriée dans le champ Déplacer y et le tour est joué:

Dans Fichier > Informations de police… > Fonctions, appuyez sur le bouton Mettre à jour, et Glyphs générera la fonction sups (supérieurs):

Veuillez noter qu’avec cette méthode, les glyphes supérieurs recevront des valeurs Unicode séparées. Par conséquent, cette fonction va détraquer les caractères, mais selon les spécifications officielles, c’est OK:

Cela pourrait inclure un changement de valeur sémantique. En plus des codes originaux de caractères, l’application devrait stocker le code pour le nouveau caractère.

L’expression magique ici est ‘changement de valeur sémantique.’ Les fonctions OpenType ne sont habituellement pas censées faire cela, c’est-à-dire, changer la valeur Unicode, et par conséquent, changer la valeur sémantique. Il existe cependant quelques exceptions, et par chance, sups est l’une d’entre elles. Notre code de fonction est donc correct, et c’est pourquoi nous recommandons cette méthode sans réserve.

Inférieurs: subs vs sinf

Quoi? Deux fonctions OpenType différentes pour les chiffres inférieurs? Dans l’énoncé officiel, subs (‘subscript’ pour inférieurs) sert à:

La fonction ‘subs’ peut remplacer un glyphe par défaut par un glyphe inférieur, ou elle peut combiner une substitution de glyphe avec un rajustement d’emplacement pour assurer une position adéquate. […] Note: il s’agit d’un changement de valeur sémantique. En plus des codes originaux de caractères, l’application devrait stocker le code pour le nouveau caractère.

Ce qu’il faut comprendre, encore une fois, est que subs peut occasionner un ‘changement de valeur sémantique’, c’est-à-dire, créer des changements au niveau du caractère. En théorie, les fonctions OpenType ne sont pas censées faire cela, mais dans ce cas particulier, Unicode comprend déjà des chiffres inférieurs qui se trouvent encodés. Nous ferions donc aussi bien de les réutiliser pour la fonction.

Et sinf (inférieurs scientifiques) est destiné à l’usage scientifique:

Remplace les chiffres elzéviriens ou alignés par des chiffres inférieurs (glyphes plus petits qui sont placés plus bas que la ligne de pied standard; ils servent principalement pour les notations de chimie ou mathématiques). Cette fonction peut aussi remplacer les caractères bas de casse avec des caractères alphabétiques inférieurs.

Donc, lorsque les formules chimiques pour le carbone dioxyde et l’eau ont besoin du chiffre deux inférieur, c’est le boulot de sinf:

Il est tout à fait légitime de vouloir que vos chiffres subs soient identiques à vos chiffres sinf. Cependant, sinf n’admet pas officiellement un changement sémantique. Ce n’est toutefois pas un problème de le faire et vous n’avez tout simplement qu’à utiliser le même jeu de chiffres inférieurs pour les deux. C’est ce que nous recommandons.

Vous pouvez faire cela en utilisant des chiffres avec un suffixe inferior, épelé exactement comme cela, en anglais, et sans ajouter de point. Pour les créer, coller ce qui suit dans la fenêtre de dialogue qui apparaît après avoir fait Glyphe > Ajouter des glyphes…:

zero.dnom=zeroinferior
one.dnom=oneinferior
two.dnom=twoinferior
three.dnom=threeinferior
four.dnom=fourinferior
five.dnom=fiveinferior
six.dnom=sixinferior
seven.dnom=seveninferior
eight.dnom=eightinferior
nine.dnom=nineinferior

Appuyez sur Générer et Glyphs créera les nouveaux glyphes comme des composantes copies des dénominateurs. Ensuite, faites-les glisser vers le bas avec Filtre > Transformer, mais cette fois avec une valeur Déplacer y négative.

Allez à Fichier > Informations de police… > Fonctions puis appuyez sur le bouton Mettre à jour, et Glyphs générera les fonctions subs et sinf. Et voilà c’est fait, félicitations!

Scripts utiles

Les nombreuses étapes décrites précédemment sont plutôt fastidieuses. Je vous comprends très bien si vous souhaitez que tout cela soit automatisé. Je pensais la même chose. C’est pourquoi, dans la collection de scripts mekkablue, se trouve un script Build Glyphs > Build Small Figures (se traduit en français par Construire des glyphes > Construire des petits chiffres). Lorsque vous exécutez le script, vous obtenez une boîte de dialogue qui ressemble à ceci:

Le script fait exactement ce que son nom indique, et l’utiliser devrait être relativement simple:

  1. Dans le champ Default Suffix, tapez le suffixe de votre ‘base’ de petits chiffres, soit tout ce qui vient après les simples one, two, etc. Typiquement, il s’agira de .dnom pour les dénominateurs, comme les dénominateurs tendent à rester sur la ligne de pied, c’est un bon point de départ.
    Vos chiffres par défaut doivent être faits uniquement de contours, c’est-à-dire, ne pas contenir d’autres petits chiffres comme composantes. Si vous n’êtes pas certain, utilisez l’option Decompose small figures with Default Suffix.
  2. Dans le champ Derivatives, faites la liste de tous les suffixes des chiffres dérivés, chacun suivi par un deux-points puis d’une valeur verticale du déplacement en unités. Séparez les entrées multiples avec des virgules. Si le suffixe a un point, il est important d’inclure le point. Par exemple: .numr:250, superior:350, inferior:-125.
  3. Appuyez sur le bouton Construire. Le script reconstruira ensuite les petits chiffres sous forme de composés. Il fera les composantes avec les chiffres munis du suffixe par défaut.

Cool. La création de glyphes et la transformation de composés en une seule étape. Et avec le temps sauvé, nous pouvons faire une pause café.

Cas spécial: éviter un changement sémantique

Si, pour une raison quelconque, vous voulez éviter les changements sémantiques mentionnés précédemment, ou encore si vous avez besoin de garder les supérieurs sémantiques séparés des purs supérieurs OpenType, alors utilisez le suffixe .sups pour vos chiffres supérieurs. Pourquoi? Parce que les glyphes munis de suffixes avec un point n’ont pas de valeurs Unicode. Voici une recette pour faire cela:

zero.dnom=zero.sups
one.dnom=one.sups
two.dnom=two.sups
three.dnom=three.sups
four.dnom=four.sups
five.dnom=five.sups
six.dnom=six.sups
seven.dnom=seven.sups
eight.dnom=eight.sups
nine.dnom=nine.sups

Attention: ce n’est pas ce que nous recommandons. La méthode avec les chiffres superior est correcte et fonctionne bien. N’utilisez cette dernière procédure ‘spéciale’ seulement lorsque c’est la seule solution pour régler un problème technique.

De la même façon, lorsqu’il vous faut différencier subs et sinf, ou si devez éviter le changement sémantique mentionné ci-dessus, utilisez à la fois les suffixes .sinf et .subs, en incluant les points. C’est-à-dire, au lieu des chiffres inferior sans point. Pour vous aider à démarrer, voici la recette de glyphe à utiliser avec le menu Glyphe > Ajouter des glyphes…:

zero.dnom=zero.sinf
one.dnom=one.sinf
two.dnom=two.sinf
three.dnom=three.sinf
four.dnom=four.sinf
five.dnom=five.sinf
six.dnom=six.sinf
seven.dnom=seven.sinf
eight.dnom=eight.sinf
nine.dnom=nine.sinf

zero.dnom=zero.subs
one.dnom=one.subs
two.dnom=two.subs
three.dnom=three.subs
four.dnom=four.subs
five.dnom=five.subs
six.dnom=six.subs
seven.dnom=seven.subs
eight.dnom=eight.subs
nine.dnom=nine.subs

Ensuite, encore une fois, faites Filtre > Transformer > Transformatlon afin de déplacer les chiffres à la position désirée. Pensez à mettre vos fonctions à jour dans Fichier > Informations de police… > Fonctions avant d’exporter la police.


POLICE UTILISÉE EN EXEMPLE: MARTHA, GRACIEUSETÉ DE LISA SCHULTZ.

Mise à jour 2019-05-06: mise à jour des instructions pour Glyphs 2.6. Merci @madigens. Également, mise à jour des liens et ajout d’une explication au sujet du changement sémantique.
Mise à jour 2019-12-10: ajout de la section à propos du script.
Mise à jour 2020-01-11: correction d’une erreur typographique.
Mise à jour 2020-03-13: quelques changements et ajouts de mots dans la version française.

Traduction française de Nathalie Dumont.