Hinting: le hinting PostScript automatique

  • by Rainer Erich Scheichelbauer
  • Tutorial
  • – Modified on

Ce que le hinting peut et ne peut pas faire

Le hinting PostScript est une technologie qui permet à une police basée sur le format CFF d’apparaître plus cohérente et uniforme dans un environnement de faible résolution. Cela s’effectue en insérant des ‘hints’ dans les données vectorielles: elles aident le rastériseur (le logiciel qui crée l’image pixel de vos formes de lettres) à déterminer si quelque chose est un trait important et doit apparaître même si seulement quelques pixels sont disponibles pour afficher le glyphe en entier.

Certaines personnes pensent que le hinting est une question de préserver les formes à l’écran. En fait c’est tout le contraire. Le hinting est une question de déformer les formes des lettres pour qu’elles s’ajustent mieux à la grille de pixels. La recherche a démontré que la lisibilité augmente si les formes sont nettes et consistantes, plutôt que si elles apparaissent floues sous l’effet de l’anticrénelage. Et une image de lettres à l’écran plus nette et plus consistante est la raison d’être du hinting.

Le hinting PostScript vise deux objectifs dans le cas des faibles résolutions: pour commencer, une apparence plus consistante des traits, i.e., le même nombre de pixels est utilisé pour des traits de largeurs semblables. Le deuxième objectif est d’assurer des mesures verticales plus consistantes, c’est-à-dire, une ligne de pied, une hauteur d’x, une hauteur des capitales, etc. qui sont nettes.

Le hinting PostScript ne normalise pas les chasses des glyphes. Vous pourrez donc obtenir des rendus pixels différents pour la même lettre tapée plusieurs fois. Prenez ce n par exemple:

Il s’agit d’un agrandissement du même n tapé plusieurs fois. Vous pouvez voir que les deux premiers n ont chacun une contreforme de quatre pixels, alors que les n suivants ont une contreforme de cinq pixels. C’est bien, car la largeur totale de la ligne doit être maintenue, et si tous les n avaient une contreforme de 4 pixels, la ligne serait trop courte, et si tous les n avaient des contreformes de 5 pixels, la ligne seraient trop longue.

Avons-nous besoin de hinting? Et pouvons-nous avoir du hinting?

Vous avez toujours l’option de laisser une appli qui s’appelle le ‘autohinteur’ analyser votre police et insérer ces hints automatiquement. Un tel autohinteur est intégré dans Glyphs.

Mais, avant de vous en aller et laisser votre police être hintée automatiquement, posez vous la question: votre police a-t-elle besoin de plus d’uniformité à basse résolution? De nombreux designs scripts ou d’affichage n’en ont pas besoin. Ne hintez surtout pas les polices qui sont intentionnellement irrégulières. En particulier dans les cas de contours complexes, il n’est vraiment pas conseillé de faire du hinting.

Allez de l’avant seulement si votre design possède des caractéristiques de design qui se répètent constamment. Par exemple, un fût bas de casse qui est le même dans toutes les lettres bas de casse telles b, d, f, h, i, j, k, l, m, n, p, q, r, t, et u.

Et il y a plus. Le hinting a ses exigences:

  • Toutes les directions de tracés doivent être correctes, Tracé > Corriger la direction du tracé (Cmd-Shift-R) peut vous aider.
  • Les points extrêmes doivent avoir été mis en place, à tout le moins sur les fûts qui sont supposés recevoir un hint de fût; Tracé > Ajouter les extrêmes ou encore Shift-cliquer sur un segment avec l’outil Plume ℗ ajoute les extrêmes qui manquent.
  • Vos tracés doivent être simples. Les effets spéciaux, les caractères éclairés, en zigzags, les polices contours? Pas de hinting dans ces cas.
  • Votre design doit avoir des mesures verticales constantes avec des zones de dépassement régulières, et des largeurs de fûts relativement constantes.

Lisez davantage sur les bons tracés si ce n’est déjà fait.

