Créer une police variable

Tutoriel
by Rainer Erich Scheichelbauer

8 mars 2018

Variable fonts open a whole new world of possibilities. Creating them is a breeze in Glyphs.

Bienvenue aux polices variables dans Glyphs! Ce tutoriel couvre le processus de travail pour les dernières versions de Glyphs. C’est pourquoi nous vous recommandons d’installer la plus récente version bêta du logiciel. Pour ce faire, allez à Glyphs > Préférences… > Mises à jour, activez les deux options de la boîte de dialogue, et appuyez sur le bouton Vérifier maintenant. Gardez à l’esprit que bien que Glyphs puisse exporter les fontes variables, il s’agit actuellement d’une implémentation en mode bêta. Tout au long du tutoriel, je vais le souligner quand il faut faire attention.

Des polices variables, c’est quoi au juste?

Si vous n’avez pas encore lu l’excellent article de John Hudson qui introduit le sujet, arrêtez tout ce que vous faites et lisez-le à cet instant même. Oui, vraiment. Jetez également un coup d’œil au blogue d’Adobe https://blogs.adobe.com/creative/fr/les-polices-de-caracteres-variables-arrivent-et-voici-pourquoi/ et à cette présentation de Malou Verlomme https://youtu.be/YOwsQN5PKSU.

Étape 1: définir les axes

Dans Fichier > Informations de police… > Police, ajoutez un paramètre personnalisé nommé Axes. Double cliquez son champ Valeur et dans le dialogue qui s’ouvre, cliquez sur la roue dentée et ajoutez un axe. Attribuez un des axes prédéfinis (Weight, Width, Italic, Slant, Optical Size), ou créez le vôtre, pour chacun des axes ajoutés dans le champ Valeur. (Note: pour des raisons de programmation, les axes prédéfinis doivent garder leurs noms tels quels, et en anglais.)

Truc de pro: si vous créez votre propre axe ‘privé’, il est indispensable que vous choisissiez un nom de quatre lettres. De plus, afin d’éviter de créer d’éventuels conflits avec les mises à jour de la norme, nous vous recommandons d’écrire tous vos noms d’axes privés tout en capitales, p.ex., RIRE pour Sourire ou ROTN pour Rotation. Les noms tout en capitales sont officiellement réservés pour les usages privés. Les axes prédéfinis seront toujours en bas de casse.

Vous pouvez redéfinir vos axes en tout temps, et l’implémentation actuelle vous permet de définir jusqu’à 6 axes. Dans cet exemple, je vais me restreindre à un axe, Weight, avec le nom wght:

Vous pouvez gérer vos axes à partir du menu de la roue dentée, dans le coin en bas à gauche de la fenêtre de dialogue.

Étape 2: mettre en place les masters

Dans Fichier > Informations de police… > Masters, ajoutez des masters avec le bouton plus dans le coin en bas à gauche de la fenêtre comme vous le feriez pour un projet Multiple Masters. Dans notre exemple, nous allons ajouter deux masters, Light et Bold.

Pour chacun des masters, sélectionnez les réglages suivants:

  1. Assurez-vous de choisir un nom de master approprié pour chaque master. Dans notre cas, Light et Bold devraient faire l’affaire. Les noms de masters ne sont pas exportés dans la police finale. Ils sont importants pour vous y retrouver quand vous travaillez dans Glyphs.
  2. Plus important, réglez les coordonnées des axes pour chacun des masters. Dans notre exemple, indiquez les valeurs de Weight, soit la graisse, p. ex., 50 pour le master Light, c.-à-d., maigre, et 200 pour le master Bold, ou gras. De nombreux designers aiment utiliser l’épaisseur des traits comme valeur pour l’axe weight, mais en fait vous pouvez inscrire les valeurs que vous voulez, pour autant qu’elles soient suffisamment différentes, afin que Glyphs puisse calculer les instances intermédiaires. Dans notre exemple, nous pourrions calculer une instance aux nombres entre 50 et 200, p. ex., 75, 120, 182, etc.
  3. Vous pouvez plutôt choisir de sélectionner une icône de master de la fenêtre pop-up dans le coin en haut à droite. Faites votre sélection à partir de la matrice de n représentant une panoplie de combinaisons de graisse et de chasse. Vous pouvez également entrer un nom de glyphe dans le bas, et Glyphs utilisera une image de ce glyphe comme icône du master. Ici aussi, c’est pour vous aider à vous y retrouver, alors choisissez quelque chose qui fonctionne bien pour vous.

Et bien sûr, si vous déroulez la fenêtre un peu vers le bas, vous trouverez encore plus de réglages: zones, traits, paramètres personnalisés. Vous devriez remplir ces réglages de manière appropriée à votre design. Assurez-vous cependant que les valeurs soient compatibles. Cela veut dire que si vous ajoutez une valeur dans un master, il faut ajouter une valeur correspondante dans tous les autres masters. Par exemple, si vous avez des épaisseurs de traits standards dans un master, les autres masters doivent eux aussi avoir des valeurs de traits, dans le même nombre et dans le même ordre .

