
Добавьте лигатуры в любой шрифт кодирования!
Этот скрипт копирует лигатуры (глифы и информация о рендеринге) из кода FIRA в любой другой шрифт TrueType или Opentype. (Обратите внимание, что лигатуры корректируются в масштабе, но в противном случае копируются, как это из кода FIRA; они не создают новую графику лигатуры на основе шрифта, который вы изменяете.)
Этот репо содержит сценарий Python Fontforge, который вы можете использовать для добавления лигатур кода Fira в любой шрифт, а также подмодули для некоторых популярных шрифтов кодирования и еще один сценарий для лигатурализации всех из них одновременно.
Предварительные версии доступны под выпусками.
Вот несколько примеров сгенерированных шрифтов: SF Mono & Menlo с лигатурами (обратите внимание на != И -> ): 

Это репо : вам понадобится репо и его подмодули, так что git clone с --recurse-submodules .
Используя шрифты : см. Firacode Readme для списка поддерживаемых редакторов.
Скрипт : Этот скрипт требует привязки Pontforge Python. Для Debian/Ubuntu они доступны в пакете python-fontforge . Для OpenSuse и Nixos они включены в пакет fontforge . Для macOS они доступны через Brew ( brew install fontforge ).
Используйте автоматический режим, чтобы легко преобразовать 1 или более шрифтов.
fonts/ .ligatures.py , чтобы отключить любые лигатуры, которые вам не нужны, и/или включить любые (не лигационные) символы, которые вы хотите, от кода FIRA в дополнение к лигатурам.build.py , чтобы добавить свой новый шрифт в список prefixed_fonts . Он поддерживает глобус, поэтому, если (например, вы хотите лигатировать все различные веса Фуфона, вы можете добавить в список 'FooFont*' .make .fonts/output/ . Переместите/ скопируйте шрифт, который вы хотите лигатировать в fonts/ (или где -то еще удобно).
Редактировать ligatures.py , чтобы отключить любые лигатуры, которые вам не нужны.
Запустите сценарий:
$ fontforge -lang py -script ligaturize.py path/to/input/font.ttf
--output-dir=path/to/output/dir/
--output-name='Name of Ligaturized Font'
например
$ fontforge -lang py -script ligaturize.py fonts/Cousine-Regular.ttf
--output-dir='fonts/output/'
--output-name='Ligaturized Cousine'
Который будет производить fonts/output/LigaturizedCousine-Regular.ttf .
Вес шрифта будет унаследован от исходного файла; Имя шрифта будет заменено на то, что вы указали в --output-name . Вместо этого вы также можете использовать --prefix , и в этом случае исходное имя будет сохранено, и все, что вы вкладываете --prefix будет приготовлен к нему.
ligatures.py поддерживает некоторые дополнительные параметры командной строки, чтобы (например,) изменение шрифтов копируется или включает копирование отдельных глифов персонажа; Запустите fontforge -lang=py ligaturize.py --help , чтобы перечислить их.
Этот сценарий был первоначально написан Ильаскрибловским для добавления лигатур в Dejavusans Mono (DV-Code-Font). Навид Роджиани внес несколько изменений, чтобы обобщить сценарий, чтобы он работал для любого шрифта. ToxicFrog внес большое количество вкладов.
Вклад всегда приветствуется! Пожалуйста, отправьте запрос на привлечение или создайте проблему, если у вас есть идея для функции/улучшения (или ошибки).
Для более удивительных шрифтов программирования с лигатурами, проверьте: