Мне очень нравится Microsoft’овский моноширинный шрифт Consolas, разработанный Luc(as)’ом de Groot’ом специально для технологии сглаживания ClearType. На мой взгляд, основное из преимуществ этого шрифта — это перечеркнутый нуль, сильно отличающийся от буквы «O». Ну и полная поддержка кириллицы, разумеется. Однако в некоторых дистрибутивах GNU/Linux с отображением текста с помощью этого и некоторых других шрифтов не всё так гладко, в прямом и переносном смыслах.
Шрифт Consolas, изображение взято с en.wikipedia.org
Перенесенные из MS Windows «*.ttf»-файлы шрифта никак не хотели отображаться у меня в Linux Mint 15 KDE, так же, как и в Windows 7. Субпиксельное сглаживание, применявшееся в этом дистрибутиве, постоянно «размазывало» текст, отображаемый этим шрифтом, делая его невероятно отвратным. Иногда было невозможно отличить жирный текст от нормального.
К счастью, немного погуглив в интернете, я наткнулся на замечательный проект infinality, энтузиасты из которого разрабатывают патчи для библиотеки freetype. Благодаря этому проекту можно не только улучшить качество рендеринга шрифтов, но и тонко настроить способ субпиксельного сглаживания: имеется несколько предустановленных схем, которые имитируют популярные технологии рендеринга текста в различных операционных системах.
Установка infinality
Установка патчей от infinality в debian-based дистрибутив довольно проста. С помощью команд, опубликованных ниже, добавляется репозиторий с патченными библиотеками, обновляется список доступных пакетов, устанавливается fontconfig-infinality и обновляется библиотека libfreetype6.
1 2 3 4 |
sudo add-apt-repository ppa:no1wantdthisname/ppa sudo apt-get update sudo apt-get install fontconfig-infinality sudo apt-get install libfreetype6 |
Инструкции по установке infinality в другие GNU/Linux дистрибутивы можно найти здесь:
После установки infinality, система нуждается в настройке. Для этого выполняем следующую команду:
sudo bash /etc/fonts/infinality/infctl.sh setstyle
После её выполнения вам будет предложено сменить стиль сглаживания шрифтов:
1 2 3 |
Select a style: 1) debug 3) linux 5) osx2 7) win98 2) infinality 4) osx 6) win7 8) winxp |
Просто набираем цифру, к примеру, в контексте этой статьи это «6», и нажимаем «Enter».
Для более тонкой настройки необходимо отредактировать файл «/etc/profile.d/infinality-settings.sh»:
sudo vim /etc/profile.d/infinality-settings.sh
В этом файле можно изменить параметры каждого стиля, полностью настроив отображение шрифтов под себя. Этот файлик неплохо прокомментирован, что поможет вам освоиться в многочисленных параметрах рендеринга.
Кстати, в Linux Mint 15 KDE и других дистрибутивах GNU/Linux, использующих в качестве «login screen» приложение mdm, всплыл очень интересный баг: при использовании патчей от infinality, mdm не стартует автоматически. И при запуске системы нас встречает голая консоль. Чтобы исправить это недоразумение, необходимо выполнить в терминале следующие команды:
1 2 |
sudo mv /etc/profile.d/infinality-settings.sh /etc/infinality-settings.sh sudo chmod a+rx /etc/infinality-settings.sh |
И добавить в файл «~/.bashrc» строку, подгружающую настройки infinality:
echo -e '. /etc/infinality-settings.sh' >> ~/.bashrc
Если вы используете Linux Mint, обязательно выполните команды, написанные выше. Если любой другой дистрибутив, не использующий mdm, просто проигнорируйте их.
После всего этого можно перезагрузить систему и увидеть новое сглаживание, максимально приближенное к технологии ClearType, использующейся в Windows 7.
Результаты
Посмотреть на получившиеся результаты и сравнить их между собой можно в этой таблице:
Use anti-aliasing: Enabled |
Use anti-aliasing: Enabled |
||
Для демонстрации рендеринга шрифтов в различных системах используется кросс-платформенная IDE — Qt Creator
Как видно из таблицы, infinality просто отлично справляется со своей задачей. Шрифт Consolas отображается практически так же, как и в Windows 7. Только линии немного толще. В Courier New междустрочные интервалы менее заметны, чем в Windows 7, хотя начертание букв практически одинаково. Свободный шрифт Fira Mono рендерится с большими междустрочными интервалами, из-за чего в GNU/Linux-системах он выглядит немного «разряженным». Ну а пиксельный Terminus, как и ожидаемо, рендерится во всех системах одинаково. Различия как всегда в междустрочных интервалах.
Удаление infinality
Для удаления infinality и его репозитория следует выполнить следующие команды:
1 2 3 4 |
sudo apt-get purge fontconfig-infinality sudo apt-get install ppa-purge sudo ppa-purge ppa:no1wantdthisname/ppa sudo dpkg -r --force-all libfreetype6 |
Затем, для полного отката всех изменений следует установить стабильную библиотеку freetype из дефолтных репозиториев с помощью команды:
sudo apt-get install libfreetype6
Или с помощью команды:
sudo apt-get install libfreetype6 libfreetype6:i386
Если вы используете архитектуру x86_64. После удаления infinality не забудьте перезагрузить систему.
Полезные ссылки и советы
- Better Font Rendering In Linux With Infinality
- Fixed bug: mdm won’t start after installing infinality
- Firefox OS Typeface — по этой ссылке можно скачать свободные шрифты от Firefox, в том числе и Fira Mono.
- Terminus Font for Windows — скачать пиксельный шрифт Terminus с поддержкой кириллицы для Windows.
- Для установки шрифта Terminus в GNU/Linux дистрибутив, следует выполнить команду:
sudo apt-get install xfonts-terminus - Для исправления некорректного рендеринга шрифтов в GIMP, следует воспользоваться следующей инструкцией.
Перепробовал дюжину дистрибутивов в надежде хоть где нибудь увидеть нормальный шрифт на своем 24″ экране.
(К слову сказать — во всеми хваленом Ubuntu 13.10 меня преследовало ощущение гигантизма! Нет, конечно, на моем 12.5″ ноуте выглядит красиво, но не на 24″.)
Последняя надежда была именно на KDE от Mint.
Но как оказалось и тут все не так радужно.
Сделал всё по вашей инструкции, перезашел в систему — и о чудо! Родные шрифты — красивые во всех браузерах!!!!
Спасибо огромное!!!!!!!! Наконец-то можно работать с удовольствием!
Рад, что эта инструкция вам пригодилась. Да, к сожалению, в последней Ubuntu 13.10 на мониторах с большой диагональю шрифты выглядят просто ужасно.
То, что получилось у меня в моей Debian Wheeze иначе, как чудо, назвать нельзя. Отображение шрифтов даже без дополнительных настроек стало таким великолепным, что переход на Linux с Windows на домашнем ПК сразу стал свершившимся и окончательным. Спасибо автору за прекрасную статью о фантастическом пакете.
Большое спасибо!
Можете показать screenshot того, что у вас получилось в конечном итоге?
Конечно, могу прислать снимок экрана, только сообщите email или какой-нибудь другой способ доставки.
Да вставьте в комментарий, используя тег <img>
Все отлично работает, но обнаружился баг в Gimp’e: http://i.imgur.com/fqbqd4N.png
Наблюдается при сглаживании любого текста, отливающегося от черного.
Оно сохраняется, даже когда импортируешь изображение в любой популярный формат?
Вот тут, расписан метод лечения: https://wiki.archlinux.org/index.php/Infinality#GIMP_issues
Обновил информацию в статье, спасибо!
Спасибо большое. Действительно помогло. И в фотошоп под вайном все отображается нормально
с этим патчем у меня перестала нормально собираться wine (даже иногда глючит, если запусается)
-> перешел на технологию «ClearType-сглаживание», все иделаьно в плане стабильности, работоспособности и внеш.вид, ренедринг действительно идеальный (как у ubuntu, шрифт читабельный, глаза не напрягаются)
удачи
только слепой не увидит что рендеринг отличается, причем не в лучшую сторону в случае убунту. Хочу шрифты точь-в-точь
К сожалению, Microsoft использует проприетарную технологию рендеринга шрифтов ClearType и повторить её «точь-в-точь» вряд ли будет возможно.
Хотя, с момента написания этой заметки прошло два года, в проекте Infinality могло многое измениться, в т. ч. и ренедеринг «Windows 7» стать более удачным. Попробуйте посмотрите. Я уже давно привык и к дефолтным шрифтам GNU/Linux, и к немного изменённому ренедерингу в Windows 8/10, и даже к рыхлым и мохнатым шрифтам OS X. А потому не слежу за изменениями в проекте.
Автору респект за эту статью. Уже почти год бился с этими шрифтами, много перепробовал разных способов, но результата не было. А тут сразу после перезагрузки не нарадуюсь. Даже в тех приложениях, которые установлены в wine — MS Word и т.д., шрифты стали отображаться отлично. Спасибо еще раз.
Спасибо, рад что вам помогла эта статья.
Под Яком не находит Инфиналити.
Infinality устарел, лучше всего использовать новый Freetype, в котором уже есть патчи для нормального субпиксельного сглаживания.
Как установить на Mint 19 ?
Насколько я знаю, новые версии FreeType, начиная с версии 2.7 содержат необходимые патчи, которые были в infinality. Здесь есть информация по этому поводу.
Поэтому ничего теперь устанавливать не нужно, всё доступно из коробки. Просто меняйте настройки через опции шрифтов в системе, либо через переменную окружения FREETYPE_PROPERTIES.
Эта статья более неактуальна.
Я сделал так: скачал deb пакеты с http://ppa.launchpad.net/no1wantdthisname/ppa/ubuntu/pool/main/f/fontconfig-infinality/ установил, правда смутило, что старье 2013 года. Дальше я сделал sudo bash /etc/fonts/infinality/infctl.sh setstyle и выбрал 6) и заработало я вижу разницу стало намного лучше. Правда я поставил виндовс шрифты перед этим. Tahoma в систему. И выставил настройки шрифта яндекс браузера как у меня на винде10, в том числе я установил моноширифный шрифт Consolas. Но я думаю это роли не играет. Интересно что будет если выбрать шрифты от 4) osx 5) osx2
Будут «жирные» и «мохнатые» шрифты, примерно такие же, какими они рендерятся в macOS.
А где найти FREETYPE_PROPERTIES? Да и какие настройки нужно делать, ведь с infinality есть пункт 6) win7 а в случае с freetype такого нету.
Посмотрите информацию здесь.