Créer des polices aux contours complexes

  • by Rainer Erich Scheichelbauer
  • Tutorial

Les technologies modernes de création de caractères se concentrent surtout sur les polices ‘normales’. Les technologies en usage ont donc tendance à prendre pour acquis que vos polices:

  • ont des contours simples avec le plus petit nombre possible de nœuds
  • ont des nœuds aux extrêmes (apprenez-en davantage sur comment dessiner de bons tracés)
  • ont beaucoup de glyphes avec des formes semblables (p.ex., les arcs de jambage des n, h et m sont presque identiques)
  • ont un nombre raisonnable de glyphes (pour la plupart, des centaines ou au plus quelques milliers)

Maintenant, si, ne serait-ce qu’une seule de ces suppositions ne s’applique pas, c’est qu’il s’agit d’une police avec des contours dits ‘complexes’. Pour réaliser une police avec de tels contours, vous aurez à prendre des décisions de sous-routines, de hinting, et même d’ajustements de vos tracés. Sinon votre police pourrait ne pas s’exporter, ou pire, elle pourrait s’exporter et se vendre et causer des problèmes à vos utilisateurs, ce qui vous vaudra des tonnes de courriels de clients insatisfaits. Ce qui n’est pas bon.

Voici des exemples de polices avec des contours complexes:


Caractères: Adinah par Andy Lethbridge, Fairwater de Laura Worthington, Letterpress de Marcus Sterz, Weingut par Georg Herold-Wildfellner

Sous-routines

Les sous-routines sont un mécanisme qui permet de réduire la taille des fichiers de polices CFF (c.-à-d., Compact Font Format, soit des polices contenant des contours PostScript; leur suffixe est .otf). Ces polices cherchent les structures récurrentes dans les contours et les stockent dans lesdites sous-routines, d’où le nom. Ça fonctionne un peu comme des composantes, mais pour des fragments de tracés et des courbes, et plus rarement avec des tracés entiers et des glyphes entiers contrairement aux composantes. L’action s’effectue automatiquement au moment de l’exportation, c’est pourquoi vous n’avez habituellement pas à vous en soucier.

Les sous-routines fonctionnent mieux si vous avez de nombreuses formes semblables dans votre police, et si votre police est d’une taille normale, soit quelques centaines voire quelques milliers de glyphes. Les limites seront atteintes si vous avez de trop nombreuses formes, comme dans les polices grunge ou numérisées. Ou encore si vous avez des contours très complexes ou détaillés, ou encore un très grand nombre de nœuds par glyphe. Ou comme dans les polices CJC, si vous avez de très nombreux glyphes dans votre police, disons 20 000 ou même plus. (Vous voulez en savoir plus? Lisez le blogue de Ken Lunde sur les sous-routines dans les polices CJC.) Si une seule de ces situations se présente, vous remarquerez que l’exportation prend un temps inhabituellement long. C’est l’algorithme des sous-routines qui essaie de trouver des formes similaires dans des millions et des billions de contours. Il peut arriver que les sous-routines élargissent la police plutôt que de la réduire, parce qu’un grand nombre de formes est trouvé, mais peu sont réutilisées. Parfois la police ne s’exporte tout simplement pas.

Le paramètre Disable Subroutines désactive les sous-routines. Localisez la liste des instances respectives dans Fichier > Informations de police > Instances. Dans la table des Paramètres personnalisés de chacune des instances, ajoutez un nouveau paramètre avec le bouton plus, ensuite sous Propriété, sélectionnez Disable Subroutines et pour terminer, cochez la case qui apparaît sous Valeur afin d’activer la propriété:

Considérez la désactivation des sous-routines:

  • dans les polices avec vraiment beaucoup de glyphes – quelques milliers et plus;
  • dans les polices avec des formes dissemblables, comme les polices grunge, manuaires, abîmées, de style notes de rançons, bref, les polices qui ont pour but d’avoir des glyphes aussi différents que possible les uns des autres;
  • dans les polices avec des contours très détaillés, comme des lettrines, symboles, icônes, illustrations, dingbats;
  • dans les polices avec un grand nombre de nœuds par glyphe, c.-à-d., plus de cent nœuds par glyphe.

Hinting

Le hinting est le processus de placer des hints sur les parties de contours. Les hints aident le rastériseur à déterminer quelles parties d’un glyphe sont des caractéristiques essentielles qui doivent être maintenues et normalisées au cours de l’ajustement à la grille. L’ajustement à la grille consiste à déformer les contours afin qu’ils correspondent mieux à la grille de pixels.

Vous avez bien lu. Le hinting ne préserve pas vos formes, au contraire, il les dénature. Le hinting sacrifie l’exactitude des formes au prix d’un meilleur ajustement à des petites tailles de pixels. Le résultat est un texte plus propre, net, unifié, et mieux ajusté dans les petites tailles de pixels. Le hinting amène cependant son lot de contraintes sur les contours: ils doivent être aussi simples et ‘normaux’ que possible.

Envisagez de ne pas faire de hinting:

  • dans les polices avec des formes intentionnellement dissemblables, incohérentes, hétérogènes;
  • dans les polices scriptes où la liaison de fin d’une lettre doit rencontrer de façon précise la liaison de début de la suivante;
  • dans les polices avec des contours très détaillés;
  • dans les polices avec un grand nombre de nœuds par glyphe;
  • dans les polices zones d’alignement dans Fichier > Informations de police > Masters;
  • dans les polices sans définitions standards de traits dans Fichier > Informations de police > Masters;
  • dans les polices avec des contours anormaux qui:
    • n’ont pas de nœuds aux extrêmes,
    • présentent des épaisseurs de traits dissemblables et hétérogènes,
    • n’atteignent pas les zones d’alignement de façon constante,
    • ont été créées avec des effets décoratifs comme ceux des filtres Glyphs Abîmer ou Hachurer le contour, mais aussi les alphabets éclairés, contours, faits de lignes pointillées, ombrés, tridimensionnels, etc.

