Alléger une police (subsetting)
Réduisez une police aux caractères utiles avec HarfBuzz, dans le navigateur : TTF/OTF et WOFF allégés, aperçu et @font-face avec unicode-range.
Vérifiez d'abord la licence de la police
Le subsetting modifie le fichier de la police. Beaucoup de licences commerciales interdisent de modifier ou de convertir une police, ou ne l'autorisent que sous conditions pour le Web. Les licences libres comme la SIL Open Font License (OFL) et Apache 2.0 le permettent (avec l'OFL, un sous-ensemble qui garde un nom de police réservé doit être renommé). Lisez la licence de votre police avant de publier le résultat.
Police d'origine
- Famille
- Format
- Taille du fichier
- Glyphes
- Caractères
Caractères sélectionnés : 0
Résultat
- Avant
- Après (TTF/OTF)
- Après (WOFF)
- Gain
- Glyphes
- Caractères conservés
La sortie WOFF2 n'est pas disponible (pas d'encodeur Brotli dans le navigateur). Le WOFF est lu par tous les navigateurs actuels ; votre serveur peut aussi compresser le TTF/OTF en gzip ou Brotli.
Aperçu du sous-ensemble
Les caractères supprimés s'affichent dans une police de secours.
CSS @font-face
Comment alléger une police
- Vérifiez la licence. Le subsetting crée une copie modifiée de la police. Les licences libres comme la SIL Open Font License (OFL) et Apache 2.0 l’autorisent ; beaucoup de licences commerciales (bureautique ou web) l’interdisent ou l’encadrent. Lisez d’abord la licence de votre police.
- Déposez un fichier TTF, OTF ou WOFF dans la zone prévue, ou cliquez dessus pour le choisir. Le bloc Police d’origine affiche la famille, le format, la taille du fichier, le nombre de glyphes et le nombre de caractères couverts.
- Choisissez les Caractères à conserver : Latin de base, Latin-1, Latin façon Google Fonts, Français et Chiffres et signes numériques se combinent. Ajoutez vos propres caractères dans Caractères d’un texte (chaque caractère différent du texte est gardé) ou dans Plages Unicode, écrites comme en CSS :
U+0020-007E, U+2013, U+04??. - Cochez Supprimer le hinting si vous visez le fichier le plus léger possible.
- Cliquez sur Alléger la police. Le moteur (environ 650 Ko) se charge la première fois, puis la police est traitée sur votre appareil.
- Comparez les tailles dans Résultat, contrôlez l’Aperçu du sous-ensemble, puis cliquez sur Télécharger le TTF (ou OTF) et Télécharger le WOFF, et copiez la règle CSS @font-face.
Le fichier de police ne quitte jamais votre ordinateur : il est lu, allégé et réempaqueté dans le navigateur.
Ce que fait le subsetting
Une police contient souvent des centaines, voire des milliers de glyphes : cyrillique, grec, vietnamien, symboles, variantes. Une page en français n’en utilise qu’une petite partie. Cet outil exécute hb-subset, le module de sous-ensemble du moteur typographique HarfBuzz (le même code que celui de Google Fonts et de nombreux outils de build), compilé en WebAssembly. Il garde les glyphes des caractères choisis, ainsi que ceux dont les fonctions OpenType ont besoin pour les afficher (ligatures comme « fi », petites capitales ou formes accentuées accessibles depuis vos caractères), et retire tout le reste. Le crénage et les autres tables de mise en page sont réduits en conséquence.
Ordres de grandeur : une police latin + cyrillique + grec de 300 Ko peut tomber à 20 ou 30 Ko pour du texte français, et une police de logo réduite aux lettres d’un seul mot ne pèse souvent que quelques kilo-octets.
La ligne Absents de la police liste les caractères demandés que la police ne contient pas. Le navigateur les affichera avec une police de secours.
Formats de sortie et unicode-range
- TTF/OTF : le sous-ensemble conserve le type de contours d’origine (TrueType ou CFF).
- WOFF : la même police, chaque table compressée avec zlib. Tous les navigateurs actuels le lisent. Un fichier WOFF en entrée est d’abord décompressé.
- WOFF2 n’est pas disponible : sa compression Brotli et ses transformations de tables n’ont pas d’encodeur dans le navigateur, et les fichiers WOFF2 ne peuvent pas non plus être lus ici. Convertissez d’abord le WOFF2 en TTF (par exemple avec fontTools). Votre serveur peut aussi compresser le TTF/OTF à la volée en gzip ou Brotli.
La règle CSS @font-face place le WOFF en premier, définit font-display: swap et ajoute un unicode-range calculé à partir des caractères réellement présents dans le sous-ensemble. Grâce à unicode-range, le navigateur ne télécharge le fichier que si la page utilise l’un de ces caractères : vous pouvez découper une famille en plusieurs fichiers (latin et cyrillique, par exemple) pour que chaque visiteur ne charge que le nécessaire. Modifiez le Nom font-family pour qu’il corresponde à celui de votre feuille de style.
Questions fréquentes
A-t-on le droit d'alléger une police ?
Tout dépend de la licence, pas de l’outil. La SIL Open Font License autorise explicitement les modifications ; si la police déclare un nom réservé (Reserved Font Name), la version modifiée doit être diffusée sous un autre nom. Beaucoup de licences commerciales interdisent de modifier, de convertir ou d’héberger soi-même la police. En cas de doute, interrogez la fonderie.
Pourquoi le fichier obtenu est-il plus lourd que prévu ?
Les fonctions OpenType ajoutent des glyphes (ligatures, variantes, petites capitales) et les instructions de hinting peuvent peser lourd dans les polices TrueType. Essayez Supprimer le hinting et vérifiez que vous n’avez pas coché un grand jeu de caractères par erreur.
Faut-il supprimer le hinting ?
Le hinting améliore le rendu en petite taille sous Windows avec les anciens moteurs de rendu. Sous macOS, iOS, Android et un Windows récent, à taille normale, la différence est faible. Pour des titres ou un logo, on peut généralement s’en passer.
Peut-on alléger une police variable ?
Oui. Les axes de variation sont conservés : le sous-ensemble reste une police variable, seuls les caractères sont réduits.
Et les collections de polices (.ttc) ?
Seule la première police de la collection est traitée.
Outils similaires
- Aperçu d'associations de polices Testez des associations de polices pour vos titres et votre texte avec 20 polices libres, réglez taille et interligne, et copiez le code CSS font-family.
- Convertisseur PX en REM Convertissez des px en rem et en em avec la taille de police racine de votre choix, créez un tableau de conversion et passez tout un code CSS en rem.
- Formateur et minificateur CSS Indentez proprement un CSS désordonné ou minifiez-le avec csso, en voyant la taille avant et après. Tout se passe dans votre navigateur.