Font-Line-это Libre, инструмент командной строки с открытым исходным исходным кодом для отчетности по вертикальным метрикам OpenType и модификации интернет-линейных линий на основе командной строки. Он поддерживает .ttf и .otf Font.
$ pip3 install font-line$ font-line report [font path]$ font-line percent [integer %] [font path]$ font-line --help Font-Line построена с Python и поддерживает переводчиков Python 3.7+. Проверьте установленную версию Python в командной строке с командой:
$ python3 --version
Используйте любой из следующих методов для установки Font-Line в вашей системе.
Последний выпуск Font-Line доступен через индекс пакетов Python и может быть установлен с помощью PIP:
$ pip3 install font-line
Чтобы обновить новую версию Font-Line после установки PIP, используйте команду pip3 install --upgrade font-line .
Текущая версия репозитория (которая может быть впереди выпуска PYPI) может быть установлена путем загрузки репозитория или клонирования с помощью GIT:
git clone https://github.com/source-foundry/font-line.git
Перейдите к каталогу репозитория верхнего уровня и введите следующую команду:
$ pip3 install .
Следуйте тем же инструкциям, чтобы обновить новую версию приложения, если вы установите с этим подходом.
Font-Line работает через подкоманды для исполняемого файла командной строки font-line . Доступны следующие субъекты:
percent - изменить расстояние между линиями шрифта до процента восхождения на расстояние на расстоянииreport - Отчет о значениях метрик OpenType для шрифтаИспользование этих подъемов подробно описано ниже.
Следующие значения вертикальных метриков OpenType и вычисленные значения, полученные из этих данных, отображаются с подкомандом report :
report об использовании подкомандаВведите один или несколько аргументов пути шрифта в команду:
$ font-line report [fontpath 1] <fontpath ...>
Вот пример отчета, сгенерированного с помощью файла Hack Signface Hack-Regular.ttf с использованием команды:
$ 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
Отчет включает в себя строку версии шрифтов, хэш-дайдж для шрифта SHA-1 и метрики таблицы Opentype, которые связаны с интервалом линий в шрифте.
Unix/Linux/OS X Пользователи могут написать этот отчет в файл с помощью идиомы командной строки >
$ font-line report TheFont.ttf > font-report.txt
Измените путь файла font-report.txt выше, чтобы получить строку пути файла по вашему выбору.
Расчеты базового уровня до базового расстояния (BTBD) выполняются в соответствии с рекомендациями Microsoft для шрифтов Opentype и спецификации таблицы OS/2 Opentype.
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]
где внешнее руководство определяется как:
MAX(0, hhea.LineGap - ((OS/2.WinAscent + OS/2.winDescent) - (hhea.Ascent - hhea.Descent)))
Font-Line поддерживает автоматические модификации интернет-интернет-интернет для пользовательского процента единиц на метрику EM. Это значение будет сокращено как UPM ниже.
percent использования подколдаВведите желаемый процент UPM в качестве первого аргумента в команду. Это должно быть введено как целочисленное значение . Затем введите один или несколько путей шрифта, к которым вы хотели бы применить изменения в метрике шрифтов.
$ font-line percent [percent change] [fontpath 1] <fontpath ...>
Общее значение по умолчанию, используемое дизайнерами шрифтов, составляет 20% UPM. Чтобы изменить шрифт на пути TheFont.ttf до 20% от метрики UPM, вы введете следующую команду:
$ font-line percent 20 TheFont.ttf
Увеличить или уменьшить целочисленное значение, чтобы соответствующим образом увеличить или уменьшить расстояние между линиями.
Оригинальный файл шрифта сохраняется в немодифицированной версии, а модифицированная запись файла происходит на новом пути, определяемом как [original filename]-linegap[percent].[ttf|otf] . Путь к файлу сообщается вам в стандартном выходе после завершения модификации. Font-Line не модифицирует набор Glyph или подсказки, применяемые к шрифту. См. Раздел «Подробности» ниже для описания модификаций таблицы Opentype, которые происходят, когда приложение используется в файле шрифта.
Вы можете осмотреть вертикальные метрики в новом файле шрифтов с подколдом report (см. Использование выше).
percent подкоманда Интерпретация и отображение этих значений множественных вертикальных метрик зависят от платформы и приложений. Там нет широкого принятого «лучшего» подхода. Таким образом, Font-Line пытается сохранить оригинальную конструкцию метрик в шрифте, когда модификации вносятся с percent подколмой.
Font-Line в настоящее время поддерживает три обычно используемых вертикальных метрических подходов.
Подход к вертикальным показателям 1 :
Где метрики определяются как:
Font-Line рассчитывает значение дельты для общей ожидаемой высоты на основе % значения UPM, определенного в командной строке. Разница между этим значением и наблюдаемым числом единиц, которые охватывают [OS/2] WinAscent и Windescent значения, делится на половину, а затем добавляется в (для увеличения расстояния линий) или вычитается из (для уменьшенного расстояния между линиями) каждый из трех наборов значений восхождения/потомка в шрифте. Значения [OS/2] TypolineGAP и [HHEA] LineGAP не изменены.
Подход 2 вертикальных метрик 2
Где метрики определяются как:
Font-Line рассчитывает значение дельты для общей ожидаемой высоты на основе % значения UPM, определенного в командной строке. Разница между этим значением и наблюдаемым количеством единиц, которые охватывают [OS/2] WinAscent до Windescent значения, делится на половину, а затем добавляется в (для увеличения интервала линий) или вычитается из (для уменьшенного расстояния между линиями) Winasc/Windesc и [HHEA] ASC/DESC. Значения [OS/2] TypOASC/TIPODESC не изменяются и не поддерживают определение значения Size = UPM. Значения [OS/2] TypolineGAP и [HHEA] LineGAP не изменены.
Подход 3 вертикальных метрик 3
Где метрики определяются как:
Изменения значений метрик в шрифте определяются как :
Обратите внимание, что внутренние ведущие модификации разделены равномерно по значениям [HHEA] Ascent & Descent, а также между [OS/2] Winascent & Windescent значениями. Мы добавляем половину нового значения типолинегапа [OS/2] в исходный типосендер [OS/2] или типодессинг, чтобы определить эти новые свойства метрик. Значение [HHEA] LineGAP всегда определяется как ноль.
Недавно определенные значения вертикальных метрик могут привести к обрезке компонентов глифа, если не определены должным образом. В Font-Line нет тестов, чтобы обеспечить уверенность в том, что это не происходит. Мы предполагаем, что пользователь разбирается в этих вопросах перед использованием приложения и оставляет это тестирование дизайнеру / пользователю, прежде чем модифицированные шрифты будут использованы в производственных настройках.
Пожалуйста, отправьте новый отчет о выпуске в репозитории проекта.
Font-Line построена с фантастической библиотекой Python Fonttools.
MIT Лицензия. Смотрите License.md для деталей.