Avec le congélateur des fonctionnalités OpenType , vous pouvez «congeler» certaines fonctionnalités OpenType dans une police.
Ces fonctionnalités sont ensuite «activées par défaut», donc les caractères précédemment accessibles via les fonctionnalités OpenType uniquement (tels que les petitscaps, les chiffres de l'ancienne ou les formulaires localisés) seront désormais accessibles même dans des applications qui ne prennent pas en charge les fonctionnalités OpenType, telles que LibreOffice, OpenOffice ou dans les applications qui ne prennent pas en charge une fonctionnalité particulière, comme Microsoft Office dans le cas de SmallCaps.
Remarque: Cet outil mélange réellement le tableau cmap de la police en appliquant les fonctionnalités GSUB spécifiées. Cela ne fonctionnera pas pour les substitutions où aucun glyphe n'a aucune entrée cmap . Seules les substitutions uniques et alternatives sont prises en charge.
Cet outil est disponible en deux versions: OtFetureFreezer : une application GUI (graphique) simple pour macOS et Windows que vous pouvez télécharger et exécuter sans perparations spéciales, et PyftFeatFreeze : une application CLI (ligne de commande) qui nécessitait Python 3.6 ou plus récent à installer sur votre ordinateur.
Version actuelle: 1.32
Cet outil nécessite l'installation de Python 3.6 ou supérieure à être en premier. Obtenez-le à partir de https://www.python.org ou de votre gestionnaire de packages.
Nous vous recommandons d'utiliser PIPX pour installer des outils de ligne de commande Python. Pipx les baisse parfaitement sur votre ordinateur et vous donne un moyen facile d'ajouter, de mettre à jour et de supprimer des outils Python sur toutes les plates-formes, sans laisser de gâchis dans votre installation Python.
pipx install opentype-feature-freezer
Installez-le avec pip , comme n'importe quel autre package Python.
# This is best done inside a virtual environment, so you don't pollute
# your Python installation and need no special privileges to install anything.
pip install --upgrade opentype-feature-freezer
Si cela ne fonctionne pas, essayez:
python3 -m pip install --user --upgrade opentype-feature-freezer
pip install --upgrade git+https://github.com/twardoch/fonttools-opentype-feature-freezer
Si cela ne fonctionne pas, utilisez:
python3 -m pip install --user --upgrade git+https://github.com/twardoch/fonttools-opentype-feature-freezer
pip install --upgrade configparser avant d'installer Supposons que vous ayez la police Charissil-R.TTF (avec le nom de menu «Charis Sil»), et cette police comprend de vrais smallcaps accessibles via la disposition OpenType c2sc (pour majuscules) et smcp (pour les minuscules). Disons que vous souhaitez faire une deuxième police où les véritables petits capes sont disponibles par défaut. Il suffit de courir:
pyftfeatfreeze -f 'c2sc,smcp' -S -U SC -R 'Charis SIL/Charix,CharisSIL/Charix' CharisSIL-R.ttf CharixSC-R.ttf
Vous obtiendrez une nouvelle police Charissil-R.TTF (avec le nom de menu «Charix SC»). Cette police aura des petits écrans au lieu des lettres minuscules et majuscules, disponibles dans toutes les applications.
Étant donné que la police «Charis Sil» est sous licence et utilise les noms de police réservés «Charis» et «SIL», j'ai spécifié l'option -R pour remplacer les cordes de nom Charis SIL et CharisSIL par Charix . De cette façon, la police modifiée est conforme à l'OFL et je peux la distribuer.
L'exemple suivant remaps la police afin que les formulaires localisés bulgares soient disponibles par défaut dans toutes les applications (le suffixe «bg» sera ajouté au nom du menu):
pyftfeatfreeze -f 'locl' -s 'cyrl' -l 'BGR ' -S -U BG SomeFont.ttf SomeFontBG.ttf
Remarque: Pour remapter les fonctionnalités de plusieurs scripts ou systèmes de langues, exécutez l'outil plusieurs fois (en prenant la sortie de l'exécution précédente en entrée). Utilisez l'option -S uniquement lors de l'exécution finale.
Ce qui suit remplace la chaîne Lato par Otal dans tous les noms de police internes (dans les tables name et CFF ), sans faire de «congélation de fonctionnalités». Cela peut être utilisé pour modifier rapidement certains noms de polices internes:
pyftfeatfreeze -R 'Lato/Otal' Lato-Regular.ttf Otal-Regular.ttf
usage: pyftfeatfreeze [-h] [-f FEATURES] [-s SCRIPT] [-l LANG] [-z] [-S]
[-U USESUFFIX] [-R REPLACENAMES] [-i] [-r] [-n] [-v]
[-V]
inpath [outpath]
With pyftfeatfreeze you can "freeze" some OpenType features into a font. These
features are then "on by default", even in apps that don't support OpenType
features. Internally, the tool remaps the "cmap" table of the font by applying
the specified GSUB features. Only single and alternate substitutions are
supported.
positional arguments:
inpath input .otf or .ttf font file
outpath output .otf or .ttf font file (optional)
optional arguments:
-h, --help show this help message and exit
options to control feature freezing:
-f FEATURES, --features FEATURES
comma-separated list of OpenType feature tags, e.g.
'smcp,c2sc,onum'
-s SCRIPT, --script SCRIPT
OpenType script tag, e.g. 'cyrl' (default: 'latn')
-l LANG, --lang LANG OpenType language tag, e.g. 'SRB ' (optional)
-z, --zapnames zap glyphnames from the font ('post' table version 3,
.ttf only)
options to control font renaming:
-S, --suffix add a suffix to the font family name (by default, the
suffix will be constructed from the OpenType feature
tags)
-U USESUFFIX, --usesuffix USESUFFIX
use a custom suffix when --suffix is provided
-R REPLACENAMES, --replacenames REPLACENAMES
search for strings in the font naming tables and
replace them, format is
'search1/replace1,search2/replace2,...'
-i, --info update font version string
reporting options:
-r, --report report languages, scripts and features in font
-n, --names output names of remapped glyphs during processing
-v, --verbose print additional information during processing
-V, --version show program's version number and exit
Examples: pyftfeatfreeze -f 'c2sc,smcp' -S -U SC OpenSans.ttf OpenSansSC.ttf
pyftfeatfreeze -R 'Lato/Otal' Lato-Regular.ttf Otal-Regular.ttf
CONSEIL: L'option -n offre une liste séparée par l'espace de glyphes «gelés». Si vous le redirigez vers un fichier, vous pouvez utiliser cette liste comme entrée pour pyftsubset afin de créer une petite police qui ne comprend que les glyphes «gelés».
Pour signaler un problème, ouvrez un problème . Vous avez besoin d'un compte GitHub.
Cet outil est sous licence «tel quel» sous la licence Apache, version 2.0. En utilisant l'outil, vous acceptez toutes les conditions de la licence, y compris la non-responsabilité de garantie et la limitation de la responsabilité. Si vous utilisez cet outil, veuillez consulter si la CLUA de votre police permet les modifications. Si la police est sous licence en vertu de l'OFL et utilise le nom de police réservé, veuillez utiliser l'option -R pour modifier le nom de police réservé en quelque chose d'autre.
Cet outil est écrit pour Python 3.6+ et utilise Fonttools / TTX.
-s (script) de sorte que si elle n'est pas fournie, le remappage est dans tous les scripts.-S (suffixe) de sorte que si elle n'est pas fournie, aucun sufix n'est ajouté et ajouté les applications GUI.fonttools-utils sont maintenant à Fonttools-TTXJSON et Mac-OS-X-System-Font-ReplacerPour construire le package Python, installez la poésie:
pip install poetry
ou
python3 -m install --user --upgrade poetry
Ensuite, dans le dossier principal de l'exécution du projet:
poetry build
Pour construire le DMG & EXE, vous avez besoin de macOS. Dans le sous-dossier de l'application, exécutez ./macdeploy all