Mettre en place le hinting automatique

Supposons que votre design possède tous les critères de constance décrits ci-haut. Le hinteur automatique peut donc faire sa magie. Par contre, il lui faut quelques informations. Plus précisément, il a besoin de savoir deux choses: les valeurs standards de fûts qui sont bien représentatives et des zones d’alignement également représentatives (bref, fûts et zones). Ces valeurs sont parfois appelées hints de police ou hinting global de la police, contrairement au hinting de glyphes que le hinteur automatique devrait insérer pour nous.

Vous pouvez définir les fûts et les zones dans Fichier > Informations de police… > Masters (Cmd-I). Chaque master a ses propres fûts et zones, car il faut les interpoler:

Fûts standards

Suivez les étapes suivantes pour définir de parfaits fûts standards:

  1. Pour commencer, mesurez les épaisseurs de vos fûts verticaux et horizontaux ainsi que les panses puis entrez les valeurs dans les champs pour les Fûts verticaux et les Fûts horizontaux, respectivement. Les fûts horizontaux ont l’épaisseur des traverses du e bas de casse, de la lettre capitale A et des empattements. Un fût vertical est de l’épaisseur d’un n bas de basse, d’un H capitale ou encore de la partie verticale d’un O capitale.
  2. Prenez aussi peu de valeurs que possible et fusionnez les valeurs proches les unes des autres. La raison est que à basse résolution vous voulez que les fûts semblables aient le même nombre de pixels. À la fin, vous ne devriez avoir pas plus de deux valeurs de H et deux valeurs de V, encore mieux si vous n’avez qu’une pour chaque lettre. Dans le pire des cas, vous pouvez avoir trois valeurs si elles sont vraiment très différentes.
  3. Si vous entrez plus d’une valeur, la première valeur de fût que vous entrez est plus importante, choisissez-la donc judicieusement. Dans la plupart des cas, ce sera votre épaisseur de fût des minuscules, mais bien sûr, ce qui compte c’est que votre intention de design soit respectée.

Répétez cette étape pour chaque master que vous avez dans votre police. Assurez-vous que le nombre et l’ordre des valeurs de fûts soient compatibles dans tous les masters, afin que l’interpolation fonctionne.

Zones d’alignement

Une zone d’alignement est une surface rejointe par plusieurs formes qui ont des hauteurs-semblables-mais-pas-exactement-pareilles (ou profondeur, selon le cas). Pensez aux bords droits, aux empattements concaves, et aux dépassements optiques des formes rondes:

À basse résolution, vous voulez que toutes ces formes s’arrêtent aux mêmes hauteurs de pixels. En d’autres mots, vous voulez des bords nets et que les dépassements soient supprimés. Tout ce qui doit être aplati (‘aligné’) pour faire un bord net doit être inclus dans une zone.

