Война со сглаживанием
Jan. 10th, 2009 01:02 amДолго думал, как начать этот пост и в итоге нашёл в интернетах подходящую цитату:
[...] В WPF используется метод C [ClearType], но не у многих устройств разрешение настолько высокое, чтобы возможное размытие никому не мешало. […] Кого-то устраивает размытие метода C, кого-то нет. Странно, но факт: некоторым удобно читать длинные тексты, отображённые методом C на 96 dpi (например, через Times Reader), но не нравятся окна пользовательского интерфейса. Большинство людей не беспокоит цветная кайма ClearType, но некоторых не устраивает. […] Как для моих глаз, на 96 dpi метод C читается хуже, чем метод A [без антиалиазинга]. Для меня слишком размыто. А на 144 dpi не вижу никаких проблем — отлично читается.
Источник
Так вот, я тоже вижу цветную бахрому вокруг букв при субпиксельном сглаживании и "блюр" при обычном.
*И меня, на самом деле, очень удивляет, почему другие этого безобразия не замечают*
С первых часов освоения линукса я боролся с проблемой нормального для меня отображения шрифтов:
три часа проведенных в Mandriva днём по эффекту равнялись 9 часам работы за Windows XP в ночной смене - в глаза будто песка насыпали плюс Ъ-красноглазие.
Пришлось перелопатить кучу форумов, howto, много и обильно гуглить.
В конечном итоге, необходимая информация нашлась, и на этой неделе я, вроде бы, разобрался с одним из последних кусков головоломки. Конечно, в этом нельзя быть на 100% уверенным, и я знаю, как минимум, один конфиг, который стоило бы изучить отдельно, но в целом картина ясна.
Пробуем жить без сглаживания
Сначала я хотел подробно описать свои мытарства и биения головой об стену, но в итоге решил работать в более конструктивном ключе.
Начну с источников. Есть два хороших и подробных, хотя и несколько уже устаревших мануала:
HowTo Шрифты лучше, чем в Windows
Использование Шрифтов MS TrueType в KDE
Всё что нужно для решения проблемы в них есть, но мне хотелось бы обратить внимание на некоторые частности, на примере kubuntu 8.10
Так как в Kubuntu и openSUSE (в fedora - нет) freetype собран со включенным BYTECODE INTERPRETER, исходники править и перекомпилировать не нужно.
Вот так выглядят мои настройки шрифтов в systemsetting:

Как видно из скриншота, сглаживание отключено в диапозоне 0-16 пт
Для шрифтов большого размера выставлен полный хинтинг, без межстрочечного сглаживания.
Другая проблема - подобрать подходящие шрифты, содержащие символы кириллицы и прилично выглядящие без антиалиасинга.
Как ни обидно, но более менее вменяемо отображаются ttf-шрифты из набора MS True Type core fonts, Tahoma, Lucida Grande, Lucida Console; из свободных шрифтов - семейство Liberation и дерриатив - Либерастика. Также в консоли исключительно хорошо смотрится бессмертный Terminus. А вот новые вистовские шрифты я забраковал - они изначально расчитаны на сглаживание, и без него нормально рендерятся только в некоторых размерах.
С семействами DejaVu, Bitstream Vera, Nimbus также пришлось расстаться, и прощание вышло долгим и муторным, о чём позднее.
Дальше начинается вкусовщина:
1. Tahoma во все поля, только с разным размером. Замечу, что тахома должна быть оригинальной - с wine'вской у меня наблюдались артефакты отображения - как бы сдвинулись буквы : вместо K стало L и т.д.
2. Минимальным также неплохо смотрится Lucida Console (кстати, полезное применение этому шрифту - выбрать основным в Kruler, чтобы циферки были читабельны под Kmag)
3. Моноширинный - Terminus. Терминус хорош, но не идеален: отсутсвует курсивное начертание. В убунте есть пакет xfonts-terminus-oblique - но это полумера. Так что, вполне можно следовать совету "не выпускать terminus из консоли" (с)
Другие кандидаты на право быть моноширинным шрифтом по-умолчанию: Liberation Mono, Lucida Console, Courier New
Настройки браузеров

Без засечек - Tahoma
С засечками - Georgia
Моноширинный - Liberation Mono
В качестве шрифта с засечками рекомендуется использовать Georgia - курсивное начертание этого шрифта смотрится наиболее прилично. Если не нравится как выглядит тахома-италик, а она действительно не ахти, особенно жирный курсив и цифры, то пропорциональным можно выставить шрифт с засечками (Georgia, Times New Roman).
Так же не стоит разрешать сайтам использовать свои шрифты.
Konqueror настраивается похожим образом:

