Алексей Федорчук
Всем, кто хоть раз в жизни занимался настройкой шрифтов любой рабочей среды… А как ни странно, я знаю немало людей, которым вид шрифтов настолько до лампочки, что они этим не занимались никогда. Тем же, кто таки занимался, известно, что в любом десктопе в качестве умолчальных прописаны такие имена, как Sans, Serif и Monospace:
Разумеется, средствами конфигурирования данного десктопа их можно поменять на любые наличные, например, так:
Что такое семейства гарнитур — без отсечек (или гротески), с отсечками (или антики) и моноширинные — также общеизвестно (а кому не известно — общее представление могут получить, например, здесь).
Но сейчас речь пойдёт чуть о другом — о том, что поиски соответствующих шрифтов в подкаталогах внутри /usr/share/fonts
будут безуспешными: файлов с такими именами не обнаружится ни среди TTF, ни среди OTF, ни среди ATM. Потому что это, действительно, не «настоящие» имена, а, так сказать, «подстановочные». И определить, какому реальному шрифту они соответствуют, можно с помощью команды fc-match
, с «подстановочным» именем в качестве аргумента. Например:
$ fc-match sans DejaVuSans.ttf: "DejaVu Sans" "Book"
В настоящее время во всех, насколько я знаю, дистрибутивах Linux’а (точнее, в сборках входящей в них библиотеки fontconfig
, отвечающей за отрисовку шрифтов), «подстановочным» именам по умолчанию соответствуют шрифты семейства DejaVu. Что легко устанавливается командами
$ fc-match serif DejaVuSans.ttf: "DejaVu Serif" "Book"
и
$ fc-match mono DejaVuSansMono.ttf: "DejaVu Sans Mono" "Book"
Порядок подстановки шрифтов описывается в файле /etc/fonts/conf.d/60-latin.conf
. И, например, для моноширинных шрифтов он выглядит так:
<alias> <family>monospace</family> <prefer> <family>DejaVu Sans Mono</family> <family>Bitstream Vera Sans Mono</family> <family>Inconsolata</family> <family>Andale Mono</family> <family>Courier New</family> <family>Cumberland AMT</family> <family>Luxi Mono</family> <family>Nimbus Mono L</family> <family>Nimbus Mono</family> <family>Courier</family> </prefer> </alias>
Так что порядок «подстановки» легко изменить. А можно и пополнить список шрифтами, в нём отсутствующими. Например, первой строкой в секцию моноширинных шрифтов дописать Adobe Source Code:
<family>Source Code Pro</family>
А в секция гротесков — Cantarell:
<family>Cantarell</family>
После перезапуска сеанса Иксов соответствующие шрифты будут восприниматься в качестве умолчальных не только в данной рабочей среде (например, в Cinnamon), но и во многих приложениях, запрашивающих «подстановочные» имена (терминалах, текстовых редакторах и даже, с некоторыми оговорками, браузерах). Правда, при условии, что приложения эти используют для отрисовки шрифтов библиотеку fontconfig
. Так что на приложения, в которых шрифты выводятся средствами X-сервера (таких, как, например, Xterm), сделанные изменения распространяться не будут. В них для настройки шрифтов используются так называемые файлы ресурсов (вроде ~/Xresources
). Но это — отдельная история, обычно не очень актуальная для применителей интегрированных рабочих сред.
$ fc-match seif
DejaVuSans.ttf: «DejaVu Sans» «Book» — не существенно, но УПС вызывает. )
Спасибо! Из разряда «необходимейших вещей» до которых «не доходят руки»!
Спасибо, поправил.
А на счёт «рук» — это точно. Главное, когда эти самые руки таки надо приложить — долго и мучительно вспоминаю, куда именно :)
Здравствуйте, Алексей! У меня есть вопрос насчёт отображения шрифтов в браузере.
[вырезано]
Russell, к сожалению, по приводимым Вами сслыкам ничего не видно, кроме какой-то парнухи. Почему всё остальное вырезано.
Реокмендаций по «улучшению» шрифтов в браузерах — вагон и маленькая тележка, все они субъектиывны, и не всегда работают. Так что поищите в сети и пробуйте, что подойдёт именно Вам.
Учтите только, что патчи для freetype, fontconfig и cairo из Ubutnu сотоварищи и из пакета Infinality разные, и друг с другом не совместимы.
В браузерах всё больше предпочитаю шрифты без засечек (это касается и моноширинных шрифтов). В Firefox под FreeBSD хорошо себя зарекомендовали Lucida Grande, Exo2; Consolas, Monaco, Fira Code.