Une zone a une position et une taille. La position est le bord plat et la taille devrait être assez grande pour inclure tout ce qui doit être aplati pendant la suppression des dépassements. Les formes touchent à la position ou encore la dépassent d’une mesure pas plus grande que la taille de la zone. Notez que la taille est positive lorsque le dépassement est au-dessus des bords plats; p. ex., au-dessus de la hauteur d’x, des capitales, des petites capitales, des rondeurs ou des ascendantes, ou encore au-dessus du haut des chiffres supérieurs ou inférieurs. Elle est négative lorsque le dépassement est en-dessous des bords plats; p. ex., en-dessous de la ligne de pied et des descendantes, ou encore sous le bas des chiffres supérieurs et inférieurs.

  1. Assurez-vous que vos mesures verticales sont définies correctement: hauteur des ascendantes, hauteur des capitales, hauteur d’x, longueur des descendantes. Les valeurs entrées devraient ignorer les zones de dépassement. Dans l’incertitude, prenez la valeur la plus proche de la ligne de pied.
  2. Si vous avez des petites capitales, vous voudrez ajouter le paramètre personnalisé smallCapHeight et entrer leur hauteur comme valeur de paramètre.
  3. Pour les polices de caractères indo-aryennes et arabes, vous pouvez ajouter un paramètre shoulderHeight pour une zone d’alignement supplémentaire.
  4. Appuyez maintenant sur le bouton Mettre à jour (flèche grise circulaire) à côté du champ Zones d’alignement. Glyphs essaiera de deviner les valeurs en se basant sur vos mesures verticales et les dépassements qui se trouvent dans votre master de police. Pour les dépassements, Glyphs mesurera quelques glyphes comme les o, f, et g bas de casse, la lettre capitale O et la petite capitale o.sc. Si ces lettres ne sont pas présentes, la taille sera réglée par défaut à 16 unités.
  5. C’est une bonne idée de vérifier si Glyphs a bien évalué la taille des zones. Allez donc voir rapidement dans vos glyphes pour vous assurer que les dépassements sont bien contenus dans les zones. Si l’option Affichage > Afficher les mesures (Cmd-Shift-M) est activée, Glyphs et surlignera les nœuds qui sont dans les zones.
  6. Lorsque vous adaptez vos zones, gardez-les aussi petites et resserrées que possible. Comme règle de base, une zone ne devrait pas dépasser 25 unités.
  7. Vous pouvez avoir jusqu’à 6 zones supérieures (valeurs positives) et 6 zones inférieures incluant la zone de ligne de pied (valeurs négatives). Aussitôt que vous voulez définir une zone, vous devez aussi définir la zone de ligne de pied.
  8. L’incontournable zone de ligne de pied doit être placée à zéro et avoir une mesure de taille négative.
  9. Les zones ne peuvent pas se chevaucher. Il doit y avoir au moins une unité de distance entre n’importe quelles zones. (Pour être plus précis, la distance doit être équivalente à au moins 1 + 2 × blueFuzz. Lisez le chapitre blueFuzz plus loin pour plus de détails.)

Encore une fois, répétez ces étapes pour tous les masters de votre police. Assurez-vous que le nombre et l’ordre des zones sont les mêmes pour tous les masters. Puisque les zones ne doivent pas se chevaucher, une zone ne doit jamais en contourner une autre lors de l’interpolation.

Quelques trucs:

Afin de vérifier la constance de la hauteur des lettres, considérez l’extension Afficher les hauts et les bas. Installez-la via Fenêtre > Gestionnaire d’extensions puis après avoir redémarrer Glyphs, activez-la via Affichage > Afficher les hauts et les bas. Elle aide à repérer les bouts de lettres qui dépassent les zones:

Mark Frömberg (@mark2mark) a écrit un script qui permet de définir toutes les zones à la fois. Vous le trouverez dans son répertoire de scripts sous Font > Set Size for Alignment Zones.

Si dans Fichier > Informations de police… > Autre > Subdivision, vous avez un réglage qui est différent de 1 (c.-à-d., si vous utilisez des décimales dans vos coordonnées), vous devrez augmenter la taille de chaque zone d’une unité dans chacune des directions. P. ex., une zone de hauteur d’x à la position 500, de taille 15, devra être déplacée à la position 499, et avoir une taille de 17. Seule la zone de ligne de pied doit être maintenue à la position zéro. Dans le répertoire de scripts de mekkablue, vous trouverez le script Hinting > BlueFuzzer qui vous aide à faire exactement cela, au cas où vous en auriez besoin:

Le nom du script provient de la fonction blueFuzz décrite plus loin. Dans le même répertoire, vous trouverez plusieurs autres scripts bien pratiques dans le sous-menu Hinting.

Appliquer le hinting automatique

Maintenant que tout est mis en place, vous pouvez actuellement procéder au hinting automatique en l’activant dans le dialogue Fichier > Exporter…. Bien entendu, comme le hinting automatique PostScript est une technologie PostScript, elle s’applique seulement aux polices CFF, et non pas aux polices TrueType. Vous voudrez donc désactiver l’option TTF en même temps:

