Schriftart verkleinern (Font-Subsetting): TTF, OTF, WOFF
Schrift prüfen, nur nötige Zeichen behalten, als TTF und WOFF exportieren.
- Sofort
- Kostenlos
- Privat (lokal verarbeitet)
- Ohne Anmeldung
Webfont per Subsetting verkleinern, ohne Upload
Eine komplette Schrift bringt Tausende Glyphen mit, von denen eine Seite nur einen Bruchteil nutzt: Font-Subsetting behält nur die nötigen Zeichen und komprimiert das Ergebnis als WOFF. Die ernsthaften Werkzeuge laufen auf der Kommandozeile (pyftsubset aus fontTools, glyphhanger) oder verlangen den Upload der Datei auf einen Server, was bei einer lizenzierten Schrift problematisch ist.
Dieses Tool arbeitet vollständig im Browser: Es liest TTF, OTF, WOFF 1.0 und TTC, zeigt einen kompletten Inspektor (Namen, Lizenz, fsType-Rechte, Variationsachsen, Unicode-Abdeckung je Block, abgedeckte Sprachen, OpenType-Features, Größe jeder Tabelle), erstellt dann ein TrueType-Subset mit Abschluss über Komponenten und Ligaturen, schreibt TTF und WOFF, prüft, ob die erzeugte Schrift lädt, und erzeugt das @font-face-CSS mit unicode-range.
-
Schriftart auswählen
Legen Sie eine TTF-, OTF-, WOFF- oder TTC-Datei ab oder klicken Sie auf „Schriftart auswählen“. Bei einer TTC-Sammlung wählen Sie die zu extrahierende Schrift. Eine WOFF2-Datei (Signatur wOF2) wird erkannt und mit Erklärung abgelehnt.
-
Inspektor lesen
Prüfen Sie Familie, Version, Lizenz (name ID 13) und die fsType-Einbettungsrechte, die fvar-Achsen, die Unicode-Abdeckung je Block, die wahrscheinlich unterstützten Sprachen und die GSUB/GPOS-Features. Glyphenübersicht und Suchfeld beantworten „hat diese Schrift ein ẞ oder ein €?“.
-
Zu behaltende Zeichen wählen
Fügen Sie Ihren Text in „Zu behaltender Text“ ein, haken Sie Vorgaben an (Basis-Lateinisch, Lateinisch-1, Griechisch, Kyrillisch …) oder geben Sie Unicode-Bereiche ein. Der Zähler zeigt vorhandene und fehlende Zeichen sowie die nach dem Abschluss behaltenen Glyphen.
-
Ausgabemodus festlegen
„OpenType-Features behalten“ bewahrt Kerning, Ligaturen und variable Achsen; „Kleinste Datei“ nummeriert Glyphen neu und entfernt die Layouttabellen. Entscheiden Sie über das Entfernen des Hintings und die minimale name-Tabelle.
-
Subset erstellen
Klicken Sie auf „Subset erstellen“: Das Tool zeigt die Größe vorher und nachher, die Details pro Tabelle, den Selbsttest der Darstellung, die Schaltflächen „.ttf herunterladen“ und „.woff herunterladen“ sowie den CSS-Schnipsel zum Kopieren.
So entsteht das Subset
Das Tool liest das in der OpenType-Spezifikation beschriebene sfnt-Verzeichnis und dann die Tabelle cmap (vorrangig Formate 4 und 12), um Ihre Zeichen Glyphen zuzuordnen. Anschließend berechnet es den Abschluss: die Komponenten zusammengesetzter Glyphen (ein „é“, das „e“ und den Akzent wiederverwendet), dann, wenn Features behalten werden, die GSUB-Substitutionen der Typen 1 bis 4 (einfache, mehrfache, alternative Formen und Ligaturen wie fi, fl, ffi) bis zum Fixpunkt, die Unter-Lookups kontextueller Substitutionen (Typen 5, 6 und 8, Erweiterungen vom Typ 7 aufgelöst) konservativ, die Varianten der MATH-Tabelle sowie die Farbebenen der COLR-Tabelle.
- Modus „Features behalten“: Glyphen-IDs bleiben; ungenutzte Konturen werden geleert (loca-Einträge mit Länge null), die cmap wird neu gebaut, GSUB, GPOS, GDEF, kern und fvar bleiben unberührt und damit gültig, gvar verliert nur die Daten der entfernten Glyphen.
- Modus „kleinste Datei“: Glyphen werden kompakt neu nummeriert, Komponenten umgemappt, hmtx, loca, glyf, cmap, maxp, hhea und post neu gebaut, Layout- und Variationstabellen entfernt.
- Hinting entfernen: fpgm, prep, cvt, hdmx, VDMX und LTSH entfallen, Anweisungen werden aus einfachen und zusammengesetzten Glyphen entfernt, maxp und gasp wie bei pyftsubset angepasst.
- Schreiben: sortiertes Verzeichnis, Tabellen auf 4 Byte ausgerichtet, Tabellenprüfsummen und head-checkSumAdjustment neu berechnet, kurzes oder langes loca je nach Größe, dann WOFF 1.0 mit zlib pro Tabelle (eine Tabelle bleibt roh, wenn Kompression nichts bringt).
- Selbsttest: Die erzeugte Schrift wird über die FontFace-API geladen und Ihr Vorschautext mit Original und Subset nebeneinander gerendert, Pixel für Pixel verglichen.
Was jede Tabelle wiegt und was das Tool damit macht
| Tabellen | Aufgabe | Behandlung |
|---|---|---|
| glyf, loca | TrueType-Konturen und Glyphenindex: der Großteil der Größe | Ungenutzte Konturen geleert (Modus „Features behalten“) oder entfernt und neu nummeriert (Modus „Kleinste Datei“) |
| cmap | Zuordnung Unicode-Zeichen → Glyphe | Neu gebaut: Format 4 für die BMP, Format 12 zusätzlich für Zeichen außerhalb der BMP |
| hmtx, hhea | Dickten und linke Vorbreiten | Unverändert (stabile IDs) oder neu gebaut mit optimiertem numberOfHMetrics |
| GSUB, GPOS, GDEF, kern | Ligaturen, Substitutionen, Kerning, Akzentpositionierung | Unberührt im Modus „Features behalten“, entfernt im Modus „Kleinste Datei“ (mit Warnung) |
| fpgm, prep, cvt, hdmx, VDMX, LTSH | TrueType-Hinting und Gerätemetriken | Entfernt mit „Hinting entfernen“, Glyphenanweisungen gestrichen |
| name, post, DSIG | Namen und Lizenz, Glyphennamen, digitale Signatur | name vollständig oder minimal (IDs 0 bis 6, 13, 14, 16, 17, plus Achsen- und Instanznamen einer variablen Schrift), post als Format 3, DSIG immer entfernt |
Verhalten bei Schriften mit TrueType-Konturen (glyf). CFF/OTF-Schriften werden inspiziert, in WOFF umgewandelt und von Tabellen befreit, ihre Konturen aber nicht beschnitten.
Wann sich Subsetting lohnt
- Unternehmensseite oder Blog: nur Basis-Lateinisch, Lateinisch-1 und typografische Interpunktion ausliefern, damit Text schneller erscheint.
- Überschrift oder Logo in einer Displayschrift: nur die Buchstaben des Slogans behalten, wenige Kilobyte statt Hunderter.
- CJK-Schriften (TrueType): den echten Seitentext einfügen und von mehreren Megabyte auf einige Dutzend Kilobyte kommen (IPA Gothic: von 6,2 MB auf rund 55 KB als WOFF bei einem Absatz mit 154 verschiedenen Zeichen, 22 KB im Modus „Kleinste Datei“); CJK-Schriften im OTF/CFF-Format werden nicht beschnitten.
- Prüfung vor Kauf oder Einbettung: Sprachabdeckung, OpenType-Features (tnum, smcp, ss01 …) und fsType-Rechte prüfen, ohne die Schrift zu installieren.
- TTF-zu-WOFF-Umwandlung: ein gültiges WOFF 1.0 samt passendem @font-face-Schnipsel erhalten, ohne eine lizenzierte Datei an einen Server zu senden.
Häufige Probleme und Lösungen
- Einige Zeichen erscheinen in einer anderen Schrift: Sie sind nicht im Subset; Zähler und Selbsttest zeigen die fehlenden an, ergänzen Sie sie im zu behaltenden Text.
- Ligaturen oder Kerning sind weg: Sie haben „Kleinste Datei“ gewählt; wechseln Sie zurück zu „OpenType-Features behalten“.
- Das WOFF ist nicht so klein wie erwartet: Im Modus „Features behalten“ bleiben hmtx und loca in Originalgröße; WOFF komprimiert diese Bereiche sehr gut, und „Kleinste Datei“ verkleinert sie wirklich.
- WOFF2-Schrift abgelehnt: Wandeln Sie sie zuerst mit einem anderen Werkzeug in TTF oder WOFF um (das Tool bringt keinen Brotli/WOFF2-Decoder mit).
- OTF-Schrift nicht beschnitten: Ihre Konturen sind CFF; wandeln Sie sie vor dem Subsetting in TTF um oder nutzen Sie nur Inspektion und WOFF-Umwandlung.
Datenschutz: Die Schrift wird von Ihrem Browser gelesen, analysiert und neu geschrieben; keine Datei wird hochgeladen oder gespeichert, was bei einer lizenzierten Schrift zählt. Grenzen: CFF/OTF-Konturen werden nicht beschnitten, WOFF2 wird weder gelesen noch geschrieben, kontextuelle Substitutionen werden konservativ behalten (das Subset kann ein paar Glyphen mehr enthalten als nötig), Variationssequenzen (cmap Format 14) entfallen, Bitmap- und Farbtabellen werden im Modus klein entfernt, Dateien über 200 MB werden abgelehnt. Prüfen Sie Ihre Lizenz, bevor Sie eine verkleinerte Schrift veröffentlichen.
Häufige Fragen
Was ist Font-Subsetting und wie viel spart es?
Beim Subsetting bleiben nur die Glyphen in der Datei, die Ihre Seiten brauchen, etwa Basis-Lateinisch plus Umlaute statt der Tausenden Zeichen einer kompletten Schrift. Die Ersparnis hängt vor allem davon ab, was die Schrift enthält: Bei einer großen Schrift mit vielen Schriftsystemen wiegt ein lateinisches Subset oft nur 5 bis 10 % des Originals, eine ohnehin auf Lateinisch beschränkte Schrift verliert deutlich weniger. Die WOFF-Kompression nimmt danach noch einmal ein Viertel bis die Hälfte weg. Mit diesem Tool gemessen: DejaVu Sans (6.253 Glyphen, 742 KB), auf Basis-Lateinisch und Lateinisch-1 reduziert, wiegt als WOFF mit erhaltenen OpenType-Features rund 50 KB und im Modus „Kleinste Datei“ 14 KB. Das Tool zeigt die Größe vorher und nachher, Tabelle für Tabelle.
Darf ich eine gekaufte Schrift verkleinern?
Das hängt von der Lizenz ab. Freie Lizenzen wie OFL oder Apache erlauben Änderungen (die OFL betrachtet ein Subset allerdings als Modified Version: Trägt die Schrift einen Reserved Font Name, muss die verkleinerte Datei umbenannt werden); viele kommerzielle Weblizenzen erlauben Subsetting zum Einbetten, andere verbieten es ausdrücklich. Das Tool zeigt den in der Schrift gespeicherten Lizenztext (name ID 13) und dekodiert das Feld fsType: Trägt es das Bit „no subsetting“ (0x0100), verlangt die Lizenz, die Schrift nicht zu beschneiden. Prüfen Sie immer Ihren Vertrag, bevor Sie die Datei veröffentlichen.
Warum wird WOFF2 nicht unterstützt?
WOFF2 beruht auf Brotli-Kompression und einer speziellen Transformation der Tabellen glyf und loca, während die Compression-Streams-API der Browser überall nur gzip und deflate bietet (natives Brotli-Dekodieren fehlt in Chrome noch). WOFF2 zu lesen oder zu erzeugen würde eine Brotli-Bibliothek und diesen Decoder erfordern, was dieses zu 100 % lokale Tool nicht mitbringt. Wandeln Sie Ihr WOFF2 mit einem anderen Werkzeug in TTF oder WOFF um, verkleinern Sie es hier und gehen Sie bei Bedarf zurück zu WOFF2: WOFF2 ist meist 15 bis 30 % kleiner als WOFF 1.0 (laut dem Evaluierungsbericht des W3C im Median rund 25 % bei TrueType-Schriften).
Was unterscheidet „OpenType-Features behalten“ von „kleinste Datei“?
Der erste Modus behält die Glyphen-IDs und leert nur die ungenutzten Konturen: Die Tabellen GSUB, GPOS, GDEF und kern bleiben gültig, also funktionieren Ligaturen, Kerning und die Achsen einer variablen Schrift weiter. Der zweite Modus nummeriert die Glyphen neu und entfernt diese Tabellen: Die Datei ist minimal, aber ohne Kerning und Ligaturen, und eine variable Schrift wird zu ihrer Standardinstanz. Für eine Website ist der erste Modus fast immer die richtige Wahl.
Ändert das Entfernen des Hintings die Darstellung?
TrueType-Hinting (die Tabellen fpgm, prep und cvt plus Glyphenanweisungen) zählt vor allem für die ClearType-Darstellung unter Windows in kleinen Größen. macOS, iOS, Android und die meisten Linux-Browser ignorieren es. Das Entfernen verkleinert eine stark gehintete Schrift oft um 20 bis 50 %, bei leicht anderer Windows-Darstellung in kleinen Graden. Die Option ist standardmäßig aktiv; deaktivieren Sie sie, wenn Ihr Publikum vor allem Windows mit kleinem Text nutzt.
Wie nutze ich unicode-range im erzeugten CSS?
Der Deskriptor unicode-range listet die im Subset enthaltenen Zeichen in kürzester Form (zusammengefasste Bereiche, Platzhalter bei ausgerichteten Bereichen). Der Browser lädt die Datei nur, wenn die Seite mindestens eines dieser Zeichen verwendet. So lässt sich eine Schrift in mehrere Dateien (Lateinisch, Kyrillisch, Griechisch) aufteilen, die bei Bedarf geladen werden. Fügen Sie den @font-face-Schnipsel in Ihr Stylesheet ein und legen Sie die Dateien unter dem in src genannten Pfad ab.