Afin d’éviter les hints dans votre police, il faut faire deux choses: désactiver le hinting automatique et supprimer manuellement les hints en place. Pour vous débarrasser du hinting automatique, désactivez tout simplement l’option Hinting automatique dans la fenêtre de dialogue Fichier > Exporter. Ou bien utilisez le paramètre personnalisé Autohint dans Fichier > Informations de police > Instances en désactivant la Valeur, bien entendu:

Pour vous débarrasser de hints manuels déjà en place, cliquez sur la roue dentée dans le coin en bas à gauche dans l’aperçu Police, et choisissez Ajouter un filtre futé. Dans le dialogue qui suit, donnez à votre filtre futé un nom qui a du sens pour vous, et réglez-le à Possède des hints: Oui. Confirmez le dialogue en appuyant sur OK et sélectionnez ensuite le filtre futé dans la barre latérale gauche. Pour terminer, supprimez manuellement tous les hints de chacun de vos glyphes.

Une autre façon, plus facile, est d’utiliser des scripts pour supprimer les hints manuels. Dans mon répertoire de scripts mekkablue sur GitHub, vous trouverez entre autres Hinting > Delete all Hints in Font. Vous retrouverez les instructions d’installation dans le fichier readme du répertoire.

Pour vous assurer qu’il ne reste plus de hints dans vos polices OpenType finales, il vaudrait mieux les tester. Ouvrez dans Glyphs les OTF que vous avez exportées et appliquer le filtre futé expliqué plus haut. Il vous permettra d’identifier les glyphes qui ont des hints manuels, si tel est le cas, afin de pouvoir les supprimer manuellement. Une autre solution est d’inspecter vos glyphes un à un dans des logiciels telles que DTL OTMaster.

Tracés

Nous avons discuté des tracés complexes, c.-à-d., des tracés avec un grand nombre de nœuds. Prenez pour acquis que vous avez des contours complexes dans votre design, et qu’en bon citoyen que vous êtes, vous avez désactivé les sous-routines et le hinting comme recommandé par votre autorité typographique locale. Il pourrait quand même encore y avoir des problèmes causés par un grand nombre de petits segments de courbe. Ces courts segments peuvent être problématiques dans les polices OTF basées sur les CFF.

Premièrement, bien qu’une telle police puisse fonctionner à l’écran, une imprimante pourrait facilement rencontrer une erreur due à de trop nombreux sous-tracés. Au cours de la rastérisation, chaque petit segment de courbe est découpé en de petits segments de ligne, dits ‘sous-tracés’. Ils sont vraiment petits, bien en dessous le niveau de la résolution du rastériseur. Sur une imprimante laser, cette résolution peut être relativement grande, ce qui veut dire que les sous-tracés doivent être très courts, et bien sûr, très nombreux, puisqu’ils doivent compléter en entier le segment de courbe qu’ils remplacent. Cet exemple vous en donne un aperçu, il s’agit d’une vue rapprochée d’un segment de courbe brisé en un tas de sous-tracés:

Deuxièmement, vous pourriez rencontrer des problèmes lors de l’utilisation de la police dans Microsoft Windows. Par exemple, vous tapez un mot de six lettres, et ensuite, vous regardez les lettres apparaître l’une après l’autre pour les dix secondes suivantes. Windows a déjà des problèmes avec les contours CFF, et les CFF complexes sont un effort de trop pour le système d’opération de nos bons amis de la côte ouest américaine.

Voici deux façons de gérer ce problème:

Pour commencer, si votre design s’y prête, remplacer tous les segments de courbe par des segments de droite. Le raisonnement derrière cette solution est qu’un segment de droite est significativement plus facile à rendre qu’un segment de courbe.

L’extension Retractor peut faire ça pour vous. Installez-la via Fenêtre > Gestionnaire d’extensions. Vous pouvez l’activer automatiquement lors de l’exportation avec un Filtre de paramètre personnalisé (plus d’informations dans le document readme du filtre). Ce filtre est habituellement recommandé pour les polices avec de très petits segments de courbe, comme les polices grunge, abîmées, ou encore de style impression typographique manuelle.

Si vous avez de plus grands segments de courbe dans vos contours, pensez au filtre Abîmer (Filtre > Abîmer), qui transforme tout en petits segments de droite. Optez plutôt pour de petites valeurs de déplacement, même nulles, toutefois légèrement plus grandes que la Longueur de segment. Encore une fois, vous pouvez activer ce filtre grâce à un paramètre personnalisé, que vous pouvez tout simplement copier dans votre presse-papiers par le menu de la roue dentée située dans le coin en bas à gauche de la fenêtre du filtre, et ensuite le coller dans la table des Paramètres personnalisés qui se trouve sous Fichier > Informations de police > Instances.

Ensuite, si votre design requiert que les segments de courbe soient maintenus bien proprement en place, considérez exporter la police avec des contours TrueType. Dans ce cas-ci, l’idée est que les TrueType permettent une plus grande complexité que les CFF/PostScript. Pour exporter votre police en format TrueType, optez pour l’option Enregistrer en .ttf sous Fichier > Exporter, ou encore utilisez le paramètre personnalisé Save as TrueType dans Fichier > Informations de police > Instances. Voilà! C’est aussi simple que ça, faire des polices avec des contours complexes.


Traduction française de Nathalie Dumont.