Vous pouvez aussi forcer l’activation ou la désactivation du hinting automatique en outrepassant les réglages de la fenêtre d’exportation, avec un paramètre personnalisé Hinting automatique dans Fichier > Informations de police… > Instances.

C’est tout! Pas si mal n’est-ce pas?

Tester votre hinting

Maintenant, testez votre police avec l’option Hinting automatique activée. Vous pouvez tester votre hinting dans des applications qui ont un engin de rendu qui respecte les hints PostScript. En général, Mac OS X ignore le hinting, vous devez donc vous rabattre sur les logiciels Adobe. Je vous recommande InDesign.

Pour avoir un meilleur aperçu des pixels, vous pouvez utiliser le zoom d’écran intégré de Mac: allez à Préférences Système > Accessibilité > Réduire/agrandir, et de là, activez l’option Faire défiler avec touches de modif. pour zoomer, puis sélectionnez Lisser les images:

Vous pouvez ensuite maintenir la touche Ctrl enfoncée, ou la combinaison de touches que vous avez définie pour le défilement, puis zoomez vers l’avant et l’arrière, pour agrandir les pixels de l’écran à la taille souhaitée. Sur un pavé tactile d’un MacBook, vous pouvez faire un défilement de fenêtre en glissant deux doigts vers le haut et le bas.

Pour vous donner un exemple, voici à quoi ressemble Henriette des Typejockeys, sans hinting, dans InDesign:

Même police, même texte, même appli, mais cette fois avec hinting:

Notez que le texte apparaît plus net, il y a moins de flou et les fûts ainsi que les hauteurs des lettres apparaissent plus consistants.

blueScale

Dans Fichier > Informations de police… > Police, vous pouvez utiliser le paramètre personnalisé blueScale afin de déterminer le corps de la police maximal pour la suppression des zones de dépassement. Plus précisément, blueScale contrôle la taille d’PPC en dessous de laquelle les zones sont aplaties. En d’autres mots: à quelle taille de pixel la suppression des zones de dépassement s’arrête-t-elle? À la taille blueScale et plus grande, les dépassements dans les zones d’alignement seront affichés avec une taille d’au moins un pixel. La valeur blueScale est calculée ainsi: (taille PPC × 72 ÷ 300 − 0,49) ÷ 240. La taille UPC maximale possible dépend de la taille de vos zones d’alignement. Elle est calculée comme suit: (0,49 + 240 ÷ taille de la zone la plus large en unités) ÷ 72 × 300.

Note: PPC signifie Pixels par cadratin et représente le corps de la police en pixels, soit le nombre de pixels utilisés pour l’affichage d’un cadratin, d’où le nom. Par défaut, un cadratin est 1000 unités de police de caractères. Cependant, vous pouvez définir une valeur différente sous Fichier > Informations de police… > Police > Unités par cadratin. La valeur PPC est équivalente au corps à 72 ppp, qui est la résolution que macOS et les applis Adobe apps prennent en compte pour les écrans qui ne sont pas de la technologie Rétina.

Exemple: votre zone la plus grande est de 18 unités de profondeur. Théoriquement, cela signifie que, l’affichage des dépassements peut être suspendu jusqu’à une taille de (0,49 + 240 ÷ 18) ÷ 72 × 300 = 57 PPC, en d’autres mots, les dépassements peuvent être supprimés pour toutes les tailles jusqu’à 56 PPC inclusivement. En d’autres mots, les dépassements peuvent être supprimés pour toutes les tailles de 56 PPC et plus petites. Disons que vous voulez supprimer les dépassements de 40 PPC et moins, et ainsi les dépassements seront visibles à partir de 41 PPC en montant. Cette taille est possible puisque elle est inférieure que 56/57 PPC que nous avons calculé, c’est-à-dire, nous pouvons supprimer les dépassements jusqu’à 56, mais nous avons choisi de ne le faire que pour 40 PPC et moins. Tout ce qu’il vous suffit de faire est de définir votre paramètre blueScale à une valeur correspondant à la première taille de pixel qui doit afficher les dépassements avec au moins un 1 pixel: (41 × 72 ÷ 300 − 0,49) ÷ 240 = 0,03896.

