Une police cursive en Metafont
Pourquoi cette police ?
Tout a commencé le jour où je me suis dit qu'en bon amateur de TeX, je me devais d'avoir, au moins une fois, essayé d'étudier sérieusement les rouages de Metafont. J'avais auparavant un peu utilisé le système MetaPost, dérivé dudit Metafont destiné à la réalisation de figures vectorielles. Mon esprit d'informaticien forcené ayant beaucoup apprécié les principes derrière tout cela, c'est avec un intérêt non dissimulé que je me suis lancé dans la création de méta-polices de caractères.
Ainsi, French Cursive était initialement une expérience personnelle, sans réelle vocation au développement sérieux. Ceci dit, une fois la décision prise de me lancer dans cet ouvrage, la question suivante était de savoir quel genre de police écrire. Je ne voulais pas d'une écriture simpliste du style Logo, manquant autant d'esthétique que d'intérêt. Je ne voulais pas non plus réinventer la roue en dessinant une énième variante sur le modèle de Computer Modern ou Times, non seulement parce qu'il y a suffisamment de versions similaires de celles-ci, mais aussi parce que je ne sais pas quels sont les usages dans ce domaine. Je me suis donc tourné vers la seule écriture dont je connaissais un peu les règles: l'écriture cursive enseignée à l'école.
Un autre argument en faveur de ce choix était un vieil énervement chronique à propos des polices cursives déjà existantes. En effet, je n'avais jamais trouvé de moyen de produire une écriture cursive satisfaisante, car toutes les polices que j'avais eues sous les yeux étaient soit déformées (pour faciliter le travail, probablement), soit excessivement "calligraphiques".
Et elle ressemble à quoi ?
Pour dessiner ces caractères, je suis parti de ma propre façon d'écrire en cursif, et sur mes souvenirs d'école. Après une quantité raisonnable de tâtonnements, et grâce la contribution décisive de ma maman qui est Professeur des Écoles, je suis parvenu à ceci:
![[exemple]](fr-pan1.png)
L'avantage du pangramme, c'est qu'il montre toutes les lettres de l'alphabet. L'inconvénient, c'est qu'il est court, en général. En voici un avec des accents, que j'aime bien:
![[exemple]](fr-pan2.png)
Il ne s'agit là que de petits exemples pour donner une idée de l'aspect de la police. Désormais l'encodage T1 est complet, avec toutes les lettres accentuées, ce qui permet par exemple d'écrire en polonais:
![[exemple]](test-pl.png)
![[exemple]](fr-pan-bx.png)
ainsi qu'une à épaisseur fixe, qui produit une sorte d'écriture à la bille alors que les autres produisent une écriture à la plume:
![[exemple]](fr-pan-f.png)
Une autre variante, que j'ai appelée "calligraphique" faute de mieux, présente des pleins et des déliés plus marqués:
![[exemple]](fr-pan-c.png)
La réalisation d'un tel nombre de variantes sur la même base est une particularité de Metafont (c'est d'ailleurs de cette caractéristique que vient le nom du système). En jouant sur une série de paramètres, on peut ainsi créer autant de variations qu l'on veut, au point de s'éloigner un peu de l'aspect initial:
![[exemple]](fr-pan-x.png)
Plus sérieusement, c'est la puissance de Metafont qui permet de produire une écriture équilibrée et paramétrable. L'avantage de TeX est ensuite son système subtil de ligatures. Utilisé en général pour substituer des graphies plus esthétiques à certaines combinaisons de lettres, il est ici employé intensivement pour produire des liaisons entre les lettres en fonction de leur forme, démarche nécessaire à la réalisation d'une écriture de qualité.
Textes
Pour avoir une meilleure idée de l'aspect d'un texte écrit avec cette police, voici deux exemples longs:
- en français, le premier chapitre des Trois Mousquetaires (14 pages, 123 ko)
- en anglais, le premier chapitre de Robinson Crusoe (5 pages, 62 ko)
Je veux la télécharger !
Très sage décision que voilà ! Si vous voulez utiliser la police French Cursive, n'hésitez pas à la prendre ici même:
| version actuelle des sources : | frcursive.tar.gz |
|---|---|
| paquet Debian fait maison : | frcursive_1.0-1_all.deb |
Il s'agit d'une archive tar.gz contenant les sources de la police elle même ainsi qu'un certain nombre de fichiers de paramètres pour diverses variantes en un certain nombre de tailles. Ce n'est pas encore très propre, mais ça viendra...
Oui mais comment je m'en sers ?
La police French Cursive étant écrite en Metafont, elle n'est utilisable directement qu'avec TeX. La première chose à faire est de copier les fichiers du répertoire mf à un endroit visible par TeX. Les utilisateurs d'Unix pourront utiliser le Makefile fourni. Pour utiliser les fontes, je fournis un fichier de description pour NFSS et un petit package LaTeX pour simplifier son utilisation. Un petit exemple est disponible, regardez-donc le source et la version compilée. L'archive tar.gz au-dessus contient une description plus précise des divers fichiers et de leur utilisation.
Et si je veux du True Type ou du Type 1 ?
Comme mentionné maintes fois plus haut, la police French Cursive est écrite en Metafont. Je suis conscient que beaucoup de gens pourraient être intéressés par une version dans un format plus répandu, comme True Type ou Adobe Type 1. Plusieurs problèmes se posent pour réaliser de telles variantes. Tout d'abord, la conversion directe et automatisée de Metafont vers ces formats est impossible de manière générale pour plusieurs raisons techniques:
- D'une part, les contours produits par Metafont sont des courbes paramétriques polynômiales dont le degré peut atteindre 6, alors que les contours en Adobe Type 1 et True Type sont polynômiaux de degré 3 et 2 respectivement;
- D'autre part, le système de ligatures de TeX n'est pas transposable directement. Les informations contenues dans les polices Adobe Type 1 peuvent contienir des ligatures, mais très peu de programmes s'en servent (en fait, seul TeX s'en sert, pour autant que je sache). Dans le cas du True Type, l'extension OpenType semble permettre toutes les manipulations permises par le système de ligatures de Metafont et TeX, mais avec une approche très différente;
- Enfin, les polices Type 1 et True Type de bonne qualité contiennent des informations d'ajustement des courbes, permettant d'obtenir une graphie de bonne qualité à faible résolution, problème traité de façon radicalement différente par Metafont.
Toutes ces considérations rendent difficile la traduction vers ces formats. Malgré tout, il existe des outils qui résolvent le premier problème en réalisant des approximations de la forme des caractères, produisant des définitions acceptables des caractères en Type 1 et en True Type. Je fournis donc une version expérimentale en Type 1:
| version expérimentale au format Type 1 : | frcursive-t1.tar.gz |
|---|---|
| paquet Debian fait maison : | frcursive-t1_1.0-1_all.deb |
Cette version doit encore être utilisée par TeX, car les ligatures sont présentes uniquement dans les fichiers tfm fournis.
Le problème des ligatures n'est donc par contre pas encore traité, et il est ignoré par les utilitaires de conversion que j'utilise. Je travaille actuellement sur un moyen de convertir les informations de ligatures de Metafont en informations de substitution de caractères selon le standard OpenType, mais je n'ai pas encore obtenu de version fonctionnelle des polices. Mais les résultats arriveront...
Page écrite par Emmanuel Beffara, modifiée le 7 mars 2005.