Création de polices avec variations de lettres : une approche pour rejoindre le lettrage manuel

Cet article correspond, comme plusieurs autres, à un travail en cours et est mis à jour assez régulièrement… Je posterai sur les réseaux sociaux les mises à jour.

Un problème récurrent pour les lettreurs en bandes dessinées, ou pour les dessinateurs qui font eux-mêmes leur lettrage de façon numérique avec leur typo, est que ces polices numériques sont… trop régulières, qu’elles manquent de cette variété qui est le propre d’un lettrage manuel.

Ressources :

Au sujet de la différence entre le lettrage par ordinateur et le lettrage manuel, un article chez Comicalités reprend toute la difficulté de rendre naturel ce qui ne l’est pas, avec les problèmes que cela amène… en parlant également de son corollaire, le texte traduit en BD. J’en cite un passage :

Je comprends, désormais, ce qui me semble opaque, illisible, dans le lettrage mécanique de la traduction de L’Art de voler. Quand je lis la version française, c’est-à-dire la version mécanique, j’ai l’impression qu’on a arbitrairement collé sur l’espace de la vignette des portions d’espace exogènes. Le texte flotte, ignorant du dessin qu’il recouvre et encombre. Composé sur écran, plus ou moins habilement adapté au format de l’espace qui va l’accueillir, il ne rencontre certes plus le problème du « retournement » de la page imprimée ancienne : mais, préparé sur un ordinateur, et ensuite mis au format, il n’acquiert nulle part dans cette opération l’épaisseur de l’inscription spatiale, ni l’épreuve de la temporalité du geste qui le trace. La régularité de son module n’est pas le résultat d’un effort de la main : c’est une simple donnée de la composition typographique, qui a disposé les uns après les autres des caractères tous identiques et tous anonymes. Dans la vignette, l’espace que ce texte neutralisé s’apprête à occuper se trouve destitué de sa nature graphique pour être assigné arbitrairement à une identité nouvelle, celle d’une surface « maquettable », d’un « blanc » à occuper, à investir.

Alors pour ceux qui veulent le beurre et l’argent du beurre, soit la rapidité du lettrage numérique et le côté aléatoire d’une écriture manuscrite, voici une étude des différents aspects de cette question, avec des éléments de réponse simples ou complexes, d’après les chemins empruntés.

Elle vient au départ de mon collègue Jean-Paul Aussel qui, lors d’une conversation avec Ségolène Ferté, qui faisait notamment le lettrage de Black Sad, lui expliquait qu’elle numérise les lettrages puis introduit des variations.

Mais comment gérer ces variations ? Une façon simple est de mettre deux dessins différents de la même lettre, l’un dans la capitale, l’autre en bas-de-casse.

Voici ce que donne en FontLab la police de Jean-Paul Aussel avec ses variations simples entre Caps et bdc :

aussel

Si l’on travaille sur Macintosh, on a même accès directement à 4 variations possibles, la lettre de base, sa majuscule, puis les mêmes avec la touche ALT enfoncée :

clavier mac

que l’on peut atteindre avec les combinaisons suivantes de touches :

touches

Sous Windows cette manipulation est moins pratique puisqu’il faut se souvenir du code correspondant à la lettre (alt-145 pour æ par exemple).

Et pour introduire le côté aléatoire d’une façon automatique dans les redoublements de lettres, on peut imaginer une suite de rechercher-remplacer qui remplace par exemple les séquences mm par Mm, cc par c© ou cC etc  — ce qui peut être facilement compilé en un script en InDesign.

Plus simplement, si votre police comporte des majuscules et des minuscules, un site comme Convertcase va vous permettre de mettre les lettres en alternance en majuscule et en minuscule :

convertcase

Les modes « aLtErNaNt » et « InVeRsE CaSe » permettent des combinaisons déjà utiles pour diversifier rapidement vos lettrages, en attendant de le faire avec un script ou un style imbriqué en InDesign par exemple.

Via InDesign

Il sera possible par exemple avec des styles de caractères, appliqués consécutivement via un style imbriqué ou un style Grep, de donner une apparence de mouvement ou de vie.

Voici, pour comprendre la logique de cela, un exemple de style de caractères imbriqués appliqués consécutivement :

ID-styles-imbriques

Et l’on peut tout logiquement appliquer des styles de caractères déformant légèrement les lettres, par exemple une rotation de 3°, un parangonnage de 0,3 pt, une inclinaison, une déformation de 3% en plus ou en moins… Voici l’effet, la première ligne a ce style imbriqué, la suivante pas. Je regrette du coup le problème de crénage…