Les formules mathématiques vous effraient? Pas de problème, voici un tableau bien utile pour vous aider à trouver la valeur blueScale qu’il vous faut pour votre police (les instructions suivent):

L’affichage des dépassements commence à PPC (=corps à 72 ppp) Corps à 96 ppp (Windows) Corps à 144 ppp (Rétina) Taille maximale des zones d’alignement valeur blueScale dans Informations de police > Police
20 px 15 pt 10 pt 55 u 0,01796
21 px 16 pt 10 pt 52 u 0,01896
22 px 16 pt 11 pt 50 u 0,01996
23 px 17 pt 12 pt 47 u 0,02096
24 px 18 pt 12 pt 45 u 0,02196
25 px 19 pt 12 pt 43 u 0,02296
26 px 20 pt 13 pt 41 u 0,02396
27 px 20 pt 14 pt 40 u 0,02496
28 px 21 pt 14 pt 38 u 0,02596
29 px 22 pt 14 pt 37 u 0,02696
30 px 22 pt 15 pt 35 u 0,02796
31 px 23 pt 16 pt 34 u 0,02896
32 px 24 pt 16 pt 33 u 0,02996
33 px 25 pt 16 pt 32 u 0,03096
34 px 26 pt 17 pt 31 u 0,03196
35 px 26 pt 18 pt 30 u 0,03296
36 px 27 pt 18 pt 29 u 0,03396
37 px 28 pt 18 pt 28 u 0,03496
38 px 28 pt 19 pt 27 u 0,03596
39 px 29 pt 20 pt 27 u 0,03696
40 px 30 pt 20 pt 26 u 0,03796
41 px 31 pt 20 pt 25 u 0,03896
42 px 32 pt 21 pt 25 u 0,03996
43 px 32 pt 22 pt 24 u 0,04096
44 px 33 pt 22 pt 23 u 0,04196
45 px 34 pt 22 pt 23 u 0,04296
46 px 34 pt 23 pt 22 u 0,04396
47 px 35 pt 24 pt 22 u 0,04496
48 px 36 pt 24 pt 21 u 0,04596
49 px 37 pt 24 pt 21 u 0,04696
50 px 38 pt 25 pt 20 u 0,04796
51 px 38 pt 26 pt 20 u 0,04896
52 px 39 pt 26 pt 20 u 0,04996
53 px 40 pt 26 pt 19 u 0,05096
54 px 40 pt 27 pt 19 u 0,05196
55 px 41 pt 28 pt 18 u 0,05296
56 px 42 pt 28 pt 18 u 0,05396
57 px 43 pt 28 pt 18 u 0,05496
58 px 44 pt 29 pt 17 u 0,05596
59 px 44 pt 30 pt 17 u 0,05696
60 px 45 pt 30 pt 17 u 0,05796
61 px 46 pt 30 pt 16 u 0,05896
62 px 46 pt 31 pt 16 u 0,05996
63 px 47 pt 32 pt 16 u 0,06096
64 px 48 pt 32 pt 16 u 0,06196
65 px 49 pt 32 pt 15 u 0,06296
66 px 50 pt 33 pt 15 u 0,06396
67 px 50 pt 34 pt 15 u 0,06496
68 px 51 pt 34 pt 15 u 0,06596
69 px 52 pt 34 pt 14 u 0,06696
70 px 52 pt 35 pt 14 u 0,06796
71 px 53 pt 36 pt 14 u 0,06896
72 px 54 pt 36 pt 14 u 0.06996
73 px 55 pt 36 pt 14 u 0,07096
74 px 56 pt 37 pt 13 u 0,07196
75 px 56 pt 38 pt 13 u 0,07296
76 px 57 pt 38 pt 13 u 0,07396
77 px 58 pt 38 pt 13 u 0,07496
78 px 58 pt 39 pt 13 u 0,07596
79 px 59 pt 40 pt 12 u 0,07696
80 px 60 pt 40 pt 12 u 0,07796

