Установка шрифтов в linux

Типы шрифтов

Если говорить про интернет и экраны в целом, то чаще всего используются следующие типы шрифтов:

Остальные шрифты в основном служат декоративным целям. Например, можно использовать Script, чтобы удивить необычностью, но довольно быстро становится очевидно, что такой текст трудно читать. Для веб-страниц чаще выбирают шрифты Sans-Serif — видимо, на заре интернета Serif выглядели плохо. Эта традиция сохранилась и до сих пор, и, на мой взгляд, Sans-Serif действительно читается легче, особенно на мобильных устройствах. Существуют и специальные Serif-шрифты, разработанные для экранов, например Literata. В печатных материалах Serif используют чаще: засечки помогают глазу вести строку и делают длинные тексты удобнее для чтения. Шрифты Monospace применяются в терминалах и программировании не только по историческим причинам, но и из-за удобства — все символы занимают одинаковую ширину, что позволяет:

Лицензия

Удивительно, но у шрифтов есть лицензия, и её нужно учитывать при использовании. Ниже перечислены самые распространённые лицензии для свободного использования:

Установка

Перед тем как устанавливать шрифт вручную, имеет смысл проверить, существует ли готовый пакет в репозитории:

yay fontname

Если пакета нет, скачанный шрифт нужно скопировать либо в ~/.local/share/fonts/ — если шрифт устанавливается только для текущего пользователя, либо в /usr/local/share/fonts/ — если шрифт должен быть доступен для всех пользователей. После копирования обновляем кеш шрифтов:

fc-cache -f

Посмотреть подробную информацию о конкретном шрифта можно командой:

fc-scan ~/.local/share/fonts/font.ttf

Для проверки всех установленных шрифтов

fc-list

FontForge

Если нужно проанализировать шрифт, подправить ширину глифов или добавить новые символы, можно воспользоваться FontForge — программой для создания, редактирования и конвертации шрифтов. Установка:

pacman -S fontforge

Конвертация ttf в woff

Для использования на сайте TrueType-шрифт можно легко конвертировать в формат woff или woff2. Самый удобный инструмент для этого — pyftsubset из пакета fonttools. Он позволяет не только менять формат, но и вырезать ненужные глифы (сабсеттинг), уменьшая размер файла. Конвертация в woff:

pyftsubset font.ttf --output-file=font.woff --flavor=woff --layout-features='*' --glyphs='*'

Конвертация в WOFF2:

pyftsubset font.ttf --output-file=font.woff2 --flavor=woff2 --layout-features='*' --glyphs='*'

При использовании --glyphs='*' в файл включаются все глифы, а --layout-features='*' сохраняет все типографические функции (лигатуры, альтернативы и т.п.).

Если нужна точная копия шрифта в другом формате, лучше использовать FontForge. Для этого нужно создайть скрипт convert.pe:

Open($1)
Generate($1:r + ".woff")
Generate($1:r + ".woff2")
Quit()

Теперь можно запустить конвертацию командой:

fontforge -script convert.pe Literata-Regular.ttf

Для веба оптимальнее использовать pyftsubset: он оставляет только нужные таблицы и эффективнее сжимает шрифт. Экономия обычно небольшая — для Literata около 10 КБ.