fontmake
kompiliert Schriftarten aus verschiedenen Quellen ( .glyphs
, .ufo
, designspace
) in Binärdateien ( .otf
, .ttf
). Sie können damit statische Instanzen und variable Schriftarten erstellen.
Fontmake erfordert Python 3.8 oder höher.
Releases sind auf PyPI verfügbar und können mit pip installiert werden.
pip3 install fontmake
Verwenden Sie die Option -U
, --upgrade
um Fontmake und seine Abhängigkeiten auf die neueste verfügbare Version zu aktualisieren:
pip3 install -U fontmake
Nach der Installation können Sie die ausführbare Datei fontmake
verwenden.
Um beispielsweise eine variable Schriftart aus einer Glyphs-Quelldatei zu kompilieren, verwenden Sie Folgendes:
fontmake MyFont.glyphs -o variable
Die wichtigsten Befehlszeilenargumente für die ausführbare Datei fontmake
sind die erforderliche Eingabe, die entweder als Positionsargument oder mit einem der Flags -g
/ -u
/ -m
angegeben wird, und das optionale Flag -o
, das das Ausgabedateiformat auswählt.
Es gibt zwei Möglichkeiten, die Quelldatei(en) anzugeben:
Man kann entweder die folgenden, sich gegenseitig ausschließenden Flags verwenden:
-g filename.glyphs
: Konvertiert eine Glyphs-Quelldatei in eine Binärdatei.-u filename.ufo ...
: Konvertiert eine oder mehrere UFO(Z)-Dateien in eine Binärdatei.-m filename.designspace
: Konvertiert eine Designspace-Datei in eine Binärdatei. (Das -m
steht für mutatormath
, eine alte Python-Bibliothek zur Handhabung von Designspaces.) Alternativ kann man die Eingabe(n) als Positionsargumente ohne das Flag angeben, sodass Fontmake das Quellformat aus der Dateierweiterung ableiten kann: z. B. fontmake MyFont.designspace
usw.
Hinweis: Wenn den Positionsargumenten eine Option vorangestellt ist, die ein oder mehrere Argumente akzeptiert, müssen Sie das spezielle Trennzeichen --
verwenden, um alle folgenden Argumente als Positionsargumente (keine Optionen) zu markieren, da sonst der Parser verwirrt wird. Beispielsweise akzeptiert die Option -i
null oder ein Argument (Einzelheiten siehe weiter unten); ohne --
geht argparse davon aus, dass Sie keine Eingaben gemacht haben:
fontmake -i -- MyFont.designspace
Bei beiden Ansätzen kann/muss genau ein Eingabetyp angegeben werden.
Sie können nach der Option -o
ein oder mehrere Ausgabedateiformate angeben. Beispielsweise erstellt -o otf ttf
OTF- und TTF-Binärschriftartendateien für jeden Master in Ihrer Eingabedatei.
Die folgenden Ausgabedateiformate sind verfügbar:
otf
: Pro-Master-OTF-Binärdateien (CFF-Outline). Im Verzeichnis master_otf/
abgelegt.ttf
: Pro-Master-TTF-Binärdateien (TrueType-outline). Im Verzeichnis master_ttf/
abgelegt.otf-cff2
: OTF-Binärdateien pro Master mit CFF2-Umrissen. Im Verzeichnis master_otf/
abgelegt.variable
: Eine TrueType-Variablenschriftart. Wird im Verzeichnis variable_ttf/
abgelegt.variable-cff2
: Eine variable Schriftart mit CFF2-Umrissen. Im Verzeichnis variable_otf/
abgelegt.Die folgenden Ausgabedateiformate sind ebenfalls verfügbar, werden jedoch im Allgemeinen intern von Fontmake als Zwischenschritt zu einer der oben genannten Ausgaben verwendet:
otf-interpolatable
: OTF-Binärdateien, die zum Zusammenführen in eine variable Schriftart geeignet sind. Im Verzeichnis master_otf_interpolatable/
abgelegt. (Diese unterscheiden sich von otf
dadurch, dass die Umrisse nicht optimiert sind.)ttf-interpolatable
: TTF-Binärdateien, die zum Zusammenführen in eine variable Schriftart geeignet sind. Im Verzeichnis master_ttf_interpolatable/
abgelegt. (Die Umrisse werden interpolationskompatibel in quadratische Kurven umgewandelt.)ufo
: Glyphenquellen können in UFO oder in das UFO-Zip-Format ( .ufoz
) mit dem Flag --save-ufo-as-zip
konvertiert werden. Im Verzeichnis master_ufo/
abgelegt. Wenn keine Formatoption angegeben ist, ist der Standardwert -o otf ttf
.
-i
(Instanzen interpolieren): Es ist nicht immer das, was Sie erwarten, Pro-Master-Binärdateien zu haben; Wenn Sie in Ihrer Glyphs-Datei Instanzen („Exporte“) definiert haben, werden diese standardmäßig nicht generiert. Um sie zu generieren, übergeben Sie das Flag -i
, das statische Instanzen interpoliert und sie je nach Bedarf im Verzeichnis instance_ttf/
oder instance_otf/
ablegt.
--output-dir <some_directory>
: Platziert die gesamte Ausgabe im angegebenen Verzeichnis und nicht in den oben genannten Formatverzeichnissen.
--output-path <filename>
: Dies ist nur gültig, wenn die Ausgabe eine einzelne Binärdatei ist, und schreibt die Ausgabe in den angegebenen Dateinamen.
-f
(Komponenten reduzieren): Stellt sicher, dass alle Glyphen, die Komponenten enthalten, die wiederum Komponenten enthalten, auf eine einzige Ebene zerlegt werden. Dies wird empfohlen, da bestimmte Rendering-Umgebungen verschachtelte Komponenten nicht korrekt verarbeiten – weitere Details finden Sie unter diesem Link.
Siehe USAGE.md
.
Siehe TROUBLESHOOTING.md
.
Entwickler können die neueste Version von fontmake
erhalten, indem sie das Git-Repository klonen:
git clone https://github.com/googlefonts/fontmake
cd fontmake
pip install .
Entwickler, die Änderungen am Quellcode ohne Neuinstallation schnell testen möchten, können bei der Installation von einem lokalen Quellcode aus die Option „--editable“ verwenden:
pip install -e .
Es wird empfohlen, Fontmake in einer virtuellen Umgebung zu installieren, um Konflikte zwischen seinen Abhängigkeiten und anderen global installierten Modulen zu vermeiden.
Sie können das Pipx-Tool auch verwenden, um die Installation/Aktualisierung von Python-Apps wie Fontmake in isolierten Umgebungen zu automatisieren.
git tag -a v3.1.1
git push origin v3.1.1
, wobei origin
der Name der üblichen Fernbedienung ist, auf die Sie die Version übertragen möchten.