Fonctions, 1re partie: les substitutions simples

Tutoriel
by Rainer Erich Scheichelbauer
en fr zh

8 janvier 2013 Publié le 7 juillet 2012

Une police moderne ne peut être complète sans eux, et Glyphs vous aide à les construire. Dans cette première partie sur les fonctions OpenType, nous allons explorer les premiers fondements de l’automatisation avec Glyphs.

Ce que les fonctions peuvent faire

Les fonctions peuvent faire deux choses: substituer des glyphes et déplacer des glyphes. Dans cette première section, nous allons nous concentrer sur la substitution. Notez svp que j’ai bien dit glyphes, et non caractères. Les fonctions ne peuvent changer le texte entré par l’utilisateur (c.-à-d., les caractères), seulement la façon dont il est affiché (c.-à-d., les glyphes que vous avez dessinés dans votre police).

Assez de blabla, poursuivons et créons une fonction pour notre police. Allez à Fichier > Informations de police… (Cmd-I) et cliquez sur l’onglet Fonctions. Voici ce que vous devriez voir:

Sur la gauche se trouve une vue d’ensemble des préfixes, fonctions et classes. Sur la droite se trouvent deux champs texte, celui du haut est pour votre code de fonction, celui du bas est pour des notes ou encore pour sauvegarder des morceaux de code que vous avez temporairement désactivés et que vous pourriez vouloir utiliser plus tard. Au-dessus du champ texte se trouvent deux cases; l’une permet de sélectionner la génération automatique de la fonction et l’autre de désactiver la fonction.

Tout ce qu’il nous faut maintenant est une fonction. Cliquez sur le bouton plus dans le bas à gauche. Un mini sous-menu apparaît; sélectionnez Fonction. La fenêtre devrait maintenant ressembler à ceci:

Félicitations! Vous avez tout juste créé une fonction nommée xxxx. Yééé! Maintenant vous pouvez coder une fonction dans le champ texte du haut. Bien entendu, xxxx n’est pas vraiment un bon nom pour une fonction. Les logiciels de mise en page comme InDesign ou XPress, ou même de traitements de texte comme TextEdit, s’attendent à ce que vous adhériez à la convention de nom pour votre badge de fonction de quatre lettres. Pour garder les choses simples, le badge de fonction devrait dire quelque chose à l’utilisateur à propos de ce que la fonction fait. (Les sympathiques gens chez Microsoft maintiennent une liste de badges de noms de fonctions, en plus de recommandations sur leur utilisation. Mon conseil: gardez cet hyperlien sous votre oreiller ainsi qu’avec vos signets préférés. Croyez-moi, vous consulterez ce lien très souvent.)

Après avoir créé la fonction xxxx, elle est prête à être nommée convenablement. Allons-y avec liga pour commencer. Ce badge de fonction correspond à ‘Ligatures standard’. Selon Microsoft et Adobe, la fonction liga ‘remplace une séquence de glyphes avec un seul glyphe qui est une forme privilégiée pour des usages typographiques.’ Cela semble bon.

Substitution de glyphe

Lorsque vous construisez une fonction, en fait vous créez un ensemble de règles. Ces règles définissent ce qui est substitué à quoi. Voici à quoi ressemble une telle règle:

sub f f k by f_f_k;

Analysons cette ligne par petits bouts. Pour commencer, le mot sub définit le type de règle. Comme il a été dit précédemment, cela peut être soit une règle de substitution, soit une règle de positionnement. Nous pouvons facilement voir que sub dénote une règle de substitution.

Pour continuer, puisque nous avons une substitution, nous avons besoin de la séquence de glyphes à remplacer. Dans ce cas-ci, nous avons trois glyphes: f, suivi d’un autre f, suivi d’un k. Veuillez noter qu’il s’agit des noms de glyphes actuels, donc ä serait énoncé adieresis, ñ, ntilde, etc.

Si nous avions omis le mot clé by à la fin de la séquence, ce ne serait pas clair ce qui est remplacé par quoi. Si notre ligne de code était sub f f k f_f_k, cela pourrait signifier que f f est remplacé par la séquence k f_f_k.

