Pular para o conteúdo

Subconjunto de fonte

Font Subsetter

Reduz uma fonte TrueType aos glifos que seu texto realmente usa e pode empacotar o resultado como WOFF — a diferença entre uma webfont coreana de 4 MB e uma de 90 KB.

Corta uma fonte TrueType até os caracteres que uma página realmente usa e reconstrói um arquivo válido a partir do que sobra. Para coreano, esta é a diferença entre um download de vários megabytes e algumas centenas de kilobytes, porque uma fonte hangul completa carrega 11.172 sílabas e uma página usa algumas centenas. Ela consegue emitir WOFF junto com o TTF, e reinterpreta a própria saída antes de oferecê-la.

🔒 Roda inteiramente no seu navegadorfontsubsetperformancewebfont

Solte um arquivo TTF

Só contornos TrueType (.ttf, ou um .otf com tabela glyf). Tudo acontece nesta aba.

Como ele corta

  • · Mantém os glifos dos caracteres que você pediu e os glifos componentes que eles referenciam (o fecho dos glifos compostos), e depois reescreve glyf·loca·hmtx·hhea·maxp·cmap (formatos 4 e 12) e post. As somas de verificação das tabelas e head.checkSumAdjustment são recalculadas.
  • · A saída é lida de novo com o mesmo analisador e só é oferecida depois de passar. Os programas de hinting (fpgm·prep·cvt) ficam como estão.
  • · Um caractere que você deixar de fora aparece como uma caixa vazia. Cole o texto real da página ou, para o coreano, ligue o conjunto KS X 1001 de 2.350 sílabas.

Para olhar a fonte antes, o inspetor de fontes; para trocar só o formato, o conversor de fontes.

Como usar

  1. Solte um arquivo TrueType

    Um `.ttf`, ou um `.otf` que tenha contornos TrueType por dentro. O painel diz de que tipo o arquivo é assim que ele abre, porque uma fonte CFF não pode ser reduzida a um subconjunto aqui.

  2. Cole o texto que a página usa

    Copie o texto real — títulos, rótulos, texto de botões, mensagens de erro. Duplicatas são reduzidas automaticamente. Qualquer coisa que você deixar de fora vai renderizar como uma caixa em branco na página final, então erre para o lado de incluir mais.

  3. Decida entre o seu texto e o conjunto padrão

    Esta é a decisão de verdade. Colar só o seu texto dá o menor arquivo e quebra no momento em que alguém digita um nome em um campo. Ligar o conjunto KS X 1001 de 2.350 sílabas dá um arquivo maior que sobrevive a entrada arbitrária em coreano. Texto de marketing estático quer o primeiro; qualquer coisa com conteúdo do usuário quer o segundo.

  4. Construa e leia os números

    Glifos antes e depois, bytes antes e depois, e a porcentagem economizada. Se algum caractere que você pediu está faltando na fonte, ele é listado em vez de descartado em silêncio.

  5. Pegue o arquivo e o @font-face ao lado

    A declaração é gerada com o peso e o sinalizador de itálico lidos das próprias tabelas OS/2 e post da fonte, então corresponde ao arquivo em vez de ser um palpite.

Perguntas frequentes

Ele recusa meu OTF. Por quê?

Porque esse arquivo tem contornos CFF (PostScript), e reduzi-los a um subconjunto significa reescrever charstrings em outro formato de contorno — um programa separado de cortar registros `glyf` TrueType, que é o que isto faz. A página diz isso em vez de produzir um arquivo quebrado. Use o pyftsubset do fonttools em um computador. Inspecionar a fonte continua funcionando.

Kerning e ligaturas vão sobreviver?

Não. `GPOS` e `GSUB` são descartadas, e a página as lista quando o faz. Para texto latino, isso significa nenhum par de kerning e nenhuma ligatura no subconjunto; para coreano, raramente importa, já que a composição do hangul está nos próprios glifos. Se o kerning é essencial para você, faça o subconjunto com o fonttools em vez disso, que consegue reescrever essas tabelas.

O que acontece com uma fonte variável?

Ela sai como a instância padrão — as tabelas de variação não são carregadas adiante. Isso normalmente é aceitável para um subconjunto, já que um subconjunto é um artefato de publicação e não um arquivo de trabalho, mas se você dependia de um eixo, reduza a instância estática que você realmente usa.

Ele consegue fazer WOFF2?

Não. WOFF2 precisa de Brotli e o navegador não dá um a uma página. WOFF está disponível e é produzido com `CompressionStream("deflate")` — tipicamente tira mais 40–50% do TTF. WOFF2 tiraria mais uns 20–30% além disso, o que precisa de uma ferramenta de computador.

Alguns caracteres saíram como caixas vazias.

Eles não estavam na lista de caracteres quando o subconjunto foi construído. Essa é a troca inteira de fazer um subconjunto: o arquivo só contém o que você pediu. Reconstrua com os caracteres que faltam acrescentados, ou ligue o conjunto KS X 1001 para que entrada arbitrária em coreano tenha onde cair.

Pode receber de

Em seguida

Estas aceitam o que esta ferramenta produz, então o resultado pode ir direto.