Police au régime, glyphes à la benne

Mesdames et Messieurs, vous ai-je déjà parlé de la police de caractères TT2020 ? C’est la police que j’utilise sur ce site, et que vous lisez en ce moment-même.

Hier, au zoo, j'ai vu dix guépards, cinq zébus, un yak et le wapiti fumer.

Elle est faite pour simuler de manière réaliste le texte produit par machine à écrire. Et sa fonction de gros guedin est de même simuler les petites imperfections dues au fonctionnement mécanique de ces machines. Voyez-vous, contrairement au texte numérique, chaque lettre est imprimée légèrement différemment, et parfois avec des petits ratés.

On peut toujours simuler le défaut numériquement, mais il se reproduira à l’identique à chaque caractère, ce qui brise l’illusion. Voyez par vous-mêmes sur les “r” suivants :

Le coup de maître de cette police, donc, est d’amener de la variation dans les imperfections :

Seul bémol : comme chaque image de caractère possède moult variations, (on dit “glyphe” quand on est dans le milieu, askip) la police doit toutes les charger on va sur mon site. Ca prend quelques secondes, et c’est pas très économe pour les réseaux mobiles poussifs de nos campagnes.

mon objectif est de réduire la taille de la police de caractères. Pour arriver à ses fins, la police TT2020 a 9 glyphes pour chaque lettre, et ce pour tous les caractères possibles et imaginables. C’est beaucoup, et donc elle pèse lourd : en l’occurrence 1.7 mo. Pour comparaison, une police “normale” fait ~0.4mo.

Pourquoi ?

Je n’aime pas trop blogger à propos de mon propre blog (beaucoup trop de gens font ça, et je voudrais lire des articles sur d’autres sujets que les blogs et les LLM, please)

Cependant ! Let’s nerd out together.

La motivation derrière ce projet est de d’intégrer le “club de 1mo”, pour les sites dont la page d’accueil ne fait pas plus d'1 mo.

J’ai pas mal optimisé ma page d’accueil, en compressant les images et en ayant un site statique, mais je suis à 2mo…

Et dans ces 2 mo, la majorité de la place est prise par la police de caractères.

Dans les 10min nécessaires à faire ce diagramme, j’ai pas pu faire plus joli avec LibreOffice Calc… Même si je porte LibreOffice dans mon coeur, ça montre qu’il y a encore du chemin à faire. On affectionne tout particulièrement l’usage du texte noir sur fond marron qui pourrait être qualifié de “rétro”.

Au régime

Comme l’auteur originale de la police, je vais utiliser le logiciel FontForge pour éditer la police de caractères. Tous les petits dessins de lettres s’affichent et c’est chouette à voir :

L’idée, c’est de supprimer tout ce que je n’utilise pas. Par exemple, il m’arrive rarement de taper un “T cédille” ou un “T accent circonflexe inversé”

Pareillement, je n’écris ni en alphabet cyrillique, ni en grec. Et si toutefois un jour l’idée folle de le faire m’arrivait, alors il n’y aurait juste pas les jolies répétitions sur ces lettres-là.

Toutes ces répétitions à virer :

N.B. : Si toutefois vous cherchez à reproduire ce que je suis en train de faire, sachez que pour supprimer des glyphes, il ne faut pas utiliser le bouton “clear” mais aller dans ce menu :

Sélectionner –> Encoding –> Detach & Remove Glyphs

Ici on voit les listes de différentes “versions” de glyphes. 9 au total.

Bizarre, au début, quand j’enregistre le fichier après avoir viré des choses, la taille est plus grande… va comprendre.

Graduellement, j’ai enlevé de plus en plus de glyphes à la police dans l’espoir de réduire sa taille. Au début, les évidences, comme toutes les répétitions pour les lettres de langues que je n’utilise pas. Pas besoin d’avoir 9 types différents de Oméga minuscule.

Mais ça ne suffisait pas. Donc je me suis dit que les lettres peu utilisées n’auraient qu’une seule répétition (tout sauf les lettres et chiffres latins).

De fil en aiguille, j’ai aussi viré les lettres en Grec, Hébreu, Arménien… Si je tape un jour du texte en arménien, il s’affichera avec la police par défaut du navigateur, alors ça fera pas joli, mais bon…

Ի՜նչ ցավալի է, որ այս այլապես գեղեցիկ տեքստը նույն տառատեսակով չի ցուցադրվում…

???

Résultats

C’est gagné ! On passe de 1.7 mo à 0.4 mo. Le minimum théorique (la police “normale” sans effets ou répétitions) fait 0.163 mo, alors c’est un bel effort d’avoir réduit autant.

  • A : Police de base
  • B : Enlever les répétitions des langues que je n’utilise pas
  • C : Enlever toutes les répétitions à part les lettres et chiffres
  • D : Enlever totalement les langues que je n’utilise pas
  • E : Ne laisser que 7 répétitions au lieu de 9
  • F : Enlever les lettres latines avec des accents que je n’utilise pas

Et surtout, la page d’accueil fait maintenant moins d'1 mo : 627 ko !

Dans le club ?

Malheureusement, ma candidature au club des 1 mo a été rejetée… En cause, un autre souci lié au fait que j’écris parfois des jolies $\int_{1}^{19}\underbrace{Formules}\ de\ \overrightarrow{maths}$ : la librairie LaTeX se charge systématiquement quand on vient sur le site, et elle pèse 1 mo…

Je vais tenter de régler ça sans perdre mes belles formules… L’aventure continue.