Note bêta à propos des coordonnées des axes: techniquement, chacun des axes possède une définition d’échelle avec une logique spécifique. P. ex., l’échelle de Weight doit être compatible avec celle de usWeightClass afin de fonctionner avec les CSS et de permettre le changement de police tout en gardant le même style. Ainsi, 400 doit être le Regular, et 700 le Bold, etc. La classe Chasse doit avoir 100 comme coordonnée pour la chasse normale, et les nombres pour les autres masters doivent être un pourcentage relatif de la chasse normale, habituellement 75 pour le Condensed, c’est-à-dire l’étroit, et 125 pour l’Extended, ou large.

Ces réglages de l’axe Weight sont assez délicats à réussir dans l’implémentation actuelle de Glyphs. Vous pouvez soit utiliser les spécifications définies d’intervalles de graisses au lieu de l’épaisseur des traits, ou bien ajouter des paramètres Axis Location (voir plus bas) afin de réassigner les masters. Les deux méthodes ont l’inconvénient suivant: il est peu probable que les graisses prédéfinies entre vos masters soient distribuées de façon aussi uniforme que le usWeightClass le tient pour acquis. En d’autres mots, si vous avez un master Regular défini à 400 et un master Extrabold à 800, vous avez plus de chances de gagner à la loterie que votre instance Medium tombe pile à 500, l’instance Semibold à 600 et l’instance Bold à 700.

En théorie, vous pourriez contourner cela en insérant vos instances comme des masters. Pour ce faire, allez à Fichier > Informations de police… > Instances, et une instance à la fois, choisissez Instance master à partir du bouton plus dans le coin en bas à gauche de la fenêtre. Passez ensuite à l’onglet Masters de la même fenêtre, et réinitialisez les coordonnées Weight aux nombres de usWeightClass. De retour dans l’onglet Instances, vous pouvez maintenant supprimer et réinsérer les instances avec l’option Ajouter une instance pour chaque master, encore une fois à partir de ce petit bouton plus.

À l’heure actuelle, nous recommandons de faire cela seulement pour les polices qui seront livrées, et de ne pas vous en soucier pendant que vous faites des expérimentations pour vous-mêmes ou pour une implémentation particulière.

Étape 3: dessiner des glyphes compatibles

Par souci de concision, nous nous limiterons à un A pour ce tutoriel. Je dessine un A maigre avec une épaisseur des traits d’à peu près 50 unités, et le A gras avec 200 unités d’épaisseur:

Très important: maintenez la compatibilité de tous vos contours, composantes et ancres, exactement comme vous le feriez pour des réglages Multiple Master.

Truc de pro: vous pouvez vérifier la compatibilité avec Affichage > Afficher la compatibilité des masters (Ctrl-Opt-Cmd-N), et pour autant que vous n’ayez pas d’instance définie (voir l’étape 4), Glyphs tolère l’incompatibilité des contours. Dans Fichier > Informations de police… > Police, vous pouvez ajouter un paramètre personnalisé nommé Enforce Compatibility Check, et Glyphs connectera les masters, même s’il n’y a pas d’instance entre eux:

Étape 4: ajouter des instances prédéfinies

Même si votre police est variable, et que vous avez déjà un nombre infini d’instances, il vous est encore possible de sélectionner des endroits dans l’espace de design et de les définir comme instances du sous-menu de la police. Sous Fichier > Informations de police… > Instances, ajoutez autant de ces instances prédéfinies que vous le voulez. Vous n’avez qu’à ajouter de nouvelles instances avec le bouton plus dans le coin en bas à gauche, ou encore faites Option-glisser une instance existante dans la barre latérale gauche afin de la dupliquer.

Voici tout ce qu’il faut faire dans chaque instance:

Setting up the instances
  1. Dans notre exemple, inscrivez un Nom de style approprié: Light, Regular, Medium, Semibold, Bold, Extrabold.
  2. Sélectionnez une classe de Graisse et Chasse du menu déroulant juste en dessous du Nom de style. Il est important que les nombres à côté des menus soient dans le bon ordre, puisque c’est de cette façon qu’Adobe organise ses menus de polices. Dans notre exemple, toutes les fontes ont la même Chasse (Medium/normal; 5), et des classes de Graisse croissantes (de Light à Extrabold: 300, 400, 500, 600, 700, 800). Pour les instances qui se retrouvent entre les deux extrémités, vous pouvez aussi ajouter des paramètres weightClass et widthClass avec des nombres entre ceux des deux extrémités. Lisez davantage sur ce sujet dans le tutoriel Nommer vos polices.
  3. Sélectionnez le Lien de style. Dans les romains, c’est-à-dire les caractères verticaux, ces cases sont habituellement laissées libres, à part évidemment le gras qui est le Gras du Régulier. Et chaque italique est l’Italique de sa contrepartie verticale, par exemple, Semibold Italic est l’Italique du Semibold. Seules exceptions, l’instance Italic est l’Italique du Regular, et Bold Italic est le Gras et l’Italique du Regular. Lisez davantage sur ce sujet dans le tutoriel Nommer vos polices.
  4. Sélectionnez des coordonnées de l’espace de design appropriées pour chacun de vos axes. Lisez davantage sur la répartition des graisses dans le tutoriel Multiple Masters, part 3.
  5. Je regrette de vous l’annoncer, mais plusieurs Paramètres personnalisés ne fonctionnent pas dans une instance OTVar (OpenType Font Variations), en particulier tous les post-traitements, comme les filtres. Si vous avez de tels paramètres dans votre instance, ils seront parfaitement ignorés par le logiciel. Pourquoi? Tout simplement parce qu’ils compromettent la compatibilité des contours.

