fontmake
compile les polices de diverses sources ( .glyphs
, .ufo
, designspace
) en binaires ( .otf
, .ttf
). Vous pouvez l'utiliser pour créer des instances statiques et des polices variables.
Fontmake nécessite Python 3.8 ou version ultérieure.
Les versions sont disponibles sur PyPI et peuvent être installées avec pip.
pip3 install fontmake
Utilisez l'option -U
, --upgrade
pour mettre à jour fontmake et ses dépendances vers la dernière version disponible :
pip3 install -U fontmake
Après l'installation, vous pourrez utiliser l'exécutable fontmake
.
Par exemple, pour compiler une police variable à partir d'un fichier source Glyphs, utilisez :
fontmake MyFont.glyphs -o variable
Les arguments de ligne de commande les plus importants de l'exécutable fontmake
sont l'entrée requise, spécifiée soit comme argument de position, soit à l'aide de l'un des indicateurs -g
/ -u
/ -m
, et l'indicateur facultatif -o
, qui choisit le format du fichier de sortie.
Il existe deux manières de spécifier le ou les fichiers source :
On peut soit utiliser les drapeaux suivants, mutuellement exclusifs :
-g filename.glyphs
: Convertit un fichier source Glyphs en binaire.-u filename.ufo ...
: Convertit un ou plusieurs fichiers UFO(Z) en binaire.-m filename.designspace
: Convertit un fichier Designspace en binaire. (Le -m
est pour mutatormath
, une ancienne bibliothèque Python pour gérer les espaces de conception.) Alternativement, on peut spécifier la ou les entrées comme arguments de position sans l'indicateur, laissant fontmake déduire le format source à partir de l'extension du fichier : par exemple fontmake MyFont.designspace
, etc.
Remarque : si les arguments positionnels sont précédés d'une option qui prend un ou plusieurs arguments, vous devez utiliser le séparateur spécial --
pour marquer tous les arguments suivants comme positionnels (non-options), sinon l'analyseur sera confus. Par exemple, l'option -i
prend zéro ou un argument (voir plus bas pour plus de détails) ; sans --
, argparse pense que vous n'avez fourni aucune entrée :
fontmake -i -- MyFont.designspace
Exactement un type d’entrée peut/doit être spécifié, en utilisant l’une ou l’autre approche.
Vous pouvez fournir un ou plusieurs formats de fichier de sortie après l'option -o
. Par exemple, -o otf ttf
crée des fichiers de polices binaires OTF et TTF pour chaque maître de votre fichier d'entrée.
Les formats de fichiers de sortie suivants sont disponibles :
otf
: binaires OTF par maître (contour CFF). Placé dans le répertoire master_otf/
.ttf
: binaires TTF (TrueType-outline) par maître. Placé dans le répertoire master_ttf/
.otf-cff2
: binaires OTF par maître avec contours CFF2. Placé dans le répertoire master_otf/
.variable
: une police variable TrueType. Placé dans le répertoire variable_ttf/
.variable-cff2
: Une police variable avec des contours CFF2. Placé dans le répertoire variable_otf/
.Les formats de fichiers de sortie suivants sont également disponibles, mais sont généralement utilisés en interne par fontmake comme étape intermédiaire vers l'une des sorties ci-dessus :
otf-interpolatable
: binaires OTF adaptés à la fusion dans une police variable. Placé dans le répertoire master_otf_interpolatable/
. (Ceux-ci diffèrent des otf
en ce sens que les contours ne sont pas optimisés.)ttf-interpolatable
: binaires TTF adaptés à la fusion dans une police variable. Placé dans le répertoire master_ttf_interpolatable/
. (Les contours sont convertis en courbes quadratiques de manière compatible avec l'interpolation.)ufo
: Les sources de glyphes peuvent être converties au format UFO, ou au format UFO zip ( .ufoz
) avec l'option --save-ufo-as-zip
. Placé dans le répertoire master_ufo/
. Si aucune option de format n'est spécifiée, la valeur par défaut est -o otf ttf
.
-i
(Instances d'interpolation) : avoir des binaires par maître n'est pas toujours ce à quoi vous vous attendez ; si vous avez défini des instances (« exports ») dans votre fichier Glyphes, elles ne seront pas générées par défaut. Pour les générer, transmettez l'indicateur -i
, qui interpole les instances statiques et les place dans le répertoire instance_ttf/
ou instance_otf/
selon le cas.
--output-dir <some_directory>
: Place toutes les sorties dans le répertoire donné, au lieu des répertoires par format mentionnés ci-dessus.
--output-path <filename>
: ceci n'est valide que si la sortie est un seul fichier binaire et écrit la sortie dans le nom de fichier donné.
-f
(Aplatir les composants) : garantit que tous les glyphes contenant des composants qui contiennent eux-mêmes des composants sont décomposés en un seul niveau. Ceci est recommandé car certains environnements de rendu ne gèrent pas correctement les composants imbriqués – voir ce lien pour plus de détails.
Voir USAGE.md
.
Voir TROUBLESHOOTING.md
.
Les développeurs peuvent obtenir la dernière version de fontmake
en clonant le référentiel git :
git clone https://github.com/googlefonts/fontmake
cd fontmake
pip install .
Les développeurs qui souhaitent tester rapidement les modifications apportées au code source sans réinstaller peuvent utiliser l'option "--editable" lors de l'installation à partir d'une extraction de source locale :
pip install -e .
Il est recommandé d'installer fontmake dans un environnement virtuel pour éviter les conflits entre ses dépendances et les autres modules installés globalement.
Vous pouvez également utiliser l'outil pipx pour automatiser l'installation/mise à niveau d'applications Python comme fontmake dans des environnements isolés.
git tag -a v3.1.1
git push origin v3.1.1
, où origin
est le nom de la télécommande habituelle vers laquelle vous souhaitez transmettre la version.