Utilia

Skrifttype-subsetter

Lav delsæt af en skrifttype med de tegn, du skal bruge, med HarfBuzz i din browser. Få en mindre TTF/OTF og WOFF og @font-face med unicode-range.

Tjek skrifttypens licens først

Subsetting ændrer skrifttypefilen. Mange kommercielle licenser forbyder at ændre eller konvertere skrifttyper eller tillader det kun til webbrug på vilkår. Åbne licenser som SIL Open Font License (OFL) og Apache 2.0 tillader det (med OFL skal et delsæt, der beholder et reserveret skrifttypenavn, omdøbes). Læs din skrifttypes licens, før du udgiver resultatet.

Tegn, der skal beholdes

Valgte tegn: 0

Sådan laver du et delsæt af en skrifttype

  1. Tjek licensen. Subsetting laver en ændret kopi af skrifttypen. Åbne licenser som SIL Open Font License (OFL) og Apache 2.0 tillader det. Mange kommercielle licenser til desktop og web gør ikke, eller kun på vilkår. Læs din skrifttypes licens først.
  2. Slip en TTF-, OTF- eller WOFF-fil på feltet, eller klik på det for at vælge en. Panelet Original skrifttype viser familien, formatet, filstørrelsen, antallet af glyffer og antallet af tegn, skrifttypen dækker.
  3. Vælg Tegn, der skal beholdes: Basis-latin, Latin-1, Latin, som i Google Fonts, Fransk og Cifre og tal-tegn kan kombineres. Tilføj dine egne tegn i Tegn fra en tekst (hvert forskelligt tegn i teksten bliver beholdt) eller i Unicode-intervaller, skrevet som i CSS: U+0020-007E, U+2013, U+04??.
  4. Sæt kryds i Fjern hinting, hvis du vil have den mindst mulige fil.
  5. Klik på Lav delsæt. Motoren (cirka 650 KB) indlæses første gang, og derefter behandles skrifttypen på din enhed.
  6. Sammenlign størrelserne under Resultat, se på Eksempel på delsættet, brug derefter Download TTF (eller OTF) og Download WOFF, og kopiér reglen CSS @font-face.

Skrifttypefilen forlader aldrig din computer: den læses, får lavet delsæt og pakkes igen i din browser, og den uploades aldrig.

Vigtigt for dansk tekst: den forvalgte mulighed på denne side er Fransk, og den indeholder ikke æ, ø og å. Hvis dine tekster er på dansk, skal du sætte kryds i Latin-1 eller Latin, som i Google Fonts, som begge dækker de danske bogstaver. Linjen Findes ikke i skrifttypen viser, hvis skrifttypen selv mangler et af de tegn, du har bedt om.

Hvad subsetting gør

En skrifttype indeholder ofte hundredvis eller tusindvis af glyffer: kyrillisk, græsk, vietnamesisk, symboler, alternative former. En side på dansk eller engelsk bruger kun en brøkdel af dem. Værktøjet kører hb-subset, delsætsværktøjet i tekstmotoren HarfBuzz (den samme kode, som Google Fonts og mange byggeværktøjer bruger), kompileret til WebAssembly. Det beholder glyfferne for de tegn, du har valgt, plus de glyffer, som OpenType-funktioner har brug for for at vise dem (ligaturer som »fi«, kapitæler og accentformer, når de kan nås fra dine tegn), og fjerner resten. Kerning og andre layouttabeller beskæres tilsvarende.

Typiske resultater: en komplet latin-, kyrillisk- og græsk skrifttype på 300 KB kan falde til 20 eller 30 KB til dansk tekst, og en logoskrifttype, der er skåret ned til bogstaverne i ét ord, vejer ofte nogle få kilobyte.

Linjen Findes ikke i skrifttypen viser tegn, du har bedt om, som skrifttypen ikke har. Browsere tegner dem med en reserveskrifttype.

Outputformater og unicode-range

  • TTF/OTF: delsættet beholder den oprindelige konturtype (TrueType eller CFF).
  • WOFF: den samme skrifttype, hvor hver tabel er komprimeret med zlib. Alle nutidige browsere kan læse den. Et WOFF-input dekomprimeres først.
  • WOFF2 er ikke tilgængeligt: dets Brotli-komprimering og tabeltransformationer har ingen koder i browseren, og WOFF2-filer kan heller ikke læses her. Konvertér først WOFF2 til TTF (for eksempel med fontTools). Din server kan også komprimere TTF/OTF med gzip eller Brotli i farten.

Reglen CSS @font-face nævner WOFF-filen først, sætter font-display: swap og tilføjer en unicode-range, der er bygget ud fra de tegn, som faktisk findes i delsættet. Med unicode-range henter browseren kun filen, når siden bruger et af de tegn, så du kan dele en familie i flere filer (for eksempel latin og kyrillisk) og lade hver besøgende hente det, vedkommende har brug for. Rediger Navn til font-family, så det passer til det navn, dit stylesheet bruger.

Ofte stillede spørgsmål

Er det lovligt at lave et delsæt af en skrifttype?

Det afhænger af licensen, ikke af værktøjet. SIL Open Font License tillader udtrykkeligt ændringer. Hvis skrifttypen angiver et reserveret skrifttypenavn, skal en ændret version distribueres under et andet navn. Mange kommercielle licenser forbyder at ændre, konvertere eller selvhoste skrifttypen. Er du i tvivl, så spørg skrifttypeudgiveren.

Hvorfor er delsættet større, end jeg forventede?

OpenType-layoutfunktioner trækker ekstra glyffer med (ligaturer, alternativer, kapitæler), og hinting-instruktioner kan fylde meget i TrueType-skrifttyper. Prøv Fjern hinting, og tjek, at du ikke ved en fejl har sat kryds ved et stort forvalg.

Skal jeg fjerne hinting?

Hinting forbedrer gengivelsen ved små størrelser på Windows med ældre rasterizere. På macOS, iOS, Android og moderne Windows ved normale størrelser er forskellen lille. Til overskrifter og logoer er det som regel fint at fjerne den.

Kan jeg lave et delsæt af en variabel skrifttype?

Ja. Variationsakserne bevares, så delsættet forbliver variabelt. Det er kun tegnene, der reduceres.

Hvad med skrifttypesamlinger (.ttc)?

Kun den første skrifttype i samlingen får lavet delsæt.