Font-Line est un outil de ligne de commande Libre, Open Source pour les rapports de métriques verticaux OpenType et les modifications d'espacement des lignes de police basées sur la ligne de commande. Il prend en charge les constructions de polices .ttf et .otf .
$ pip3 install font-line$ font-line report [font path]$ font-line percent [integer %] [font path]$ font-line --help Font-Line est construite avec Python et prend en charge les interprètes Python 3.7+. Vérifiez votre version Python installée sur la ligne de commande avec la commande:
$ python3 --version
Utilisez l'une des méthodes suivantes pour installer Font-Line sur votre système.
La dernière version de Font-Line est disponible via l'index Python Package et peut être installé avec PIP:
$ pip3 install font-line
Pour passer à une nouvelle version de Font-Line après une installation PIP, utilisez la commande pip3 install --upgrade font-line .
La version actuelle du référentiel (qui peut être en avance sur la version PYPI) peut être installée en téléchargeant le référentiel ou en le clonant avec GIT:
git clone https://github.com/source-foundry/font-line.git
Accédez au répertoire du référentiel de niveau supérieur et entrez la commande suivante:
$ pip3 install .
Suivez les mêmes instructions pour passer à une nouvelle version de l'application si vous installez avec cette approche.
Font-Line fonctionne via des sous-commands à la ligne de commande font-line EXECTACTABLE. Les sous-communs suivants sont disponibles:
percent - Modifiez l'espacement de ligne d'une police à un pour cent de l'ascension pour descendre la distancereport - Rapport Valeurs de métriques OpenType pour une policeL'utilisation de ces sous-communs est décrite en détail ci-dessous.
Les valeurs de métriques verticales d'OpenType suivantes et les valeurs calculées dérivées de ces données sont affichées avec le sous-commandide report :
report l'utilisation des sous-communsEntrez un ou plusieurs arguments de chemin de police à la commande:
$ font-line report [fontpath 1] <fontpath ...>
Voici un exemple du rapport généré avec le fichier de type piratage Hack-Regular.ttf à l'aide de la commande:
$ font-line report Hack-Regular.ttf
=== Hack-Regular.ttf ===
Version 3.003;[3114f1256]-release
SHA1: b1cd50ba36380d6d6ada37facfc954a8f20c15ba
::::::::::::::::::::::::::::::::::::::::::::::::::
Metrics
::::::::::::::::::::::::::::::::::::::::::::::::::
[head] Units per Em: 2048
[head] yMax: 2027
[head] yMin: -605
[OS/2] CapHeight: 1493
[OS/2] xHeight: 1120
[OS/2] TypoAscender: 1556
[OS/2] TypoDescender: -492
[OS/2] WinAscent: 1901
[OS/2] WinDescent: 483
[hhea] Ascent: 1901
[hhea] Descent: -483
[hhea] LineGap: 0
[OS/2] TypoLineGap: 410
::::::::::::::::::::::::::::::::::::::::::::::::::
Ascent to Descent Calculations
::::::::::::::::::::::::::::::::::::::::::::::::::
[hhea] Ascent to Descent: 2384
[OS/2] TypoAscender to TypoDescender: 2048
[OS/2] WinAscent to WinDescent: 2384
::::::::::::::::::::::::::::::::::::::::::::::::::
Delta Values
::::::::::::::::::::::::::::::::::::::::::::::::::
[hhea] Ascent to [OS/2] TypoAscender: 345
[hhea] Descent to [OS/2] TypoDescender: -9
[OS/2] WinAscent to [OS/2] TypoAscender: 345
[OS/2] WinDescent to [OS/2] TypoDescender: -9
::::::::::::::::::::::::::::::::::::::::::::::::::
Baseline to Baseline Distances
::::::::::::::::::::::::::::::::::::::::::::::::::
hhea metrics: 2384
typo metrics: 2458
win metrics: 2384
[OS/2] fsSelection USE_TYPO_METRICS bit set: False
::::::::::::::::::::::::::::::::::::::::::::::::::
Ratios
::::::::::::::::::::::::::::::::::::::::::::::::::
hhea metrics / UPM: 1.16
typo metrics / UPM: 1.2
win metrics / UPM: 1.16
Le rapport comprend la chaîne de version de police, un digestion de hachage SHA-1 du fichier de police et des mesures de table OpenType qui sont associées à l'espacement des lignes dans la police.
Les utilisateurs UNIX / Linux / OS X peuvent écrire ce rapport dans un fichier avec > idiome de ligne de commande:
$ font-line report TheFont.ttf > font-report.txt
Modifiez le chemin de fichier font-report.txt ci-dessus vers la chaîne de chemin de fichier de votre choix.
Les calculs de base à la distance de base (BTBD) sont effectués en fonction des recommandations Microsoft pour les polices OpenType et la spécification du tableau OSFype OS / 2.
BTBD = hhea.Ascent + abs(hhea.Descent) + hhea.LineGap
BTBD = OS/2.typoAscent + abs(OS/2.typoDescent) + OS/2.typoLineGap
BTBD = OS/2.winAscent + OS/2.winDescent + [External Leading]
où la direction externe est définie comme:
MAX(0, hhea.LineGap - ((OS/2.WinAscent + OS/2.winDescent) - (hhea.Ascent - hhea.Descent)))
Font-Line prend en charge les modifications automatisées d'espacement des lignes en un pourcentage défini par l'utilisateur des unités par mesure EM. Cette valeur sera abrégée en UPM ci-dessous.
percent d'utilisation des sous-communsEntrez le pourcentage souhaité de l'UPM comme premier argument à la commande. Cela doit être entré en valeur entière . Entrez ensuite un ou plusieurs chemins de police auxquels vous souhaitez appliquer vos modifications de métriques de police.
$ font-line percent [percent change] [fontpath 1] <fontpath ...>
Une valeur par défaut courante utilisée par les concepteurs de polices est de 20% UPM. Pour modifier une police sur le chemin TheFont.ttf à 20% de la métrique UPM, vous entreriez la commande suivante:
$ font-line percent 20 TheFont.ttf
Augmentez ou diminuez la valeur entière pour augmenter ou diminuer votre espacement de ligne en conséquence.
Le fichier de police d'origine est conservé dans une version non modifiée et l'écriture de fichiers modifiée se déroule sur un nouveau chemin défini comme [original filename]-linegap[percent].[ttf|otf] . Le chemin d'accès au fichier vous est signalé dans la sortie standard une fois la modification terminée. La police ne modifie pas l'ensemble de glyphes ou les conseils appliqués à la police. Voir la section Détails ci-dessous pour une description des modifications de la table OpenType qui se produisent lorsque l'application est utilisée sur un fichier de police.
Vous pouvez inspecter les métriques verticales dans le nouveau fichier de police avec le sous-command report (voir l'utilisation ci-dessus).
percent de sous-command L'interprétation et l'affichage de ces multiples valeurs de métriques verticales dépend de la plate-forme et de l'application. Il n'y a pas de «meilleure» approche largement acceptée. En tant que tel, la police tente de préserver la conception des métriques d'origine dans la police lorsque les modifications sont effectuées avec le percent de sous-command.
Font-Line prend actuellement en charge trois approches de métriques verticales couramment utilisées.
Métriques verticales Approche 1 :
Où les métriques sont définies comme:
Font-Line calcule une valeur delta pour la hauteur totale attendue en fonction de la valeur% UPM définie sur la ligne de commande. La différence entre cette valeur et le nombre observé d'unités qui s'étendent sur les valeurs [OS / 2] WinAscent à Windescent sont divisées de moitié, puis ajoutées à (pour l'espacement accru) ou soustraite de (pour une diminution de l'espacement des lignes) chacun des trois ensembles de valeurs ascendantes / descendantes dans la police. Les valeurs LINEGAP [OS / 2] TYPOLINEGAP et [HHEA] ne sont pas modifiées.
Approche des métriques verticales 2
Où les métriques sont définies comme:
Font-Line calcule une valeur delta pour la hauteur totale attendue en fonction de la valeur% UPM définie sur la ligne de commande. La différence entre cette valeur et le nombre observé d'unités qui s'étendent sur les valeurs [OS / 2] WinAscent à Windescent sont divisées de moitié, puis ajoutées à (pour l'espacement accru) ou soustraite de (pour une diminution de l'espacement des lignes) les valeurs [OS / 2] Winasc / Windec et [HHEA] ASC / DESC. Les valeurs [OS / 2] typoasc / typodesc ne sont pas modifiées et maintiennent une définition de la valeur de taille = upm. Les valeurs LINEGAP [OS / 2] TYPOLINEGAP et [HHEA] ne sont pas modifiées.
Approche des métriques verticales 3
Où les métriques sont définies comme:
Les modifications des valeurs de métrique dans la police sont définies comme :
Notez que les modifications de pointe internes sont divisées uniformément entre les valeurs de montée [HHEA] et de descente, et sur [OS / 2] WinAscent et Windescent Valeurs. Nous ajoutons la moitié de la nouvelle valeur [OS / 2] typolinegap à la [OS / 2] typoascender ou typodescender d'origine afin de définir ces nouvelles propriétés de métriques. La valeur [HHEA] linegap est toujours définie comme zéro.
Les valeurs de métriques verticales nouvellement définies peuvent conduire à l'écrasement des composants des glyphes s'ils ne sont pas correctement définis. Il n'y a pas de tests en ligne de police pour assurer que cela ne se produit pas. Nous supposons que l'utilisateur est versé dans ces problèmes avant l'utilisation de l'application et laisse ce test au concepteur / utilisateur avant que les polices modifiées ne soient utilisées dans un paramètre de production.
Veuillez soumettre un nouveau rapport sur le référentiel du projet.
Font-Line est construite avec la fantastique bibliothèque Fonttools Python.
Licence MIT. Voir Licence.MD pour plus de détails.