Étape 5: exporter et tester votre police variable

Sélectionnez Fichier> Exporter… et cliquez sur l’onglet Polices variables:

Si vous avez le dernier Adobe Illustrator ou Adobe Photoshop CC 2108, vous pouvez exporter dans le dossier Adobe Fonts. Sélectionnez ensuite la police dans le panneau Caractère du logiciel Adobe et ouvrez le menu pop-up avec curseur afin d’expérimenter avec l’axe de la Graisse:

Une autre façon de tester votre police variable est de déposer le fichier de la police dans une des sensationnelles pages web qui vous permettent de tester des fontes. Mes préférées sont la géniale Wakamai Fondue de Roel Niesken, Font Gauntlet d’ABC Dinamo (qui vous permet aussi d’animer votre fonte variable) et bien sûr la page de Laurence Penney, Axis Praxis:

Vous pourriez aussi installer les scripts de mekkablue et utiliser Test > Variable Font Test HTML, qui crée un fichier HTML à côté de la dernière exportation OTVar et ouvre le dossier dans le Finder. Il ne vous reste plus qu’à faire glisser le fichier dans un navigateur:

Astuce: au moment d’écrire ce texte, vos meilleurs choix de navigateurs sont les versions courantes de Chrome ou Safari, si vous utilisez macOS High Sierra plus récent, ou bien iOS 11 ou plus récent. Safari ne fonctionnera pas avec les versions OS plus anciennes. Firefox et Edge devraient aussi fonctionner, mais assurez-vous d’utiliser la toute dernière version du navigateur.

Si vous voulez utiliser un autre navigateur, allez voir le blogue d’Axis Praxis: Laurence Penney y explique où télécharger et comment faire les réglages pour les versions préliminaires de tous les navigateurs populaires. De plus en plus de navigateurs ajoutent le support des fontes variables, ou l’ont déjà, mais vous avez besoin de donner une permission de quelque chose quelque part. Laurence explique tout ça dans son blogue.

Contourner les bogues

L’implémentation OTVar d’Adobe est bogueuse. Donc si la police ne s’interpole pas correctement dans Illustrator ou Photoshop, ce n’est peut-être pas la faute de cette police en question. Les symptômes varient, et peuvent inclure les glyphes qui restent statiques et ne réagissent pas du tout aux changements de position de curseur, ou encore d’affreuses imperfections qui apparaissent durant les mouvements de curseur, comme ceci par exemple:

Si vous rencontrez ces problèmes, essayez différents points de départ pour vos contours. Nous avons découvert que cette astuce arrive parfois à contourner le bogue de rendu rencontré avec Illustrator. Dans tous les cas, si vous remarquez que le même accroc n’apparaît plus dans les navigateurs, et bien vous saurez que le problème n’est pas causé par votre police. Dans ce cas, il vaut mieux envoyer votre fichier de police au support Adobe accompagné d’un fichier .ai contenant un simple exemple type.

Un autre bogue d’implémentation embêtant est caché profondément dans le moteur de rendu de texte d’Apple, CoreText. Des positionnements de composantes sont mal calculés lorsque l’approche gauche change. Regardez comment ce a tréma glisse à droite bien plus qu’il ne le devrait:

Tous les environnements qui utilisent le rendu CoreText sont affectés par cela, ce qui comprend à peu près tous les navigateurs sur Mac. Dans ce cas, le mieux que vous pouvez faire est de vous assurer que tous les composés sont décomposés avant d’exporter. La meilleure façon de le faire est la suivante: ajoutez un paramètre Decompose Components in Variable Font dans *Fichier > Informations de police… > Police > Paramètres personnalisés. Il va sans dire que le fichier TTF résultant sera bien plus lourd, et inadéquat pour l’utilisation web jusqu’à ce que Apple corrige ce problème.

Nous avons rapporté le bogue à Apple, mais si vous avez un bon cas sous la main, svp informez-en Apple.

Mise à jour: Apple a corrigé ce problème. Assurez-vous de travailler à partir de la plus récente mise à jour de macOS 10.13.x, ou bien un nouveau macOS.

Voici un autre bogue avec le rendu Apple: l’axe Optical Size (opsz) est mal interprété dans Safari. À la position minimum (la plus à gauche) du curseur, c’est le rendu de la valeur maximum qui est affiché. Ce bogue est unique à Safari, et ne produit pas dans les autres navigateurs. Encore une fois, svp veuillez aviser Apple.

Il y a aussi un problème de rendu causé par le fait que les polices variables conservent leurs chevauchements. Pour être exact, ce n’est pas vraiment un bogue, mais vos utilisateurs penseront que c’est le cas. Si le pourtour d’une forme est dessiné par deux segments qui se superposent (partiellement), le lissage fera apparaître le bord plus foncé que le sont normalement des bords ‘nets’ dessinés avec un seul contour:

