Index

La fonction ExpandStroke de FontForge

Explication

FontForge permet un développement rapide grâce à la fonction ExpandStroke.

Je dessine mes glyphes en traits sans épaisseur. Le source résultant est passé à la moulinette d'un script pour générer la police.

Le code du script que je vous fourni ici n'est pas une référence : c'est l'aboutissement de mes tâtonnements sur ma fonte avec mes connaissances de FontForge et du format OpenType pour obtenir le résultat que j'escompte.

#!/usr/bin/fontforge
Open('PecitaSource.sfd')
SelectAll()
ExpandStroke(60,1,1)
RemoveOverlap()
AddExtrema()
flags=128
Simplify((flags),2)
RoundToInt()
AddExtrema()
RoundToInt()
flags=-1
Simplify((flags),2)
RoundToInt()
AutoHint()
Save('Pecita.sfd')
if (Validate() == 0)
Generate('Pecita.otf')
else
Error('Validation error')
endif

Le glyphe dessiné au trait
Glyphe au trait
Le glyphe généré par FontForge
Glyphe généré

Ce mécanisme permet aussi de générer sans effort supplémentaire une version maigre (font-weight: 300;) de la fonte que voici en démonstration :

Ce mécanisme permet aussi de générer sans effort supplémentaire une version maigre (font-weight: 300;) de la fonte que voici en démonstration...

Fontforge 2012

La construction de la police Pecita utilise intensivement des interfaces de programmation. Cette approche fait partie de de l’esprit même de FontForge qui a prévalu jusqu’à la dernière version stable qui date de juillet 2012. Après cette date une nouvelle équipe a travaillé sur le programme pour mieux l’adapter aux demandes actuelles, en particulier à MAC OS X, à Windows et au format UFO. En revanche les aspects complexes de programmation et d’automatisation y sont délibérément sacrifiés. Je ne sais pas aujourd’hui en évaluer les conséquences pour la police Pecita lorsque la version stable sera mise à jour mais je suis pessimiste.