Etant pas

La mise à l’échelle optique des caractères suivant la force de corps utilisée est une autre façon de compenser le côté mécanique du lettrage.

Programmation, polices variables

Une solution bien plus radicale, mais de nature très différente, est de programmer des variations de caractères, comme dans la police Liza. Un article de fond en parle sur le site Underware. Cet échange sur Graphic Design Stack également.

Rappelons que pour de nombreux typographes, la police Beowolf est celle qui pousse le plus loin et le mieux la notion de variabilité de caractères, comme en parle cet article. Les auteurs de cette police expliquent dans une interview du livre «A Programming Handbook for Visual Designers and Artists» comment ils l’ont programmée avec des moyens presque préhistoriques… La variation se faisait, via un hack PostScript, au niveau de l’impression. Une version OpenType a été refaite ensuite.

Fonctions OpenType

Une voie plus simple sera l’utilisation des fonctions OpenType aalt et calt. Si vous ne connaissez pas ce domaine, voici une excellente explication (en FR) de ce que sont les fonctions en question sur le site de GlyphsApp. Dans ces deux acronymes il faut lire alt pour alternative. Le site OpenType Cookbook étudie ces possibilités (à partir de la section «Manual Alternate Access», en français).

Une procédure vraiment détaillée est disponible,  en anglais, sur l’incroyable site Society of Fonts de Brandon Buerkle qui propose dans son blog une série de didacticiels reprenant avec un grand luxe de détails et une rigueur totale la création d’une typo, Protest, à travers une série d’article. Une ressource inestimable…

Voici donc un mode d’emploi partiel, qui va s’étoffer au fur et à mesure. Il concerne le logiciel FontLab, dont les versions VI (en chiffres romains, cf. mon article sur cette mise à jour) et suivantes peuvent gérer ces fonctions OpenType. Néanmoins, le logiciel GlyphsApp peut également le faire, et un didacticiel est disponible en anglais et en français sur le site de GlyphsApp pour cela.

Nous allons créer des variantes en Illustrator (par exemple), vous voyez ici deux variantes superposées de la lettre A de ma police Selus Reboot :
variantesA
Il faut commencer en FontLab VI par dupliquer des glyphes et en faire des alternatives : Menu Glyph > Duplicate Glyph et les nommer en utilisant la nomenclature des jeux stylistiques (.ssO1 etc) que l’on retrouve par exemple en InDesign dans les options OpenType :

duplicate glyph

Ensuite, il faut créer la fonction calt en FontLab (faire apparaître le workspace Features), cliquer sur le + en bas à gauche ce qui ouvre la fonction et insère tout de suite ceci:

feature calt {

} calt;

et taper ceci entre les accolades (le code est emprunté au mode d’emploi de GlyphsApp)

sub A A' by A.ss01;

sub A.ss01 A' by A.ss02;

Donc :

features

La première ligne fera en sorte que lorsque deux A se succèdent, le deuxième (A’) est remplacé par A.SS01, votre variable. La seconde ligne remplace un 3e A par la variation A.SS02. Et ainsi à l’avenant.

Le stade suivant est de faire cela, non pas lettre par lettre mais classe de lettres par classe de lettres, une classe étant un groupement de lettres (les consonnes ou les bas-de-casse par exemple). Et donc il faut créer des classes de lettres logiques. Donc, ouvrons la fenêtre des classes (Window > Panels > Classes) et cliquons sur le + qui permet la création, un choix doit être fait entre les types de classes, je prends une classe OpenType :

creation-classe

Je vais reprendre ainsi progressivement tout l’alphabet, en tapant les lettres suivies d’une espace :

creation-classe-2Et il me faudra être complet, et conserver l’ordre dans lequel les glyphes sont mis :

exclam quotedbl numbersign percent ampersand quotesingle parenleft parenright asterisk plus comma hyphen period slash colon semicolon equal question A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z Agrave Acircumflex Adieresis Ccedilla Egrave Eacute Ecircumflex Edieresis Icircumflex Idieresis Ograve Ocircumflex Odieresis Ugrave Ucircumflex Udieresis agrave acircumflex adieresis ccedilla egrave eacute ecircumflex edieresis icircumflex ograve ocircumflex odieresis ugrave udieresis

Dont la variation 01 sera :

