Aller au contenu

Sous-ensemble de police

Font Subsetter

Réduit une police TrueType aux seuls glyphes que votre texte utilise vraiment et sait emballer le résultat en WOFF — la différence entre une police web de 4 Mo et de 90 ko.

Réduit une police TrueType aux caractères qu’une page emploie réellement et reconstruit un fichier valide avec ce qui reste. Pour le coréen, c’est la différence entre un téléchargement de plusieurs mégaoctets et deux cents kilooctets, parce qu’une police hangeul complète porte 11 172 syllabes et qu’une page en utilise quelques centaines. Il peut émettre du WOFF à côté du TTF, et il réanalyse sa propre sortie avant de vous la proposer.

🔒 Fonctionne entièrement dans votre navigateurfontsubsetperformancewebfont

Déposez un fichier TTF

Contours TrueType uniquement (.ttf, ou un .otf avec une table glyf). Tout se passe dans cet onglet.

Comment la coupe se fait

  • · Garde les glyphes des caractères demandés et les glyphes composants auxquels ils renvoient (la fermeture des glyphes composites), puis réécrit glyf·loca·hmtx·hhea·maxp·cmap (formats 4 et 12) et post. Les sommes de contrôle des tables et head.checkSumAdjustment sont recalculées.
  • · La sortie est relue avec le même analyseur et n’est proposée qu’une fois qu’elle passe. Les programmes de hinting (fpgm·prep·cvt) sont laissés tels quels.
  • · Un caractère oublié s’affiche en case vide. Collez le texte réel de la page ou, pour le coréen, activez le jeu KS X 1001 de 2 350 syllabes.

Pour regarder la police d’abord, l’inspecteur de police ; pour ne changer que le format, le convertisseur de polices.

Comment s’en servir

  1. Déposez un fichier TrueType

    Un `.ttf`, ou un `.otf` qui contient des contours TrueType. Le panneau dit de quel type est le fichier dès son ouverture, parce qu’une police CFF ne peut pas être réduite ici.

  2. Collez le texte que la page emploie

    Copiez les vrais textes : titres, étiquettes, libellés de boutons, messages d’erreur. Les doublons sont fusionnés automatiquement. Tout ce que vous omettez s’affichera en carré vide dans la page finale, alors penchez du côté d’en mettre plus.

  3. Choisissez entre votre texte et le jeu standard

    C’est la vraie décision. Ne coller que votre texte donne le plus petit fichier et casse à l’instant où quelqu’un tape un nom dans un champ. Activer le jeu KS X 1001 de 2 350 syllabes donne un fichier plus gros qui survit à une saisie coréenne quelconque. Un texte marketing figé veut le premier ; tout ce qui contient du contenu utilisateur veut le second.

  4. Construisez et lisez les nombres

    Glyphes avant et après, octets avant et après, et le pourcentage économisé. Si un caractère que vous avez demandé manque à la police, il est listé plutôt qu’abandonné en silence.

  5. Prenez le fichier et le @font-face à côté

    La déclaration est générée avec la graisse et l’indicateur d’italique lus dans les tables OS/2 et post de la police elle-même : elle correspond donc au fichier au lieu d’être une supposition.

Questions fréquentes

Il refuse mon OTF. Pourquoi ?

Parce que ce fichier a des contours CFF (PostScript), et que les réduire signifie réécrire des charstrings dans un autre format de contour — un tout autre programme que découper des enregistrements `glyf` TrueType, ce que fait celui-ci. La page le dit plutôt que de produire un fichier cassé. Servez-vous de pyftsubset de fonttools sur un poste. Inspecter la police fonctionne toujours.

Le crénage et les ligatures survivent-ils ?

Non. `GPOS` et `GSUB` sont abandonnées, et la page les liste quand cela arrive. Pour du texte latin, cela veut dire aucune paire de crénage et aucune ligature dans le sous-ensemble ; pour le coréen, cela compte rarement, puisque la composition du hangeul est dans les glyphes eux-mêmes. Si le crénage vous est indispensable, réduisez avec fonttools, qui sait réécrire ces tables.

Qu’advient-il d’une police variable ?

Elle ressort à l’instance par défaut : les tables de variation ne sont pas reportées. C’est en général sans conséquence pour un sous-ensemble, puisqu’un sous-ensemble est un artefact de livraison et non un fichier de travail, mais si vous comptiez sur un axe, réduisez l’instance statique que vous employez vraiment.

Peut-il produire du WOFF2 ?

Non. WOFF2 a besoin de Brotli et le navigateur n’en donne pas à une page. Le WOFF est disponible et est produit avec `CompressionStream("deflate")` : il enlève d’ordinaire encore 40 à 50 % du TTF. Le WOFF2 en enlèverait grossièrement 20 à 30 % de plus, ce qui demande un outil de bureau.

Certains caractères sont ressortis en carrés vides.

Ils n’étaient pas dans la liste de caractères au moment de la construction du sous-ensemble. C’est tout le compromis de la réduction : le fichier ne contient que ce que vous avez demandé. Reconstruisez en ajoutant les caractères manquants, ou activez le jeu KS X 1001 pour qu’une saisie coréenne quelconque ait où atterrir.

À alimenter depuis

Ensuite

Ces outils acceptent ce que celui-ci produit : le résultat peut y aller directement.