Подмена шрифтов
Всё бы ничего, только некоторые сайты или темы superkaramba, как ты не мучайся, всё равно используют какой-то корявый шрифт. Конфиг карамбовской темы можно поправить руками, с сайтами сложнее.
Но и из этой ситуации есть выход.
Скачиваем, например, отсюда файл fontconfig.tbz, распаковываем и копируем сюда: /etc/fonts файлы alias.conf, local.conf, misc.conf и msfonts-rules.conf (нужны права root)
В первую очередь нас интересуют alias.conf - открываем его в kate (опять же, с правами root)
Рекомендую в Сервис -> Подсветка -> Язык разметки выбрать пункт xml
Также открываем systemsettings, переходим в секцию "Установка шрифтов" и удаляем - важно именно удалить, а не сделать неактивным - шрифты семейства DejaVu, Bitstream Vera, Nimbus.
В alias.conf, по вкусу, настраиваем подмену:
<alias>
<family>sans serif</family>
<prefer>
<family>Tahoma</family>
<family>Arial</family>
</prefer>
</alias>
<alias>
<family>serif</family>
<prefer>
<family>Georgia</family>
</prefer>
</alias>
<alias>
<family>Bitstream Vera Sans Mono</family>
<prefer>
<family>Liberation Mono</family>
<family>Terminus</family>
</prefer>
</alias>
<alias>
<family>Bitstream Vera Sans</family>
<prefer>
<family>Tahoma</family>
<family>Arial</family>
</prefer>
</alias>
<alias>
<family>Bitstream Vera Serif</family>
<prefer>
<family>Georgia</family>
</prefer>
</alias>
<alias>
<family>Nimbus Sans L</family>
<prefer>
<family>Tahoma</family>
<family>Arial</family>
</prefer>
</alias>
<alias>
<family>Nimbus Roman No9 L</family>
<prefer>
<family>Georgia</family>
</prefer>
</alias>
<alias>
<family>Nimbus Mono L</family>
<prefer>
<family>Liberation Mono</family>
<family>Terminus</family>
</prefer>
</alias>
</fontconfig>
И т.д.
С чем приходится мириться
1. Кривой италик/курсив - в Windows он лучше.
2. Артефакты отображения шрифтов - причём в разной версии freetype свои глюки:
например, в feisty не до конца прорисовывалась вертикальная палочка у цифры семь, а в intrepid проблемы у букв б и P при разных размерах шрифта.
[...] В WPF используется метод C [ClearType], но не у многих устройств разрешение настолько высокое, чтобы возможное размытие никому не мешало. […] Кого-то устраивает размытие метода C, кого-то нет. Странно, но факт: некоторым удобно читать длинные тексты, отображённые методом C на 96 dpi (например, через Times Reader), но не нравятся окна пользовательского интерфейса. Большинство людей не беспокоит цветная кайма ClearType, но некоторых не устраивает. […] Как для моих глаз, на 96 dpi метод C читается хуже, чем метод A [без антиалиазинга]. Для меня слишком размыто. А на 144 dpi не вижу никаких проблем — отлично читается.
Источник
Так вот, я тоже вижу цветную бахрому вокруг букв при субпиксельном сглаживании и "блюр" при обычном.
*И меня, на самом деле, очень удивляет, почему другие этого безобразия не замечают*
С первых часов освоения линукса я боролся с проблемой нормального для меня отображения шрифтов:
три часа проведенных в Mandriva днём по эффекту равнялись 9 часам работы за Windows XP в ночной смене - в глаза будто песка насыпали плюс Ъ-красноглазие.
Пришлось перелопатить кучу форумов, howto, много и обильно гуглить.
В конечном итоге, необходимая информация нашлась, и на этой неделе я, вроде бы, разобрался с одним из последних кусков головоломки. Конечно, в этом нельзя быть на 100% уверенным, и я знаю, как минимум, один конфиг, который стоило бы изучить отдельно, но в целом картина ясна.
Пробуем жить без сглаживания
Сначала я хотел подробно описать свои мытарства и биения головой об стену, но в итоге решил работать в более конструктивном ключе.
Начну с источников. Есть два хороших и подробных, хотя и несколько уже устаревших мануала:
HowTo Шрифты лучше, чем в Windows
Использование Шрифтов MS TrueType в KDE
Всё что нужно для решения проблемы в них есть, но мне хотелось бы обратить внимание на некоторые частности, на примере kubuntu 8.10
Так как в Kubuntu и openSUSE (в fedora - нет) freetype собран со включенным BYTECODE INTERPRETER, исходники править и перекомпилировать не нужно.
Вот так выглядят мои настройки шрифтов в systemsetting:
Как видно из скриншота, сглаживание отключено в диапозоне 0-16 пт
Для шрифтов большого размера выставлен полный хинтинг, без межстрочечного сглаживания.
Другая проблема - подобрать подходящие шрифты, содержащие символы кириллицы и прилично выглядящие без антиалиасинга.
Как ни обидно, но более менее вменяемо отображаются ttf-шрифты из набора MS True Type core fonts, Tahoma, Lucida Grande, Lucida Console; из свободных шрифтов - семейство Liberation и дерриатив - Либерастика. Также в консоли исключительно хорошо смотрится бессмертный Terminus. А вот новые вистовские шрифты я забраковал - они изначально расчитаны на сглаживание, и без него нормально рендерятся только в некоторых размерах.
С семействами DejaVu, Bitstream Vera, Nimbus также пришлось расстаться, и прощание вышло долгим и муторным, о чём позднее.
Дальше начинается вкусовщина:
1. Tahoma во все поля, только с разным размером. Замечу, что тахома должна быть оригинальной - с wine'вской у меня наблюдались артефакты отображения - как бы сдвинулись буквы : вместо K стало L и т.д.
2. Минимальным также неплохо смотрится Lucida Console (кстати, полезное применение этому шрифту - выбрать основным в Kruler, чтобы циферки были читабельны под Kmag)
3. Моноширинный - Terminus. Терминус хорош, но не идеален: отсутсвует курсивное начертание. В убунте есть пакет xfonts-terminus-oblique - но это полумера. Так что, вполне можно следовать совету "не выпускать terminus из консоли" (с)
Другие кандидаты на право быть моноширинным шрифтом по-умолчанию: Liberation Mono, Lucida Console, Courier New
Настройки браузеров
Без засечек - Tahoma
С засечками - Georgia
Моноширинный - Liberation Mono
В качестве шрифта с засечками рекомендуется использовать Georgia - курсивное начертание этого шрифта смотрится наиболее прилично. Если не нравится как выглядит тахома-италик, а она действительно не ахти, особенно жирный курсив и цифры, то пропорциональным можно выставить шрифт с засечками (Georgia, Times New Roman).
Так же не стоит разрешать сайтам использовать свои шрифты.
Konqueror настраивается похожим образом:
Подмена шрифтов
Всё бы ничего, только некоторые сайты или темы superkaramba, как ты не мучайся, всё равно используют какой-то корявый шрифт. Конфиг карамбовской темы можно поправить руками, с сайтами сложнее.
Но и из этой ситуации есть выход.
Скачиваем, например, отсюда файл fontconfig.tbz, распаковываем и копируем сюда: /etc/fonts файлы alias.conf, local.conf, misc.conf и msfonts-rules.conf (нужны права root)
В первую очередь нас интересуют alias.conf - открываем его в kate (опять же, с правами root)
Рекомендую в Сервис -> Подсветка -> Язык разметки выбрать пункт xml
Также открываем systemsettings, переходим в секцию "Установка шрифтов" и удаляем - важно именно удалить, а не сделать неактивным - шрифты семейства DejaVu, Bitstream Vera, Nimbus.
В alias.conf, по вкусу, настраиваем подмену:
<alias>
<family>sans serif</family>
<prefer>
<family>Tahoma</family>
<family>Arial</family>
</prefer>
</alias>
<alias>
<family>serif</family>
<prefer>
<family>Georgia</family>
</prefer>
</alias>
<alias>
<family>Bitstream Vera Sans Mono</family>
<prefer>
<family>Liberation Mono</family>
<family>Terminus</family>
</prefer>
</alias>
<alias>
<family>Bitstream Vera Sans</family>
<prefer>
<family>Tahoma</family>
<family>Arial</family>
</prefer>
</alias>
<alias>
<family>Bitstream Vera Serif</family>
<prefer>
<family>Georgia</family>
</prefer>
</alias>
<alias>
<family>Nimbus Sans L</family>
<prefer>
<family>Tahoma</family>
<family>Arial</family>
</prefer>
</alias>
<alias>
<family>Nimbus Roman No9 L</family>
<prefer>
<family>Georgia</family>
</prefer>
</alias>
<alias>
<family>Nimbus Mono L</family>
<prefer>
<family>Liberation Mono</family>
<family>Terminus</family>
</prefer>
</alias>
</fontconfig>
И т.д.
С чем приходится мириться
1. Кривой италик/курсив - в Windows он лучше.
2. Артефакты отображения шрифтов - причём в разной версии freetype свои глюки:
например, в feisty не до конца прорисовывалась вертикальная палочка у цифры семь, а в intrepid проблемы у букв б и P при разных размерах шрифта.