exclam.ss01 quotedbl.ss01 numbersign.ss01 percent.ss01 ampersand.ss01 quotesingle.ss01 parenleft.ss01 parenright.ss01 asterisk.ss01 plus.ss01 comma.ss01 hyphen.ss01 period.ss01 slash.ss01 colon.ss01 semicolon.ss01 equal.ss01 question.ss01 A.ss01 B.ss01 C.ss01 D.ss01 E.ss01 F.ss01 G.ss01 H.ss01 I.ss01 J.ss01 K.ss01 L.ss01 M.ss01 N.ss01 O.ss01 P.ss01 Q.ss01 R.ss01 S.ss01 T.ss01 U.ss01 V.ss01 W.ss01 X.ss01 Y.ss01 Z.ss01 a.ss01 b.ss01 c.ss01 d.ss01 e.ss01 f.ss01 g.ss01 h.ss01 i.ss01 j.ss01 k.ss01 l.ss01 m.ss01 n.ss01 o.ss01 p.ss01 q.ss01 r.ss01 s.ss01 t.ss01 u.ss01 v.ss01 w.ss01 x.ss01 y.ss01 z.ss01 Agrave.ss01 Acircumflex.ss01 Adieresis.ss01 Ccedilla.ss01 Egrave.ss01 Eacute.ss01 Ecircumflex.ss01 Edieresis.ss01 Icircumflex.ss01 Idieresis.ss01 Ograve.ss01 Ocircumflex.ss01 Odieresis.ss01 Ugrave.ss01 Ucircumflex.ss01 Udieresis.ss01 agrave.ss01 acircumflex.ss01 adieresis.ss01 ccedilla.ss01 egrave.ss01 eacute.ss01 ecircumflex.ss01 edieresis.ss01 icircumflex.ss01 ograve.ss01 ocircumflex.ss01 odieresis.ss01 ugrave.ss01 udieresis.ss01

Dieu merci, on peut exporter puis importer ce type de classe depuis une autre typo :

import classe

Pour arriver à ce genre de résultat, avec une classe comportant tous les glyphes de base, puis j’ai créé deux autres classes pour les variations :

classes-completes

FontLab va alors générer tous les glyphes manquants. Et on va remplacer la fonction calt de base par une fonction calt basée sur les classes, qui aura exactement la même structure, attention à utiliser @ devant chaque classe pour l’identifier dans la formule :

feature-calt

Comme vous l’observez, chaque classe est désignée par @. Il faut compiler en cliquant sur le triangle noir en haut à gauche…

Ceci est la plus simple expression de cette variation de caractères dont nous parlons, via donc des fonctions basiques d’OpenType. Il est bien entendu que l’on peut aller plus loin…

Reste bien entendu à gérer les approches de caractères, pour lesquelles nous avons bien entendu démultiplié les occurrences. Le logiciel FontLab VI (ou 7) va chercher la variation du caractère, ce qui permet de ne pas devenir fou :

variations-approches

En mettant la lettre u, j’ai automatiquement la classe u avec les accents ainsi que la variation u.ss01 qui apparaissent dans la barre supérieure.

Voici en application dans le logiciel Adobe InDesign la police en question (merci Noémie Touly) – vous observerez que je dois appliquer la fonction OpenType «Contextual Alternates» depuis la palette Caractères pour que les variations fonctionnent :

typo calt

Mise à jour 17/12/19

4 réflexions sur “Création de polices avec variations de lettres : une approche pour rejoindre le lettrage manuel

  1. Merci pour cet article très intéressant. Je pense qu’il doit aussi être possible d’intégrer des « variables » de caractère directement dans le style de paragraphe Indd en y compilant une série de Regex.
    Bravo également pour toutes vos publications que je suis avec intérêt.

      1. Je ne suis pas expert en grep, mais j’ai fait un simple test en créant plusieurs styles de caractères de couleur différente :rose, bleu, jaune. J’ai appliqué à mon paragraphe un style dans lequel j’ai empilé ces styles de caractère de couleur dans un style grep avec un Lookbehind positif avec des valeurs numériques différentes : (?<=.{2}).{4} style rose, puis(?<=.{6}).{6} style bleu, puis (?<=.{3}).{7} style jaune…
        Ça marche pas trop mal, il faudrait affiner et en fonction du texte et en fonction d’autre paramètre soit sur la taille, l’approche qui pourrait être aussi incluses… en plus des variables de forme de caractère.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.