Пользовательскую документацию и документацию для разработчиков можно найти на странице «Прочитать документацию».
FontTools требует Python 3.8 или более поздней версии. Мы стараемся следовать тому же графику поддержки минимальной версии Python, что и NumPy (см. NEP 29).
Пакет указан в индексе пакетов Python (PyPI), поэтому его можно установить с помощью pip:
pip install fonttools
Если вы хотите внести свой вклад в его разработку, вы можете клонировать репозиторий с GitHub, установить пакет в «редактируемом» режиме и изменить исходный код на месте. Мы рекомендуем создать виртуальную среду, используя virtualenv или модуль venv Python 3.
# download the source code to 'fonttools' folder
git clone https://github.com/fonttools/fonttools.git
cd fonttools
# create new virtual environment called e.g. 'fonttools-venv', or anything you like
python -m virtualenv fonttools-venv
# source the `activate` shell script to enter the environment (Unix-like); to exit, just type `deactivate`
. fonttools-venv/bin/activate
# to activate the virtual environment in Windows `cmd.exe`, do
fonttools-venv S cripts a ctivate.bat
# install in 'editable' mode
pip install -e .
Пакет fontTools
в настоящее время не имеет (обязательных) внешних зависимостей, кроме модулей, включенных в стандартную библиотеку Python. Однако для некоторых его модулей требуются несколько дополнительных зависимостей, которые необходимы для разблокировки дополнительных функций. Дистрибутив fonttools
PyPI также поддерживает так называемые «дополнения», то есть набор ключевых слов, описывающих группу дополнительных зависимостей, которые можно использовать при установке через pip или при указании требования. Например:
pip install fonttools[ufo,lxml,woff,unicode]
Эта команда установит Fonttools, а также дополнительные зависимости, необходимые для разблокировки дополнительных функций с именем «ufo» и т. д.
Lib/fontTools/misc/etree.py
Модуль экспортирует API-интерфейс, подобный ElementTree, для чтения/записи XML-файлов и позволяет использовать в качестве бэкэнда либо встроенный модуль xml.etree
, либо lxml. Последнее предпочтительнее, поскольку оно обычно быстрее и безопаснее.
Дополнительно: lxml
Lib/fontTools/ufoLib
Пакет для чтения и записи исходных файлов UFO; это требует:
pyfilesystem2
) уровень абстракции файловой системы.enum
(требуется только для Python < 3.4). Дополнительно: ufo
Lib/fontTools/ttLib/woff2.py
Модуль для сжатия/распаковки веб-шрифтов WOFF 2.0; это требует:
Дополнительно: woff
Lib/fontTools/ttLib/sfnt.py
Чтобы лучше сжимать веб-шрифты WOFF 1.0, вместо встроенной библиотеки zlib
можно использовать следующий модуль:
Дополнительно: woff
Lib/fontTools/unicode.py
Чтобы отобразить имена символов Юникода при выгрузке таблицы cmap
с помощью ttx
мы используем модуль unicodedata
в стандартной библиотеке. Включенная туда версия варьируется в зависимости от версии Python. Чтобы использовать последние доступные данные, вы можете установить:
unicodedata
для Python 3.x, обновленный до последней версии Unicode 15.0. Дополнительно: unicode
Lib/fontTools/varLib/interpolatable.py
Модуль для поиска неправильного порядка контуров/компонентов между разными мастерами. Для решения так называемой «проблемы идеального соответствия минимального веса в двудольных графах» или задачи присваивания требуется один из следующих пакетов:
Чтобы вывести результаты в формат PDF или HTML, вам также необходимо установить:
Дополнительно: interpolatable
Lib/fontTools/varLib/plot.py
Модуль для визуализации DesignSpaceDocument и результирующей VariationModel.
Дополнительно: plot
Lib/fontTools/misc/symfont.py
Расширенный модуль анализа статистики символьных шрифтов; это требует:
Дополнительно: symfont
Lib/fontTools/t1Lib.py
Чтобы получить создатель файла и тип шрифтов Macintosh PostScript Type 1 на Python 3, вам необходимо установить следующий модуль, поскольку старый модуль MacOS
больше не включен в Mac Python:
Дополнительно: type1
Lib/fontTools/ttLib/removeOverlaps.py
Упростите глифы TrueType, объединив перекрывающиеся контуры и компоненты.
Дополнительно: pathops
Lib/fontTools/pens/cocoaPen.py
и Lib/fontTools/pens/quartzPen.py
Ручки для рисования глифов с помощью Cocoa NSBezierPath
или CGPath
требуют:
Lib/fontTools/pens/qtPen.py
Ручка для рисования глифов с помощью QPainterPath
в Qt требует:
Lib/fontTools/pens/reportLabPen.py
Ручка для рисования глифов в формате PNG-изображений требует:
Lib/fontTools/pens/freetypePen.py
Для рисования глифов с помощью FreeType в виде растровых изображений пером требуется:
Lib/fontTools/ttLib/tables/otBase.py
Используйте библиотеку Harfbuzz для сериализации GPOS/GSUB с помощью метода hb_repack
, требуется:
Дополнительно: repacker
NEWS.rst
включив в него все изменения, внесенные с момента последнего выпуска. Напишите запись в журнале изменений для каждого PR, содержащую одно или два коротких предложения, резюмирующих его, а также ссылки на PR и соответствующие вопросы, которые он решает. Не вводите новый заголовок, следующая команда сделает это за вас.pip install -r dev-requirements.txt
, затем запустите команду python setup.py release
из кончика main
ветки. По умолчанию это увеличивает только третью или «патч» цифру, если только вы не передадите --major
или --minor
чтобы увеличить соответственно первую или вторую цифру. Это увеличивает строку версии пакета, извлекает изменения с момента последней версии из NEWS.rst
и использует этот текст для создания аннотированного тега git (или подписанного тега git, если вы передадите параметр --sign
и ваша учетная запись git и Github будет настроен для подписания коммитов с использованием ключа GPG). Он также фиксирует дополнительную версию, которая открывает основную ветку для последующего цикла разработки.git push --follow-tags
. Примечание: это может также привести к смещению других локальных тегов, будьте осторожны.В алфавитном порядке:
Ашмитц, Оливье Бертен, Самьяк Бхута, Эрик ван Блокланд, Петр ван Блокланд, Йелле Босма, Саша Брауэр, Том Байрер, Антонио Каведони, Фредерик Койффье, Винсент Коннаре, Дэвид Корбетт, Саймон Козенс, Дэйв Кроссленд, Саймон Дэниелс, Питер Деккерс, Бехдад Исфабод, Бехнам Эсфабод, Ханнес Фамира, Сэм Фишман, Мэтт Фонтейн, Такааки Фудзи, Роб Хагеманс, Яннис Хараламбус, Грег Хичкок, Джереми Хорнус, Халед Хосни, Джон Хадсон, Денис Мойого Жакери, Джек Янсен, Том Качвински, Йенс Кутилек, Антуан Лека, Вернер Лемберг , Таль Леминг, Питер Лофтинг, Козимо Лупо, Олли Мейер, Масая Накамура, Дэйв Опстад, Лоуренс Пенни, Рузбе Пурнадер, Гаррет Ригер, Рид Робертс, Колин Рофлс, Гвидо ван Россум, Джаст ван Россум, Андреас Зайдель, Георг Зайферт, Крис Симпкинс, Мигель Соуза, Адам Твардок, Адриан Тетар, Виталий Волков, Пол Уайз.
Авторские права (c) 2000 BeOpen.com. Все права защищены.
Авторское право (c) 1995–2001 гг., Корпорация национальных исследовательских инициатив. Все права защищены.
Авторское право (c) 1991–1995 Stichting Mathematich Centrum, Амстердам. Все права защищены.
Веселиться!