Instructions: pour commencer, vous avez besoin de connaître pour quelle taille de pixel (PPC) vous voulez supprimer des dépassements (la colonne complètement à gauche). La taille PPC est équivalente au corps sur des écrans Mac (qui ne sont pas Rétina) ou encore au corps à 100% de zoom dans les applications Adobe sur des écrans non Rétina. Comme référence, j’ai ajouté des colonnes pour les corps de police à 96 ppp (applis Windows) et 144 ppp (Mac et Adobe CC sur Rétina). Ensuite, vous devez vous assurer dans Fichier > Informations de police… > Masters que la plus grande taille de zone d’alignement ne dépasse pas la valeur dans la colonne de la taille maximale de zone. Si tout concorde, vous pouvez utiliser la valeur blueScale de la colonne complètement à droite comme paramètre personnalisé dans Fichier > Informations de police… > Police. Cependant, si votre zone d’alignement la plus grande excède la taille maximale permise (dans la même rangée), vous devez aller plus haut, dans la rangée où votre zone correspond à la taille maximale, et vous pouvez ensuite utiliser la valeur blueScale qui s’y trouve.

Exemple: vous voulez supprimer les dépassements de 39 pt et moins sur Windows, et votre zone la plus grande dans Fichier > Informations de police… > Masters est de 21 unités de profondeur. Vous allez regarder dans le deuxième colonne, Corps à 96 ppp, pour la colonne qui dit 40 pt, puisque c’est la première taille pour laquelle les dépassements commencent. Nous en avons même deux dans notre tableau. Les deux font l’affaire. Si vous optez pour la valeur avec le PPC plus grand, il supprimera le dépassement because this is the first size where overshoots kick in. We even have two of those in our chart. Either will work. If you go for the one with the larger PPM, it will suppress the overshoot en un clin d'œil, alors qu’avec le plus petit PPC, le dépassement pourrait être visible un peu plus tôt. Dans cet exemple, j’ai opté pour 54 pixels car un peu plus de suppression de dépassements fait mon affaire. Hélas, la zone d’alignement maximale est de 19 unités. Soit j’ajuste mon dessin de police de caractères afin de maintenir les dépassements aplatis jusqu’à 39 pt sur Windows. Ou je fais un compromis, et je choisis la valeur blueScale suivante qui permet des zones de dépassement d’une profondeur de 21 unités. Cela correspondrait ainsi à la rangée avec un PPC de 49 pixels ou 37 pt à 96 ppp.

blueShift

blueShift est un paramètre pour supprimer les petits dépassements (p. ex., sur les petits chiffres, les caractères inférieurs ou encore les empattements concaves) au-delà du corps indiqué par blueScale. Il est mesuré en unités, la valeur par défaut est sept. Il est considéré une bonne façon de procéder d’entrer la profondeur de vos empattements concaves ou vos petits dépassements plus une unité. Tout ce qui est plus petit que blueShift est supprimé.

Plus précisément, à une taille PPC au-dessus de la taille blueScale, les dépassements à l’intérieur d’une zone d’alignement sont affichés:

  • s’ils sont égaux ou supérieurs à blueShift (dépassements normaux), ou
  • s’ils sont plus petits que blueShift mais plus grand que la moitié d’un pixel (petits dépassements).

Les petits dépassements deviennent plus grands que la moitié d’un pixel à une taille PPC de 500 ÷ (taille du dépassement en unités). Un autre tableau bien pratique:

