fontmake
компилирует шрифты из различных источников ( .glyphs
, .ufo
, designspace
) в двоичные файлы ( .otf
, .ttf
). Вы можете использовать его для создания статических экземпляров и переменных шрифтов.
Fontmake требует Python 3.8 или более поздней версии.
Релизы доступны на PyPI и могут быть установлены с помощью pip.
pip3 install fontmake
Используйте опцию -U
, --upgrade
, чтобы обновить Fontmake и его зависимости до новейшей доступной версии:
pip3 install -U fontmake
После установки вы сможете использовать исполняемый файл fontmake
.
Например, чтобы скомпилировать переменный шрифт из исходного файла Glyphs, используйте:
fontmake MyFont.glyphs -o variable
Наиболее важными аргументами командной строки исполняемого файла fontmake
являются требуемые входные данные, заданные либо как позиционный аргумент, либо с использованием одного из флагов -g
/ -u
/ -m
, а также необязательный флаг -o
, который выбирает формат выходного файла.
Есть два способа указать исходный файл или файлы:
Можно использовать следующие взаимоисключающие флаги:
-g filename.glyphs
: преобразует исходный файл Glyphs в двоичный.-u filename.ufo ...
: Преобразует один или несколько файлов UFO(Z) в двоичный формат.-m filename.designspace
: преобразует файл Designspace в двоичный. ( -m
означает mutatormath
, старую библиотеку Python для работы с пространствами проектирования.) В качестве альтернативы можно указать входные данные как позиционные аргументы без флага, позволяя fontmake определить исходный формат по расширению файла: например, fontmake MyFont.designspace
и т. д.
Примечание: если позиционным аргументам предшествует опция, которая принимает один или несколько аргументов, вам необходимо использовать специальный разделитель --
, чтобы пометить все последующие аргументы как позиционные (не-опции), в противном случае синтаксический анализатор запутается. Например, опция -i
принимает ноль или один аргумент (подробнее см. ниже); без --
argparse считает, что вы не предоставили никаких входных данных:
fontmake -i -- MyFont.designspace
При использовании любого подхода может/должен быть указан ровно один тип входных данных.
Вы можете указать один или несколько форматов выходных файлов после опции -o
. Например, -o otf ttf
создает файлы двоичных шрифтов OTF и TTF для каждого мастера во входном файле.
Доступны следующие форматы выходных файлов:
otf
: двоичные файлы OTF (CFF-структура) для каждого мастера. Размещен в каталоге master_otf/
.ttf
: двоичные файлы TTF (TrueType-outline) для каждого мастера. Размещается в каталоге master_ttf/
.otf-cff2
: двоичные файлы OTF для каждого мастера со структурами CFF2. Размещен в каталоге master_otf/
.variable
: переменный шрифт TrueType. Размещается в variable_ttf/
.variable-cff2
: переменный шрифт с контурами CFF2. Размещается в variable_otf/
.Также доступны следующие форматы выходных файлов, но они обычно используются внутри компании Fontmake в качестве промежуточного шага к одному из вышеперечисленных выходных данных:
otf-interpolatable
: двоичные файлы OTF, подходящие для объединения в переменный шрифт. Размещается в каталоге master_otf_interpolatable/
. (Они отличаются от otf
тем, что контуры неоптимизированы.)ttf-interpolatable
: двоичные файлы TTF, подходящие для объединения в переменный шрифт. Размещается в каталоге master_ttf_interpolatable/
. (Контуры преобразуются в квадратичные кривые с возможностью интерполяции.)ufo
: исходники глифов можно преобразовать в формат UFO или в формат UFO zip ( .ufoz
) с помощью флага --save-ufo-as-zip
. Размещен в каталоге master_ufo/
. Если опция формата не указана, по умолчанию используется -o otf ttf
.
-i
(интерполировать экземпляры): наличие двоичных файлов для каждого мастера — это не всегда то, что вы ожидаете; если вы определили экземпляры («экспорты») в файле Glyphs, они не будут генерироваться по умолчанию. Чтобы сгенерировать их, передайте флаг -i
, который интерполирует статические экземпляры и размещает их в каталоге instance_ttf/
или instance_otf/
в зависимости от ситуации.
--output-dir <some_directory>
: помещает весь вывод в заданный каталог вместо упомянутых выше каталогов для каждого формата.
--output-path <filename>
: это допустимо только в том случае, если выходные данные представляют собой один двоичный файл и записывают выходные данные в указанное имя файла.
-f
(сгладить компоненты): гарантирует, что любые глифы, содержащие компоненты, которые сами содержат компоненты, разлагаются на один уровень. Это рекомендуется, поскольку некоторые среды рендеринга неправильно обрабатывают вложенные компоненты — дополнительную информацию см. по этой ссылке.
См. USAGE.md
.
См. TROUBLESHOOTING.md
.
Разработчики могут получить последнюю версию fontmake
, клонировав репозиторий git:
git clone https://github.com/googlefonts/fontmake
cd fontmake
pip install .
Разработчики, которые хотят быстро протестировать изменения в исходном коде без переустановки, могут использовать опцию «--editable» при установке из локального исходного кода:
pip install -e .
Рекомендуется устанавливать Fontmake внутри виртуальной среды, чтобы предотвратить конфликты между его зависимостями и другими модулями, установленными глобально.
Вы также можете использовать инструмент pipx для автоматизации установки/обновления приложений Python, таких как Fontmake, в изолированных средах.
git tag -a v3.1.1
git push origin v3.1.1
, где origin
— это имя обычного удаленного устройства, на которое вы хотите отправить версию.