Новый FreeType 2.7
С очередным обновлением Arch Linix обновилась и библиотека для отображения шрифтов FreeType. При обновлении пакета с версией библиотеки 2.7 система рекомендовала обратить внимание на файл /etc/profile.d/freetype2.sh. Файл такого содержания:
# Subpixel hinting mode can be chosen by setting the right TrueType interpreter
# version. The available settings are:
#
# truetype:interpreter-version=35 # Classic mode (default in 2.6)
# truetype:interpreter-version=38 # Infinality mode
# truetype:interpreter-version=40 # Minimal mode (default in 2.7)
#
# There are more properties that can be set, separated by whitespace. Please
# refer to the FreeType documentation for details.
# Uncomment and configure below
#export FREETYPE_PROPERTIES="truetype:interpreter-version=40"
Как видно из содержимого файла, у нас есть возможность выбора одной из трех версий интерпретатора инструкций TrueType. Версия 40 – это новинка, которая появилась в 2.7 и является дефолтной. Как утверждают разработчики, она еще и работает быстрее. Версия 38 – это код от проекта Infinality (добавлено для удобства пользователей, т.к. некоторым нравится этот рендеринг, хотя проект больше не развивается). И версия 35 – это вариант отрисовки из ветки 2.6 (я от него сразу отказался, в ветке 2.6 была возможность сделать как в 2.5 – я так и сделал).
Ну что ж. Незамедлительно были проверены все три версии. И я остался недоволен! Понятное дело что должно быть по другому, но как-то уж совсем вырвиглазно.
Поразмыслив маленько, решил, что разработчики FreeType не стали бы так кардинально портить отрисовку шрифтов, поэтому следует проверить что там с настройками fontconfig. Прежде всего внимательно прочитал информацию от разработчиков о новой версии The new v40 TrueType interpreter mode .
Поскольку основные изменения затронули субпиксельный хинтинг, поигрался с режимами hintstyle
. Оказалось с моим hintfull
выглядело гораздо хуже рекомендуемого hintslight
.
Поигрался и с другими параметрами. В общем все что рекомендуют: включать antialias
, hinting
, ставить hintslight
и lcddefault
, выглядит очень и очень неплохо. Единственное не стоит включать autohint
. Без него лучше.
Вот мой local.conf с настройками:
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<match target="font">
<edit mode="assign" name="rgba">
<const>rgb</const>
</edit>
<edit mode="assign" name="hinting">
<bool>true</bool>
</edit>
<edit mode="assign" name="hintstyle">
<const>hintslight</const>
</edit>
<edit mode="assign" name="antialias">
<bool>true</bool>
</edit>
<edit mode="assign" name="lcdfilter">
<const>lcddefault</const>
</edit>
</match>
</fontconfig>
Параметр rgba
для субпиксельного отображения подбирается в зависимости от типа монитора. Тип монитора можно определить на этой тестовой странице The Lagom LCD monitor test pages.
В итоге включен стандартный режим для 2.7 и настройки как рекомендуют, без автохинтинга. Шрифты выглядят очень хорошо. А если, как утверждают разработчики, еще и новая версия работает быстрее предыдущих, то это просто замечательно!
(#) Твоя Изжога:
с автохинтом шрифт намного чётче