blueShift (dépassement en unités) La moitié d’un pixel à PPC (72 ppp) taille à 96 ppp taille à 144 ppp
1 u 500 375 250
2 u 250 187 125
3 u 166 124 83
4 u 125 93 62
5 u 100 75 50
6 u 83 62 41
7 u 71 53 35
8 u 62 46 31
9 u 55 41 27
10 u 50 37 25
11 u 45 33 22
12 u 41 30 20
13 u 38 28 19
14 u 35 26 17
15 u 33 24 16
16 u 31 23 15
17 u 29 21 14
18 u 27 20 13
19 u 26 19 13
20 u 25 18 12

Exemple: blueScale est réglé pour supprimer les dépassements de 32 PPC et moins, blueShift est de 6 unités, les dépassements sont d’une profondeur de 12 unités. Certaines terminaisons de traits sont légèrement inclinées et dépassent jusqu’à cinq unités en-dessous de la ligne de pied. Nous ajoutons donc un paramètre personnalisé nommé blueScale dans Fichier > Informations de police… > Police. Entre 0 et 32 PPC, la ligne de pied sera maintenue complètement égale. À partir de 33 PPC, les dépassements commenceront avec un pixel mais les terminaisons inclinées demeureront planes, car cinq unités ne recouvrent un demi pixel qu’à partir de 100 PPC.

blueFuzz

Dans Fichier > Informations de police… > Police, vous pouvez également ajouter le paramètre blueFuzz. Il allonge vos zones d’alignement dans les deux directions (par en haut et par en bas) du nombre d’unités spécifié dans la valeur de paramètre.

Exemple: disons que vous avez une zone d’alignement positionnée à une hauteur de 500 et avec une taille de 12 unités; elle rejoint donc tout ce qui se trouve de 500 à 512. Une valeur blueFuzz de un étendrait cette zone d’une unité en bas et une unité en haut, elle rejoindrait donc maintenant tout ce qui se trouve entre 499 et 513.

Maintenant, pourquoi feriez-vous une telle chose, plutôt que de simplement allonger les valeurs actuelles de la zone elle-même? Après tout, dans l’exemple précédent, nous pourrions tout simplement définir la position à 499 et la taille à 14, n’est-ce pas? Et bien, une bonne raison est que vous voulez empêcher la zone de glisser un pixel trop bas à un certain nombre de pixels. Par exemple, à une taille où un pixel est aussi grand que 27 unités, une zone à 499 s’alignerait à (499 ÷ 27 = 18,48148 ≈) 18 pixels. Si nous la gardons plutôt à 500 et utilisons à la place la valeur blueFuzz de un, la hauteur d’x sera maintenue à (500 ÷ 27 = 18,51852 ≈) 19 pixels.

Si vous pensez qu’il s’agit de perfectionnisme à outrance, en particulier pour les cas relativement rares où cela ferait réellement une différence, et bien, pas de problème, supprimez le paramètre ou encore définissez-le à zéro. Après tout, votre client ne paie probablement pas pour cela et ne verra probablement pas la différence. De plus, Adobe recommande officiellement de ne pas l’utiliser dans les polices commerciales, et de le réserver aux fins de tests, et même encore.

Cependant, nous n’avons aucune preuve d’un mauvais fonctionnement de police qui a un blueFuzz défini à une valeur plus grande que zéro, et peut-être serez-vous dans une situation où il serait en fait censé de l’utiliser. Dans ce cas, prenez en note cette conséquence pour vos zones d’alignement: il doit y avoir une distance d’au moins 2 × blueFuzz + 1 entre deux zones. Vous pourriez donc vous retrouver à ajuster les positions de vos zones, et ce n’en vaut probablement pas la peine. Mais c’est votre décision, bien entendu.

Zones d’alignement de famille

Disons que vous avez terminé et que les polices de votre famille de caractères a jolie apparence, toutes les hauteurs verticales sont nettes, tous les fûts sont cohérents, tout est vraiment super. Et puis soudain vous vient l’idée folle de réaliser une présentation en cascade de votre Regular dans InDesign, et pour le plaisir, vous intercalez la graisse Bold entre chaque Regular. Si vos polices sont proprement liées styliquement, vous pouvez alterner entre le Regular et le Bold en appuyant sur Cmd-Shift-B. (Lisez davantage sur les liens de styles dans le tutoriel Nommer vos polices.) Vous verrez ensuite quelque chose comme ceci:

