Benutzerdokumentation und Entwicklerdokumentation sind unter „Read the Docs“ verfügbar.
FontTools erfordert Python 3.8 oder höher. Wir versuchen, den gleichen Zeitplan für die Mindestunterstützung der Python-Version einzuhalten wie NumPy (siehe NEP 29).
Das Paket ist im Python Package Index (PyPI) aufgeführt, sodass Sie es mit pip installieren können:
pip install fonttools
Wenn Sie zur Entwicklung beitragen möchten, können Sie das Repository von GitHub klonen, das Paket im „bearbeitbaren“ Modus installieren und den Quellcode vor Ort ändern. Wir empfehlen die Erstellung einer virtuellen Umgebung mit dem Modul „virtualenv“ oder „Python 3 venv“.
# download the source code to 'fonttools' folder
git clone https://github.com/fonttools/fonttools.git
cd fonttools
# create new virtual environment called e.g. 'fonttools-venv', or anything you like
python -m virtualenv fonttools-venv
# source the `activate` shell script to enter the environment (Unix-like); to exit, just type `deactivate`
. fonttools-venv/bin/activate
# to activate the virtual environment in Windows `cmd.exe`, do
fonttools-venv S cripts a ctivate.bat
# install in 'editable' mode
pip install -e .
Das Paket fontTools
verfügt derzeit über keine (erforderlichen) externen Abhängigkeiten außer den in der Python-Standardbibliothek enthaltenen Modulen. Einige seiner Module erfordern jedoch einige zusätzliche Abhängigkeiten, die zum Freischalten optionaler Funktionen erforderlich sind. Die PyPI-Distribution fonttools
unterstützt auch sogenannte „Extras“, also eine Reihe von Schlüsselwörtern, die eine Gruppe zusätzlicher Abhängigkeiten beschreiben, die bei der Installation über Pip oder bei der Angabe einer Anforderung verwendet werden können. Zum Beispiel:
pip install fonttools[ufo,lxml,woff,unicode]
Dieser Befehl installiert Fonttools sowie die optionalen Abhängigkeiten, die erforderlich sind, um die zusätzlichen Funktionen namens „ufo“ usw. freizuschalten.
Lib/fontTools/misc/etree.py
Das Modul exportiert eine ElementTree-ähnliche API zum Lesen/Schreiben von XML-Dateien und ermöglicht die Verwendung des integrierten xml.etree
Moduls oder von lxml als Backend. Letzteres wird, sofern vorhanden, bevorzugt, da es im Allgemeinen schneller und sicherer ist.
Extra: lxml
Lib/fontTools/ufoLib
Paket zum Lesen und Schreiben von UFO-Quelldateien; es erfordert:
pyfilesystem2
) Dateisystem-Abstraktionsschicht.enum
-Modul (nur auf Python < 3.4 erforderlich). Extra: ufo
Lib/fontTools/ttLib/woff2.py
Modul zum Komprimieren/Dekomprimieren von WOFF 2.0-Webfonts; es erfordert:
Extra: woff
Lib/fontTools/ttLib/sfnt.py
Um WOFF 1.0-Webschriftarten besser zu komprimieren, kann anstelle der integrierten zlib
-Bibliothek das folgende Modul verwendet werden:
Extra: woff
Lib/fontTools/unicode.py
Um die Unicode-Zeichennamen beim Dumpen der cmap
-Tabelle mit ttx
anzuzeigen, verwenden wir das unicodedata
Modul in der Standardbibliothek. Die darin enthaltene Version variiert zwischen verschiedenen Python-Versionen. Um die neuesten verfügbaren Daten zu nutzen, können Sie Folgendes installieren:
unicodedata
Backport für Python 3.x, aktualisiert auf die neueste Unicode-Version 15.0. Extra: unicode
Lib/fontTools/varLib/interpolatable.py
Modul zum Finden falscher Kontur-/Komponentenreihenfolge zwischen verschiedenen Mastern. Es erfordert eines der folgenden Pakete, um das sogenannte „Minimum-Weight-Perfect-Matching-Problem in bipartiten Graphen“ oder das Zuweisungsproblem zu lösen:
Um die Ergebnisse im PDF- oder HTML-Format darzustellen, müssen Sie außerdem Folgendes installieren:
Extra: interpolatable
Lib/fontTools/varLib/plot.py
Modul zur Visualisierung von DesignSpaceDocument und dem resultierenden VariationModel.
Extra: plot
Lib/fontTools/misc/symfont.py
Erweitertes Modul für die Analyse symbolischer Schriftstatistiken; es erfordert:
Extra: symfont
Lib/fontTools/t1Lib.py
Um den Dateiersteller und -typ von Macintosh PostScript Type 1-Schriftarten auf Python 3 zu erhalten, müssen Sie das folgende Modul installieren, da das alte MacOS
-Modul nicht mehr in Mac Python enthalten ist:
Extra: type1
Lib/fontTools/ttLib/removeOverlaps.py
Vereinfachen Sie TrueType-Glyphen, indem Sie überlappende Konturen und Komponenten zusammenführen.
Extra: pathops
Lib/fontTools/pens/cocoaPen.py
und Lib/fontTools/pens/quartzPen.py
Stifte zum Zeichnen von Glyphen mit Cocoa NSBezierPath
oder CGPath
erfordern:
Lib/fontTools/pens/qtPen.py
Stift zum Zeichnen von Glyphen mit QPainterPath
von Qt, erfordert:
Lib/fontTools/pens/reportLabPen.py
Zum Zeichnen von Glyphen als PNG-Bilder ist Folgendes erforderlich:
Lib/fontTools/pens/freetypePen.py
Zum Zeichnen von Glyphen mit FreeType als Rasterbilder ist Folgendes erforderlich:
Lib/fontTools/ttLib/tables/otBase.py
Verwenden Sie die Harfbuzz-Bibliothek, um GPOS/GSUB mithilfe der hb_repack
-Methode zu serialisieren. Dies erfordert:
Extra: repacker
NEWS.rst
mit allen Änderungen seit der letzten Veröffentlichung. Schreiben Sie für jede PR einen Changelog-Eintrag mit ein oder zwei kurzen Sätzen, die ihn zusammenfassen, sowie Links zur PR und relevanten Themen, die von der PR angesprochen werden. Geben Sie keinen neuen Titel ein, der nächste Befehl erledigt das für Sie.pip install -r dev-requirements.txt
aus und führen Sie dann den Befehl python setup.py release
an der Spitze des main
aus. Standardmäßig wird dadurch nur die dritte oder „Patch“-Ziffer erhöht, es sei denn, Sie übergeben --major
oder --minor
um jeweils die erste oder zweite Ziffer zu erhöhen. Dadurch wird die Paketversionszeichenfolge erweitert, die Änderungen seit der neuesten Version aus NEWS.rst
extrahiert und dieser Text verwendet, um ein mit Anmerkungen versehenes Git-Tag (oder ein signiertes Git-Tag, wenn Sie die Option --sign
übergeben und Ihr Git- und Github-Konto vorhanden sind) zu erstellen zum Signieren von Commits mit einem GPG-Schlüssel konfiguriert). Außerdem wird ein zusätzlicher Versionssprung vorgenommen, der den Hauptzweig für den nachfolgenden Entwicklungszyklus öffnetgit push --follow-tags
ausführen. Hinweis: Möglicherweise werden auch andere lokale Tags übertragen. Seien Sie vorsichtig.In alphabetischer Reihenfolge:
aschmitz, Olivier Berten, Samyak Bhuta, Erik van Blokland, Petr van Blokland, Jelle Bosma, Sascha Brawer, Tom Byrer, Antonio Cavedoni, Frédéric Coiffier, Vincent Connare, David Corbett, Simon Cozens, Dave Crossland, Simon Daniels, Peter Dekkers, Behdad Esfahbod, Behnam Esfahbod, Hannes Famira, Sam Fishman, Matt Fontaine, Takaaki Fuji, Rob Hagemans, Yannis Haralambous, Greg Hitchcock, Jeremie Hornus, Khaled Hosny, John Hudson, Denis Moyogo Jacquerye, Jack Jansen, Tom Kacvinsky, Jens Kutilek, Antoine Leca, Werner Lemberg, Tal Leming, Peter Lofting, Cosimo Lupo , Olli Meier, Masaya Nakamura, Dave Opstad, Laurence Penney, Roozbeh Pournader, Garret Rieger, Read Roberts, Colin Rofls, Guido van Rossum, Just van Rossum, Andreas Seidel, Georg Seifert, Chris Simpkins, Miguel Sousa, Adam Twardoch, Adrien Tétar, Vitaly Volkov, Paul Wise.
Copyright (c) 2000 BeOpen.com. Alle Rechte vorbehalten.
Copyright (c) 1995-2001 Corporation for National Research Initiatives. Alle Rechte vorbehalten.
Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. Alle Rechte vorbehalten.
Viel Spaß!