Fonctions, 2e partie: substitutions contextuelles

Tutoriel
by Rainer Erich Scheichelbauer
en fr zh

8 janvier 2013 Publié le 21 juillet 2012

Vous voulez substituer des glyphes, mais seulement dans certaines circonstances? Les substitutions contextuelles sont exactement ce qu’il vous faut.

Je pense bien que vous savez comment activer des alternates contextuelles dans InDesign. Et vous savez peut-être que certaines polices font des choses très cool avec ces alternates](http://ilovetypography.com/2011/04/01/engaging-contextuality/). Voici comment les intégrer dans vos polices.

Les fonctions dont nous avons besoin sont calt (alternates contextuelles) et clig (ligatures contextuelles). Les deux sont activées lorsque vous sélectionnez Variantes contextuelles dans InDesign.

Créer le glyphe alternate

Alors, prenez une de vos polices et plaçons-y un glyphe alternate. Cette variante ne remplace le glyphe standard que dans certaines circonstances. Prenons le j comme exemple.

Je pense que dans ce cas-ci, la terminaison de rondeur du j devrait se rétracter un peu si un g le précède. Générez un nouveau glyphe en sélectionnant Glyphe > Ajouter des glyphes… et dans le champ texte qui apparaît, entrez j=j.alt et cliquez Générer. Un glyphe nommé j.alt a maintenant été créé avec le j comme composante. Vous pouvez ensuite décomposer le glyphe composé à partir du menu contextuel et raccourcir la terminaison.

Pour taper le j alternate, faites Cmd-F et entrez j.alt dans le champ Rechercher qui apparaît.

Rédiger la substitution contextuelle

Nous avons maintenant besoin de rédiger la fonction calt. Enfoncez Cmd-I afin d’ouvrir le menu Informations de police et allez à l’onglet Fonctions. Cliquez sur le bouton plus en le maintenant enfoncé, et dans le menu contextuel, optez pour une nouvelle fonction. Maintenant, remplacez les xxxx pour attribuer le nom calt à cette fonction. Ensuite, dans le champ texte du haut, entrez:

sub g j' by j.alt;

Si tout a été bien fait, votre fenêtre de fonction devrait ressembler à ceci:

Entre sub et by se trouve le contexte entier dont la fonction va tenir compte. Dans notre cas, il s’agit du g, suivi du j. Mais nous ne voulons que remplacer le j, et pas le g. Nous allons donc marquer le j avec un seul apostrophe dactylographique: j'. Le substitut après le mot clé by, j.alt, ne s’applique ainsi qu’à la lettre marquée, soit le j.

Faisons un essai et nous saurons si cela fonctionne. Appuyez sur le bouton Compiler, ouvrez un nouvel onglet Édition, sélectionnez calt du menu de fonctions en bas à gauche et tapez un mot contenant ‘gj’.

Ajouter une classe à la règle de substitution

C’est une bonne idée que notre j rétracte sa queue quand un g vient avant. Il devrait aussi faire de même avec d’autres lettres avec une descendante, comme un q, un y, ou un second j. Bien entendu, nous pourrions écrire quelque chose comme ceci dans notre fonction calt:

sub g j' by j.alt;
sub q j' by j.alt;
sub y j' by j.alt;
sub j j' by j.alt;

Bien que ça fonctionne, c’est plutôt long et encombrant, en particulier si nous avons besoin d’y faire des changements plus tard. Voici une façon plus efficace de faire la même chose:

sub [g j q y] j' by j.alt;

Les crochets créent une classe. C’est une façon de dire ‘n’importe laquelle de ces lettres’. La fonction dit donc: ‘remplace j par j.alt si n’importe laquelle de ces lettres g, j, q ou y le précède’.

Les classes servent aussi pour la substitution. Il vous suffit de vous assurer que les deux classes ont la même taille et que les glyphes sont dans le même ordre. Imaginez que nous avions aussi un jcircumflex.alt, notre fonction ressemblerait alors à ceci:

sub [g j q y] [j jcircumflex]' by [j.alt jcircumflex.alt];

Si vous avez souvent besoin de la même classe, vous ne voudrez pas le taper à nouveau en entier à chaque fois. En particulier parce que vous voudriez éviter de vous retrouver avec un glyphe manquant dans une classe et avoir à tout changer. C’est alors une meilleure idée de cliquer sur le bouton plus et de créer une définition de classe. Vous pouvez la nommer en double-cliquant sur les xxxx, exactement comme vous le feriez pour un badge de fonction. Un nom de classe doit débuter avec une lettre A-Z ou a-z et peut aussi contenir un tiret bas, un point et des chiffres. Le nom peut avoir plus de quatre lettres. Je vais utiliser le nom descender_on_the_right pour notre classe et lui ajouter g j q y:

Nous pouvons maintenant réécrire notre fonction calt comme suit:

sub @descender_on_the_right [j jcircumflex]' by [j.alt jcircumflex.alt];

Le signe arobase (@) indique un nom de classe. Si vous oubliez de l’inclure, Glyphs pensera qu’il s’agit d’un nom de glyphe et vous donnera un message d’erreur.

C’est à peu près tout. En fait, pas tout à fait. Dans le tutoriel suivant Fonctions, 3e partie: substitutions contextuelles, nous approfondirons le sujet un peu plus et apprendrons le codage de fonctions contextuelles avancées.


POLICE UTILISÉE DANS LES EXEMPLES: Jordana de Stella Chupik
2015-06-22: Mise à jour pour Glyphs 2.
2019-03-29: Suppression de Font menu car il s’agit maintenant du menu Glyph (dans le tutoriel en anglais). Correction d’erreurs typographiques.
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.