Vous voyez sur la ligne de 8 points que la hauteur d’x du Bold est un pixel plus haut? Ooh, ce n’est pas ce que nous voulons, n’est-ce pas? Ce qu’il nous faut sont des zones d’alignement pour toute la famille de caractères, et pas uniquement pour chaque police individuellement. Il s’avère que cela existe. Il s’agit d’alignement de zones pour la famille, c’est-à-dire du paramètre personnalisé Family Alignment Zones, que vous pouvez définir dans Fichier > Informations de police… > Police (Cmd-I):

Dans la plupart des cas, c’est une bonne idée de dupliquer une deuxième fois les zones d’alignement de la police la plus importante de votre famille: il s’agit habituellement du Regular ou du Book. Un rastériseur essaiera d’aligner toutes les graisses si la différence de hauteur entre l’alignement des graisses individuelles et de la famille est moins d’un pixel.

Astuce de pro: si vous n’avez pas de master Regular (p. ex., parce que vous faites l’interpolation à partir du Light jusqu’au Bold), et que vous voulez savoir à quoi les zones de votre Regular ressembleraient, vous pouvez désactiver toutes les instances exceptée le Regular, puis exécuter Fichier > Générer les instances. Un nouveau fichier Glyphs sera créé avec l’instance Regular en tant que master. Vous pouvez ensuite procéder à la lecture des zones à partir de Fichier > Informations de police… > Masters.

Maintenant que nous avons ajouté un paramètre Family Alignment Zones, nous pouvons exporter à nouveau et faire un test dans InDesign. Voyons donc si cela a aidé:

Fantastique, le Bold 8pt s’aligne à la même hauteur d’x que sa contrepartie Regular! Si vous avez moins de chance et que vos polices ne s’alignent pas à la même hauteur de pixel, considérez expérimenter avec les positions, et possiblement aussi les tailles des zones de famille.

Hinting manuel en dernier recours

Si certains glyphes continuent de mal se comporter, commencez par vérifier s’ils remplissent tous les critères de la liste précédente. Corrigez vos contours et vos réglages où c’est nécessaire. Toujours rien? Vous pourriez devoir procéder au hinting manuel de certains glyphes, car le hinteur automatique ne peut tout simplement pas toujours produire des résultats fiables, et vous devez alors prendre la relève. Mais vous n’avez à faire cela que dans le premier master des glyphes qui ont besoin d’une attention spéciale. Et habituellement, ce n’est nécessaire que pour quelques-uns. Et même encore.


POLICES UTILISÉES EN EXEMPLE: HENRIETTE PAR MICHAEL HOCHLEITNER ET SEPHORA SANS DE MUCCA/SCHRIFTLABOR

Mise à jour 2015-3-30: réécriture partielle, mise à jour des captures d’écran.
Mise à jour 2016-02-19: mise à jour pour Glyphs 2.
Mise à jour 2016-12-03: ajout de l’Accessibilité des Préférences Système.
Mise à jour 2017-05-27: réécriture majeure, ajout des paramètres personnalisés, extensions, scripts et de captures d’écran.
Mise à jour 2018-08-21: ajout des tables blueScale et blueShift, réécriture de parties qui incluent ces tables; ajout du chapitre blueFuzz, reformulations mineures ici et là.
Mise à jour 2019-03-04: retrait de colonnes erronées dans la table blueShift.
Mise à jour 2019-03-28: correction du nombre possible de zones, et emphase mise sur la nécessité de la zone de la ligne de pied.
Mise à jour 2020-04-03: remplacement de ‘four’ pour 4 pour plus de cohérence.
Mise à jour 2020-07-31: correction du mot panse ( bowls ) dans la version en anglais.

Traduction française de Nathalie Dumont.