La seule solution pour remédier à cela est de tracer vos contours en faisant en sorte que le bord extérieur de votre forme est toujours ‘net’, c’est-à-dire, dessiné avec un seul tracé sur tout le contour de la forme. Comme ceci par exemple:

Dans la plupart des cas, vous serez en mesure de corriger cette situation en supprimant les chevauchements, puis en ouvrant les coins et en reconnectant les nœuds. Les deux fonctions, Ouvrir les coins et Reconnecter les nœuds sont accessibles à partir du menu contextuel d’une sélection de point(s): les nœuds angulaires individuels pour ouvrir les coins et les paires de nœuds angulaires pour les reconnecter.

Si vous utilisez ces fonctions fréquemment, il pourrait vous être utile de créer un raccourci clavier. Pour cela, nous avons ajouté les deux au menu Tracé > Autre. Définissez vos raccourcis dans Préférences système > Clavier > Raccourcis > Raccourcis de l’application > Glyphs. Note: Utilisez le bouton plus en bas de la fenêtre de droite pour ajouter l’application Glyphs si elle ne se trouve pas déjà dans la fenêtre.

Astuce: le script de mekkablue Paths > Rewire Fire vous aide à repérer les nœuds qui ont besoin d’être reconnectés. Il ne peut évidemment pas tous les trouver, mais habituellement la plupart des cas qui causent des bords qui ne sont pas nets comme ceux montrés précédemment. Vous voudrez utiliser l’option qui repère les ‘ nœuds au-dessus des segments de ligne’:

Optionnel: ajouter un master virtuel