Après by, nous indiquons à la police ce qui vient à la place. Rappelez-vous la convention de noms pour les ligatures: les noms des lettres individuelles connectés par des tirets bas. Dans ce cas-ci, nous avons les trois lettres f, f et k qui en forment maintenant une, appelée f_f_k.

Et maintenant, super très important: chaque règle a besoin d’un point-virgule à la fin. C’est facile, en fait, mais il s’agit de la source principale d’erreurs. Si vos fonctions ne fonctionnent pas, vérifiez que les points-virgules s’y trouvent bien et qu’ils sont à la bonne place.

Bien entendu, vous pouvez placer plusieurs règles les unes après les autres, comme ceci:

sub f k by f_k;
sub f h by f_h;
sub f i by fi;
sub f l by fl;
sub f f k by f_f_k;
sub f f h by f_f_h;
sub f f i by f_f_i;
sub f f l by f_f_l;

Remarque: vous avez peut-être observé que les noms fi et fl n’adhèrent pas à la convention de noms. La raison est que ces glyphes existaient déjà lorsque la convention de noms a été créée, et il est maintenant trop tard pour corriger ces deux exceptions. Autre chose: vous pouvez écrire toutes vos règles sur une seule ligne, si vous préférez. À condition que vous n’oubliiez pas les points-virgules, tout devrait bien aller.

Vous voulez vérifier que vous avez tout fait correctement? Appuyez sur le bouton Compiler dans le bas de la fenêtre et Glyphs s’assurera que votre code soit disponible dans vos onglets en mode Édition. Vous pouvez ensuite tester votre fonction en la sélectionnant du menu de fonctions déroulant dans le bas à gauche. Commencez ensuite à taper.

Bien sûr, vous devriez mettre ces règles dans votre police seulement si vous avez bien ces glyphes dans votre police. Autrement, Glyphs se plaindra fortement et avec raison:

Génération automatique de fonctions

Et maintenant, je vous dois des excuses, car je vous avoue que nous avons fait tout cela pour rien. Pourquoi? Parce que si vous vous en tenez à la convention de noms ci-haut, Glyphs peut créer les fonctions de ligatures automatiquement. Appuyez sur le bouton avec la flèche circulaire pour générer automatiquement les fonctions.

La majorité des règles de ligatures seront placées dans un dlig (ligatures discrétionnaires), mais vous pouvez les forcer dans un liga si vous ajoutez un suffixe .liga aux noms des glyphes ligatures, p. ex., f_f_h.liga. Mais Glyphs peut automatiser plus que liga et dlig. Vous trouverez une liste des noms de glyphes et noms de suffixes reconnus dans l’annexe du manuel Glyphs.

C’est une bonne chose que nous comprenions maintenant les substitutions de fonctions et que nous soyons capables de dire si quelque chose ne va pas. De plus, nous sommes bien préparés pour la deuxième partie sur les substitutions contextuelles! Restez donc à l’écoute…

Vous êtes emballé? Et bien, dirigez-vous immédiatement à la seconde partie de la saga Fonctions, 2e partie: substitutions contextuelles.

Ressources

Vous ne pouvez plus vous passer du codage de fonctions? Mordez à belles dents dans la spécification technique complète d’Adobe, et dans le but d’être exhaustif, je vous rappelle la liste de badges de fonctions de Microsoft.

Si vous recherchez quelque chose d’un peu moins geek, le merveilleux Tal Leming maintient l’OpenType Cookbook. Voyez aussi cette introduction aux fonctions OpenType de Martin Wenzel et Christoph Köberlin.


2015-07-02: Mise à jour pour Glyphs 2.
2018-07-24: Mise à jour des liens et ajout de liens dans Ressources.
2019-03-28: Mise à jour du lien pour la spécification Adobe.
2019-04-09: Mise à jour du lien du manuel Glyphs.
2020-03-27: Légère modification des titres en français de la série de tutoriels sur les fonctions.
Traduction française de Nathalie Dumont.