Panosifier est une application de ligne de commande Python 3.6+ qui modifie les données Panose dans les polices. L'outil modifie les champs Panose Spécification OpenType OS / 2.
Dans de nombreux cas, vous pouvez définir ces valeurs dans vos fichiers source de conception de type et vous fier au compilateur de police pour écrire ces valeurs dans vos instances de police. Cependant, il existe des situations où ce comportement n'est pas bien défini et diffère entre les compilateurs de polices.
Un exemple est l'approche des données Panose Data dans des fichiers de format de police variable. Dans ce cas, la spécification OpenType est vague, les environnements où ces données sont essentielles ne sont pas bien définies et les compilateurs gèrent différemment les données Panose définies par le fichier source.
Cet outil vous permet de modifier les décisions de construction dans ces situations.
pip install panosifier--panose ou individuellement avec les dix options de champ Panose OpenType disponibles (voir panosifier --help pour une liste des options disponibles)Voir la documentation ci-dessous pour plus de détails.
Ce projet nécessite un interprète Python 3.6+.
Nous recommandons l'installation dans un environnement virtuel Python3.
Utilisez l'une des approches d'installation suivantes:
$ pip3 install panosifier
$ git clone https://github.com/source-foundry/panosifier.git
$ cd panosifier
$ pip3 install -r requirements.txt .
L'approche suivante installe le projet et les dépendances des développeurs facultatives associées afin que les modifications de source soient disponibles sans avoir besoin de réinstallation.
$ git clone https://github.com/source-foundry/panosifier.git
$ cd panosifier
$ pip3 install --ignore-installed -r requirements.txt -e ".[dev]"
Panosifier prend en charge deux approches de ligne de commande pour modifier les données Panose dans un ou plusieurs chemins de police définis par ligne:
--panoseVous pouvez définir tous les champs Panose à la fois avec une liste ordonnée et dédiée à des virgules des 10 valeurs Panose OpenType. Celles-ci doivent être des valeurs entières.
L'ordre sur le terrain est:
L'image suivante illustre cet ordre dans l'idiome de définition de l'option --panose . Notez que les valeurs de cet exemple ne sont pas destinées à être valides pour une police, mais plutôt à démontrer comment l'ordre de définition cartocie des champs de définition de panose.

Il existe dix définitions de panose OpenType disponibles. Chaque champ Panose a une option correspondante dans l'outil de panosier. Ces options vous permettent de définir chaque champ individuellement et de rendre les définitions de panose explicites dans les flux de travail de construction scriptés. Définissez ces options avec des valeurs entières.
L'exemple ci-dessous modifie l'écriture de données Panose dans la section de liste dédiée à la virgule ci-dessus avec de nouveaux valeurs de type familial et des valeurs de proportion de 2 et 9, respectivement:

Utilisez panosifier --help pour afficher toutes les options disponibles.
Remarque : Cet outil n'effectue pas de vérifications de santé mentale sur vos définitions et peut être utilisée pour écrire des définitions non valides dans les polices. L'outil suppose que vous comprenez comment définir ces valeurs de panose. Veuillez vous référer à la documentation Panose pour un contexte détaillé.
Panosifier signale les définitions de données Panose dans le flux de sortie standard à la fin de l'exécution.
Les contributions sont chaleureusement les bienvenues. Un environnement de dépendance de développement peut être installé en mode modifiable avec la documentation d'installation du développeur ci-dessus.
Veuillez utiliser l'approche standard de la demande de traction GitHub pour proposer des modifications de source.
Nous Lint Python Source Files avec flake8 . Voir l'objectif test-lint MakeFile pour plus de détails.
Les tests d'intégration continue sont effectués sur le service GitHub Actions avec la chaîne d'outils pytest . Les modules de test sont situés dans le répertoire tests du référentiel.
Effectuez des tests de version d'interprète Python local avec la commande suivante exécutée à partir de la racine du référentiel:
$ tox -e [PYTHON INTERPRETER VERSION]
Veuillez consulter la documentation tox pour plus de détails.
Nous effectuons des tests de couverture des tests unitaires avec l'outil coverage . Voir l'objectif test-coverage MakeFile pour plus de détails.
Panosifier est construit avec la fantastique bibliothèque Fonttools Python gratuite.
Licence Apache v2.0