Imaginez que vous ayez besoin d’un axe pour quelques glyphes seulement. Supposons que la hauteur de la barre transversale, ce qui concerne les lettres A, E, F, H, mais non pas S, D, J, O, etc., pas plus que les non-lettres, comme les chiffres, la ponctuation et les symboles. Cela n’aurait pas de sens de dessiner un nouveau master pour chacune des polices, n’est-ce pas? Une meilleure solution est d’introduire un master supplémentaire pour seulement ces glyphes qui ont une barre transversale. Et bien, pour des cas comme ceux-là, nous avons quelque chose qui s’appelle un Master virtuel:

  1. Sous Fichier > Informations de police… > Police, ajoutez un nouvel axe dans le champ valeur du paramètre personnalisé Axes. Comme ce n’est pas un axe standard, le nom que vous lui donnerez est arbitraire. Dans cet exemple, je suggère Crossbar Height et l’appellation de quatre lettres CRSB (si vous préférez le français, cela fonctionne aussi, avec, par exemple, Barre transversale et BATR:
  1. Dans le même onglet de la fenêtre, ajoutez un paramètre personnalisé Virtual Masters, et donnez-lui la valeur du master Light pour l’axe Weight, soit 50 dans notre exemple, ainsi qu’une valeur minimum pour la Crossbar Height/Barre transversale, disons zéro:
  1. Passez en revue tous les masters dans Fichier > Informations de police… > Masters, et assurez-vous que la coordonnée des axes pour Crossbar Height/Barre transversale n’est pas zéro, mais plutôt, par exemple, 100. L’idée est que les valeurs aient du sens, en quelque sorte, sémantiquement. Dans notre cas, zéro représente la position de la barre transversale la plus basse possible et 100 la position la plus haute possible.

Maintenant que le master virtuel est mis en place, vous pouvez dessiner la version basse de la barre transversale de chaque glyphe qui en a besoin:

  1. Ouvrez le glyphe en question dans l’aperçu Édition;
  2. Dans la palette Calques, dupliquez le calque Light avec le bouton Copier;
  3. Renommer la copie du calque {50, 0}, c.-à-d., les coordonnées entre accolades, séparées par une virgule suivie d’une espace, de l’espace de design de la graisse (50 représentant le master Light dans notre exemple) et de la hauteur de la barre transversale (0 représentant la position la plus basse de la barre transversale dans notre exemple).
  4. Changez maintenant le dessin pour ce à quoi devrait ressembler la lettre quand la hauteur de la barre transversale est à zéro:

Note: à moins de vouloir faire de minutieux ajustements, vous n’avez pas besoin d’ajouter un calque avec accolades pour le master gras. Dans les polices variables, les deltas (mouvements de points) des deux axes se complètent et peuvent être ajoutés pour former la variante grasse avec une barre transversale basse.

C’est tout. Maintenant, tout ce qu’il vous reste à faire est d’exporter, et d’essayer la police à nouveau dans Illustrator, Axis Praxis ou avec le script Variable Font Test HTML. Et voilà! un deuxième axe est disponible pour abaisser la barre transversale vers la ligne de pied:

En réalité, vous avons ajouté une seconde dimension à notre espace de design. Si vous faites cela, il est judicieux de garder les masters dans un arrangement rectangulaire, ou même mieux, légèrement glissés à la verticale ou à l’horizontale par rapport au master d’origine. Dans notre exemple, le master Bold est déplacé horizontalement vers le master Light (seules les premières coordonnées diffèrent) et le master avec la barre transversale basse est glissé verticalement (seules les deuxièmes coordonnées diffèrent). De cette façon, vous avez un meilleur contrôle, car vous pouvez atteindre n’importe quel point dans le rectangle de l’espace de design, tout simplement en ajoutant les deltas verticaux et horizontaux que vous avez créés en arrangeant les masters tels qu’il est décrit dans ce paragraphe.

Optionnel: origine

Seulement un ensemble de contours sont stockés dans la police. Les logiciels qui ne peuvent fonctionner avec les OTVar, afficheront uniquement ces ‘contours par défaut’. Cette solution par défaut est habituellement votre premier master. Vous pouvez cependant choisir un master par défaut qui soit différent. Pour ce faire, allez à Fichier > Informations de police… > Police et ajoutez un paramètre personnalisé Variable Font Origin. En tant que valeur, sélectionnez le nom d’un master:

Eh bien oui, ce doit être un master. Si vous voulez que l’une de vos instances soit l’origine, il vous faudra ajouter cette instance comme un master supplémentaire: sous Fichier > Informations de police… > Instances, sélectionnez l’instance que vous voulez définir comme l’origine, ouvrez le bouton Plus dans le coin en bas à gauche de la fenêtre, et sélectionnez Instance master du menu pop-up. Vous avez maintenant un master de plus dans Fichier > Informations de police… > Masters, que vous pouvez définir comme votre Variable Font Origin.

Deux choses à considérer:

  1. Apparence par défaut: une des idées fondamentales des fontes variables est que vous pouvez sélectionner votre instance la plus utilisée comme instance par défaut. Typiquement, il s’agit de Regular. Dans les Multiple Masters, il fallait dessiner les extrêmes de l’espace de design (c.-à-d., vos instances les moins utilisées) et tout ce qui se trouve entre les deux était interpolé. Une police variable peut aller dans la direction inverse: elle ne stocke que les contours les plus importants, quelque part vers le centre de l’espace de design, et toutes les autres instances en dérivent. Donc, pour des fontes d’ordinateur de bureau, prenez le Regular en tant qu’origine, ou quoi que ce soit que l’utilisateur pourrait anticiper comme ‘apparence par défaut’ de votre famille de caractères. Si tout le reste échoue, ce sera cette variante à laquelle l’utilisateur aura accès.

  2. Taille du fichier: sélectionner un master au milieu augmentera sans aucun doute le nombre de vos deltas de point, et par le fait même, la taille du fichier. Sur un axe unique, le nombre de deltas sera fort probablement doublé, voire plus. En d’autres mots, pour les fontes web, il est préférable de sélectionner un des masters dans l’une des extrémités de l’espace de design,, car vous voudrez garder la taille du fichier et le temps de chargement respectivement relativement petit et court.

Optionnel: emplacement des axes

Dans Fichier > Informations de police… > Masters, vous pouvez ajouter un paramètre Axis Location. Il vous permet de changer la coordonnée du master sur l’axe. Cela peut être pratique si vous avez besoin que des valeurs différentes de celles entrées pour l’interpolation dans les masters et les instances soient exposées à l’utilisateur.

Dans notre exemple, vous pourriez argumenter qu’un curseur allant de 50 à 200 pourrait confondre les utilisateurs de votre police. En effet, il vaut mieux que tous vos curseurs soient de 0 à 100, comme un pourcentage. C’est pourquoi vous allez ajouter un paramètre Axis Location aux deux masters: Weight de 0 pour le master Light et Weight de 100 pour le Bold.

Note: Si vous ajoutez des paramètres Axis Location, en réalité vous vous trouvez à changer les axes qui seront exportés dans votre police variable. Ce qui veut dire que vous avez aussi à adapter les coordonnées de l’axe affecté dans le paramètre du Master virtuel, si vous en avez un. Cependant, ne changez pas les nombres dans les calques avec accolades et crochets, puisque ces calques adhèrent à l’espace de design créé par les valeurs d’interpolation originales.

Restrictions

Certaines choses auxquelles vous êtes habitué ne fonctionnent pas tout à fait de la même façon dans une fonte variable.

  1. J’ai mentionné brièvement ci-haut que tous les post-traitements avec des paramètres personnalisés dans Fichier > Informations de police… > Instances sont ignorés, car ils sont susceptibles de briser la compatibilité des contours ou la cohérence du jeu de glyphes. Les filtres et tous les paramètres qui modifient les noms sont inclus dans cette restriction.
  2. Les composantes en coin fonctionnent à moins qu’elles ne brisent la compatibilité des contours. Cependant, elles fonctionnent différemment: dans les fontes variables, elles sont appliquées avant l’interpolation, alors qu’un réglage Multiple Master classique, elles sont insérées après coup.
  3. Les calques accolades et crochets fonctionnent tous les deux, mais pas les deux ensemble dans le même glyphe. Vous pouvez avoir des glyphes avec des calques accolades et d’autres glyphes avec des calques crochets, mais pas des glyphes avec à la fois des calques accolades et des calques crochets. Désolée, nous travaillons là-dessus.
  4. Les calques crochets ne sont pas des composés. Il y a une solution sous forme de script pour cela cependant. Voyez plus loin.

Pas vraiment facultative: la table STAT

Dans les nouvelles polices, ce qui inclut toutes les polices variables, les informations de noms sont stockées dans la table STAT. STAT est l’abréviation de Style Attributes, ce qui inclut, entre autres choses, les informations à propos des axes, des instances, ainsi que ce qui est appelé chaînes d’affichage, ou chaînes de noms: ce sont des noms pour les sections sur un axe. Par exemple, un axe de graisse peut être sectionné en un Light, Regular, Medium, Semibold et Bold; un axe chasse en Condensed, Regular et Extended.

L’idée derrière cela est qu’une application peut nommer une instance courante de l’utilisateur, peu importe les réglages des curseurs. En effet, dans une mise en place avec des axes multiples, vous obtenez une possibilité de noms de champs n dimensionnels. Par exemple, si votre police a des axes graisse et chasse, vous obtenez des colonnes de graisses et des rangées de chasses, comme dans la table qui suit. Afin de nommer la combinaison d’une graisse dans la section Bold avec une chasse dans la section Condensed, un logiciel peut tout simplement combiner les chaînes d’affichage, et tadam, nous obtenons ‘Bold Condensed’:

Une chaîne d’affichage est déclarée élidable (soit effaçable) si elle est mise de côté lorsqu’elle est combinée avec d’autres chaînes d’affichage. Habituellement, c’est le cas pour les noms avec des styles par défaut comme ‘Regular’, ‘Normal’, ou les autres noms du genre. La graisse semibold combinée avec la chasse normale est normalement simplement appelée ‘Semibold’ et non pas ‘Semibold Regular’; ou encore la variante normale combinée avec le style italique est simplement nommée ‘Italic’ au lieu de ‘Regular Italic’. C’est pourquoi le nom d’affichage ‘Regular’ est considéré élidable.

Habituellement, Glyphs s’occupe de ces choses-là de façon très futée en analysant les noms des instances prédéfinies. Cependant, si vous trouvez des instances la table STAT qui ne sont pas correctement stockées dans le fichier OTF, vous pouvez les contrôler avec ces deux paramètres dans Fichier > Informations de police… > Instances:

  • Style Name as STAT entry: prend le nom de style de l’instance en tant que chaîne d’affichage combinable pour la matrice d’un axe. En tant que valeur, utilisez l’appellation d’axe de quatre lettres qui s’applique à la chaîne d’affichage. Ne faites cela que dans les instances non normales sur un axe et normales sur tous les autres. Les attributs normaux ont des noms élidables et n’apparaissent pas dans le nom de style (p. ex., ‘Semibold’ ou ‘Condensed’). Exemple: dans l’instance Light, utilisez le paramètre avec la valeur wght, puisque Light est une valeur sur l’axe de la graisse.

  • Elidable STAT Axis Value Name: déclare le nom de style de l’instance élidable pour l’axe spécifié dans la valeur du paramètre. En tant que valeur, utilisez l’appellation de quatre lettres de l’axe respectif. Typiquement, vous ajouterez ce paramètre dans le style normal et vous en ajouterez un pour chacun des axes dont le nom est une chaîne d’affichage élidable. Exemple: une instance Regular a deux paramètres Élidables…, l’un avec la valeur de paramètre wght, et l’autre, wdth.

Astuce de pro: la table STAT gagne de plus en plus d’importance. Dans un futur rapproché, plusieurs applications nécessiteront une de ces tables afin de pouvoir charger la police. Ne me demandez pas comment je la connais, mais croyez-moi tout simplement quand je vous dis que si vous voulez vendre (ou continuer de vendre) des polices pour Windows, vous voulez équiper toutes vos polices avec STAT. Indice, indice: L’axe italique (ital) sera inclus afin de différencier les polices verticales (valeur de 0) et les italiques (valeur de 1).

Associations d’axes

Une chose de plus à propos des axes. Évidemment, les axes commencent quelque part et finissent quelque part. Dans une interface utilisateur, le début et la fin d’un axe peuvent être (et sont habituellement) représentés par la position la plus à gauche et la position la plus à droite du curseur. Tout ce qui se trouve entre les deux, bien sûr, est réparti uniformément entre ces deux extrêmes. En d’autres mots, afin d’afficher 25 % de l’interpolation, vous glissez le curseur au quart, pour 50% de l’interpolation, vous le placez exactement au milieu, et ainsi de suite. Cela a du sens, n’est-ce pas?

Mais attendez une minute. En êtes-vous sûr? En y pensant un peu plus, cela n’a du sens seulement si les instances que l’utilisateur a besoin de pouvoir accéder sont également réparties (plus ou moins) uniformément sur toute la longueur de la glissière. Pour les besoins de cette discussion, imaginons une situation où les positions importantes sont toutes entassées dans une petite partie de la longueur de la glissière et une grande partie de la glissière n’est pas très utile à l’utilisateur.

En fait c’est le cas pour l’axe de la graisse, soit Weight, (badge d’axe wght). Dans (presque toutes) les interpolations, les nombreux styles de graisse ne sont pas répartis uniformément. Selon la maigreur du master le plus léger et la corpulence du plus gras, les styles se retrouveront en groupes plus ou moins importants à différents ‘points focaux’ le long de l’axe. Par exemple, l`interpolation de very thin à un bold pas exagérément gras, produira des styles concentrés vers la position maigre du curseur:

Pourquoi? Et bien pour la simple raison qu’en principe, des mouvements équidistants du curseur correspondent à des changements identiques en unités, peu importe vous vous arrêtez sur la glissière. Par exemple, un certain aller-retour par ici modifie le design de 10 unités, et un certain aller-retour par là modifie également le design de 10 unités. Cependant, l’ajout de 10 unités à l’épaisseur du fût est beaucoup pour une graisse Hairline, qui n’a que quelques unités de largeur. Par contre, la même quantité est pratiquement négligeable pour une graisse Medium ou encore Semibold, car par rapport à l’épaisseur du fût, il ne s’agit que d’un petit changement.

C’est l’effet contraire qui se produit si vous commencez avec un Light pas trop extrême, ou encore un Book ou un Regular, à une extrémité et que vous vous dirigez vers un Ultra Heavy très épais à l’autre extrémité de la glissière. Les styles se concentrent maintenant à l’extrémité grasse du spectre:

Comment est-ce possible? En fait, c’est la situation inverse de la précédente, car ce qui change cette fois-ci est le blanc dans les lettres. Pour un dessin très très gras, l’ajout ou la soustraction de 10 unités au blanc est beaucoup car il reste si peu de blanc. Pourtant, dans l’éventail ‘normal’ des graisses entre un Book et un Semibold standards, la même situation se produit: les styles sont plus éloignés.

En conclusion, il est maintenant clair que l’interpolation d’un très maigre à un très gras résultera habituellement en des concentrations de styles vers les deux extrémités du spectre:

Mais d’un autre côté, les utilisateurs ne se soucient pas de nos problèmes de distribution, n’est-ce pas? Pour eux, l’accès à différents styles fonctionne mieux s’ils sont distribués uniformément le long de l’axe, comme ceci:

En d’autres mots, il nous faut en quelque sorte traduire les positions accessibles à l’utilisateur qui sont uniformément distribuées en des positions distribuées de façon appropriée, comme ceci:

C’est ce qui se nomme l’association d’axes. Nous dressons un schéma qui associe ce que l’utilisateur voit sur l’axe, à ce que l’utilisateur obtient bel et bien sur l’axe. Nous pouvons réussir une telle association avec le paramètre Axis Mappings sous Fichier > Informations de police > Police > Paramètres personnalisés. Mais comment réaliser cela? Facile! Suivez ces étapes:

  1. Déterminez les extrêmes sur l’axe de la graisse (soit Weight) c’est-à-dire les positions de votre master le plus maigre et de votre master le plus gras. Par exemple, nous avons un projet avec un master Light Master à 50 et un master Bold à 200.
  2. Déterminez le nombre d’instances le long de l’axe de la graisse. Dans notre exemple, disons que nous avons six instances: Light, Regular, Medium, Semibold, Bold et Extrabold.
  3. Calculez la taille des espaces entre les styles: divisez la différence entre les extrêmes par le nombre de styles moins un. P. ex.: (200−50)÷(6−1)=30. (Moins un car entre six styles se trouvent cinq espaces.)
  4. Calculez les positions du curseur accessibles à l’utilisateur qui sont uniformément distribuéesen commençant par le plus maigre, et en ajoutant de façon répétée la valeur de l’espace jusqu’a ce que vous atteindrez le plus gras. P. ex.: Light=50, Regular=80, Medium=110, Semibold=140, Bold=170 et Extrabold=200.
  5. Ajoutez maintenant un paramètre Axis Mappings dans Fichier > Informations de police > Police > Paramètres personnalisés et inscrivez les valeurs désirées:
  • Sélectionnez l’axe de la graisse (Weight) dans la colonne de gauche, et ajoutez six paires d’association à l’aide du bouton plus, une paire pour chacun des styles.
  • Dans la colonne de gauche, placez les positions du curseur accessibles à l’utilisateur que nous avons calculées précédemment.
  • Dans la colonne de droite, ajoutez les positions dd the appropriately distributed design positions, or in other words, the actual Weight interpolation values from Fichier > Informations de police > Instances.

Si vous avez tout bien exécuté, vous aurez quelque chose comme ceci:

Astuce: assurez-vous d’associer les extrêmes à elles-mêmes. Si vous n’avez pas de styles positionnés aux extrêmes les plus éloignées (dans notre cas, Light à 50 et Extrabold à 200), ajoutez des associations à ces endroits malgré tout, avec les mêmes valeurs dans les deux colonnes.

Vous pouvez également changer le paramètre pour un affichage visuelle et ajuster l’association d’axes. Ajoutez des p0ints d’associations additionnels en cliquant sur les lignes entre les points. Sélectionnez un point afin de modifier ses coordonnées dans le bas: un nombre accessible à l’utilisateur à gauche, la valeur réelle du design à droite. Faites glisser un point existant de haut en bas afin de changer sa valeur de design.

Techniquement, cela crée une soi-disant table de variations d’axes ou avar. Elle ‘varie’ l’axe.

Astuce de pro: la spécification stipule que les valeurs de l’axe de la graisse devraient se conformer à la liste de valeurs de l’usWeightClass, c.-à-d., 100=Hairline, 200=Thin, 300=Light, 400=Regular, 500=Medium, 600=Semibold, 700=Bold, 800=Extrabold et 900=Heavy. Pour y arriver, tout ce que vous avez à faire est de corréler vos positions de masters à ces valeurs, et d’utiliser ces valeurs pour le paramètre Axis Location dans Fichier > Informations de police > Masters. Dans notre exemple, nous ajouterions un paramètre Axis Location pour le master Light Master avec une graisse de 300 (car cela corrèle à l’instance Light), et un autre pour le master Bold avec une graisse de 800 (car cela corrèle à l’instance Extrabold).

Habituellement, les associations d’axes ne créeront que de subtils changements à la façon dont votre police se comportera lorsque vous déplacez le curseur d’une extrémité à l’autre. Il sera donc difficile de vérifier si tout fonctionne comme vous le voulez. C’est pourquoi nous avons besoin d’un outil spécial afin d’inspecter la table avar. Par chance, Samsa de Laurence Penney est un tel outil: faites glisser la police sur la page, puis dans l’inspecteur des Axes, activez l’option Show avar:

Faites ensuite glisser le curseur afin de visualiser la flèche verte qui indique comment la position visible du curseur (en haut) correspond à la distribution réelle du design (en bas). Vous pouvez obtenir de l’information de nerd comme vous l’aimez si vous déplacez le curseur sur la visualisation et attendez que l’infobulle apparaisse:

Pour vous expliquer, les valeurs avar varient entre −1.0, 0.0 et+1.0. Glyphs placera habituellement votre interpolation entre 0.0 et +1.0. En d’autres mots, dans avar, votre master light correspondra à 0.0, et votre master bold à +1.0. Par exemple, l’image de l’infobulle ci-dessus dit que la position actuelle du curseur, 550.4 (à 0.562988... ou 56.3%) correspond à la position actuelle du design, 540.38 (à 0.550476… ou 55%), à mi-chemin entre Medium (500) et Semibold (600).

Scripts pratiques

Dans la collection des scripts de mekkablue (le lien inclut la notice readme avec les instructions d’installation), vous retrouverez un nombre de scripts utiles pour vous aider à faire fonctionner votre projet de police variable:

  1. Interpolation > Composite Variabler: duplique à nouveau les calques crochets des composantes dans les composés qui les utilisent. Fait égalment fonctionner les calques accolades dans les composés. P. ex., si vous avez un g bas de casse avec un calque accolade qui passe de la forme à une panse et une boucle fermée à la forme à une panse et une boucle ouverte lorsqu’il devient plus gras, vous aurez besoin de dupliquer à nouveau le calque crochet dans les composés gcircumflex, gcommaaccent et gbreve. Vous aurez tout de même besoin de décomposer les calques accolades après avoir utilisé le script:

Mise à jour: les calques accolades ne posent pas problème dans les composés.

  1. Kerning > Zero Kerner: ajoute des groupes de crénage avec la valeur zéro pour les paires qui manquent un master toutefois présent dans les autres. Ce script aide donc à préserver le crénage interpolable dans les exportations OTVar. Utilisez-le si vous vous apercevez que du crénage disparaît, en particulier du jumelage de crénage qui n’existe que dans certains masters.

Mise à jour: Zero Kerner ne devrait plus être nécessaire à partir de Glyphs 2.6.5, version 1300 et les versions subséquentes.

Ressources additionnelles

Vous voulez approfondir davantage le sujet et en savoir encore plus sur les polices variables? Nous avons des liens pour vous.

Note de la traductrice: bien qu’elles soient en anglais, ces ressources contiennent une variété d’informations et vous y trouverez assurément votre compte même si vous n’arrivez pas à tout comprendre.


Police de la table STAT: Plantago de Viktor Solt-Bittner et Schriftlabor.
Remerciements à Rob McKaughan pour ses commentaires et conseils à propos de ce tutoriel.

Mise à jour 2018-03-16: Correction d’erreurs typographiques (merci à Jeff Kellem).
Mise à jour 2018-06-22: Clarification de la formulation pour l’exemple des valeurs (merci Karl).
Mise à jour 2018-11-20: Mise à jour du nom du paramètre Variable Font Origin.
Mise à jour 2019-02-15: Ajout de liens pour Font Gauntlet et Wakamai Fondue. Mise à jour du script test et de l’information de support du navigateur. Ajout de Contourner les bogues.
Mise à jour 2019-03-04: Correction d’erreurs typographiques et remplacement de Variation Fonts par Variable Fonts dans la fenêtre d’exportation (merci Nathalie Dumont).
Mise à jour 2019-03-13: Ajout de Ressources additionnelles.
Mise à jour 2019-03-20: Correction d’erreurs typographiques, remplacement de Add Instance as Master par Instance as Master et modification du lien pour le site V-Fonts de Nick Sherman (merci Nathalie Dumont).
Mise à jour 2019-12-04: ajout d’une section sur le problème de lissage.
Mise à jour 2019-12-09: correction de quelques formulations et erreurs typographiques dans la traduction française.

Traduction française de Nathalie Dumont.