LINUX.ORG.RU

Вопрос про шрифты


0

0

Доброго времени суток!

Пытаюсь облагородить шрифты в системе (Slackware 10, X.org 6.8.1, Freetype 2.1.9), но что-то не очень выходит.

Пробовал отключать AA, включать параметр TT_BYTECODE_INTERPRETER и ставить патч ft-smooth от David Chester (если я правильно помню его имя).

Результаты видны на картинке. Это кусок HTML-странички в браузере Firefox. Куски подписаны. Шрифты - TTF из винды.

То, что получается включенным TT_BYTECODE_INTERPRETER - ничего, но без АА смотрятся лишь некоторые шрифты средних размеров (12-14 pt), а с включенным АА шрифты несколько тонкие и мутные внутри букв при размерах < 16.

То, что получается с патчем ft-smooth - несколько неоднозначно. Без АА - тихий ужас. С АА нормальный шрифт весьма четкий (хотя и не идеальный), а жирный - при размерах < 16 буквы типа 'а' или 'я' сливаются в пятно. Включение вертикального хинтинга немного улучшает обычные шрифты, но жирные остаются отвратными.

Вопрос - что делать и кто виноват? Freetype поставлен нормально, с его патченьем тоже негде намудрить - вроде я все сделал, что рекомендуют местные гуру шрифтов и сглаживания.

>>> Просмотр (1419x900, 155 Kb)

anonymous

Проверено: Demetrio ()

Мне вообще не понятно, зачем люди ставят AA для мелких шрифтов... Изврат!

defender
()

Если тебе не сложно, расскажи, пожалуйста как ты все это делал подробно. Как собирал, с какими опциями, где что включал/отключал. Или залинкуй на руководство. Хочу тоже поэкспериментировать. Не обойди помощью пожалуйста, я понимаю, что в падлу, но тем не менее...=) Спасибо.

KOPEHb ★★★
()
Ответ на: комментарий от KOPEHb

а у меня когда отключаю АА мелкие шрифты ваще как то каряво смотряться

не знаете как обойти?или обязательно нужно пересобирать freetype? собирал в дженте емержем,,, шрифты из винды

U-ZvER
()

правое среднее - хорошо, остальное - sux

правое среднее - хорошо, остальное - sux

anonymous
()

Собсна, то, что вверху слева - это ровно то, что мы имеем в виндомсе. По середине слева - это то, что в виндовсе могло бы быть ClearType, но не есть из-за кривизны рук виндусовых програмеров (в виндовсе ClearType просто ужасен).
Если надо выключить АА у мелких шрифтов, надо в fonts.conf добавить вот это, если я правильно помню
<match target="font">
<test name="size" compare="less">
<double>14</double>
</test>
<edit name="antialias" mode="assign">
<bool>false</bool>
</edit>
</match>
<match target="font">
<test name="pixelsize" compare="less" qual="any">
<double>14</double>
</test>
<edit mode="assign" name="antialias">
<bool>false</bool>
</edit>
</match>
Хотя, если на LCD с мелкой точкой, то можно и не выключать АА.

del
()

А где AA+BYTECODE..+smooth? У меня, помнится, некоторые шрифты очень неплохо смотрелись. Даже некоторое время Lucida Console в xterm не раздражала... Правда, считаю что всеми этими играми большого улучшения не добьещся. ИМХО, в последних дистрибутивах, и в частности в Slackware, со шрифтами все неплохо по умолчанию.

neru
()
Ответ на: комментарий от U-ZvER

> а если после этого мелкие шрифты ужасно смотрются?

После этого мелкие шрифты (если они от МС) смотрятся так-же, как и в виндомсе. Т.е. нормально на CRT и плохо (субъективно) на TFT (моем).

del
()
Ответ на: комментарий от del

> Собсна, то, что вверху слева - это ровно то, что мы имеем в виндомсе. По середине слева - это то, что в виндовсе могло бы быть ClearType, но не есть из-за кривизны рук виндусовых програмеров (в виндовсе ClearType просто ужасен).

Левый верхний - нормально. Левый средний - херня. Результат кривизны программистов freetype. ClearType выглядит лучше. Гораздо. Причем даже на crt (еще лучше конечно на lcd)

WindowsUser ★★
()
Ответ на: комментарий от del

>После этого мелкие шрифты (если они от МС) смотрятся так-же, как и в виндомсе

не фига,,, у меня на CRT смотрится как будто на малекий шрифты пожалели пикселей=) как то квадратно все,, а вот крупный шрифт >11 смотрится номрально зато 9 совсем погано=(

U-ZvER
()
Ответ на: комментарий от U-ZvER

я пробовал еще хинтинг включать при отключеном AA так там ваще сущий кашмар...

U-ZvER
()

2 нижних вполне ничего

У меня без АА вообще ужасно, причем что с TT_BYTECODE_INTERPRETER, что без него разницы нет

ЗЫ тоже слака 10

kao ★★
()
Ответ на: комментарий от anonymous

О. Вчера как раз спор про фонты зашёл (и вопрос о том почему они в виндовсе сосут). Мона глянуть тут http://dsnfap.sf.net/fonts.png...

BTW - как оказалось 100% виндузятников аж на 3 не самых мелких ирц каналах не знало что сабпиксель (он же cleartype(tm)(r)(c)) не предназначен для ЭЛТ мониторов и почти всех поголовно он оказался включён :))

IceD
()
Ответ на: комментарий от IceD

а кто сомневался тока вот в винде на скока я знаю там с настройкой все просто а тут голову сломишь пока добьешся нужно,,, зато потом такой гордый =)))

U-ZvER
()
Ответ на: комментарий от KOPEHb

>Если тебе не сложно, расскажи, пожалуйста как ты все это делал подробно. Как собирал, с какими опциями,
>где что включал/отключал. Или залинкуй на руководство. Хочу тоже поэкспериментировать. Не обойди помощью пожалуйста,
>я понимаю, что в падлу, но тем не менее...=) Спасибо.

Да нет там никаких хитростей. Берем исходники freetype.
В include/freetype/config/ftoption.h ищем строчку
/* #define TT_CONFIG_OPTION_BYTECODE_INTERPRETER */ и ее разкомментируем.
Собираем, ставим. Перед этим надо проверить, куда поставлен freetype изначально и ставить именно туда.
Проверить, что ldd /usr/X11R6/lib/modules/fonts/libfreetype.so выдает ссылку на только что поставленную библиотеку freetype'а.
Теперь у нас возможно то, что наблюдается в левом столбце моей картинки.
Как отключать АА в зависимости от размера шрифта тут уже сказали.

Чтобы получить правый столбик нужен smooth-патч от тов. Честера. Сразу оговорюсь, что разницы
между тем, что было до игрищ с freetype'ом и тем, что стало после этого патча, я не заметил.
Т.е. в Slackware по умолчанию все как в правом столбце картинки.

anonymous
()
Ответ на: комментарий от KOPEHb

Вот страничка Честера: http://www.cs.mcgill.ca/%7Edchest/xfthack/

Там патч для freetype 2.1.5. Для 2.1.9 немного другие номера строк, но можно и вручную эти изменения внести. Сюда итоговый патч выложить не могу - слишком большой.

Теперь про остальные комментарии:

1. У меня ЭЛ-монитор и TTF-шрифты без сглаживания меня не устраивают. В винде при включении ClearType все (на мой вкус) становится просто замечательно, уж не знаю, чего там народу не нравиться.

2. Правый средний вариант - то, что у меня сейчас. Если бы не отвратные жирные шрифты все было бы не так уж и плохо. Но жирные - кошмар. На картинке в заголовке ("Вампиры в свете Hi-tech") это прекрасно видно.

3. Есть ли способ подсунуть программам, использующим freetype2 растровые шрифты? Мне они нравятся гораздо больше. В терминале у меня именно они, хочется и в прочих приложениях их пропихнуть (кроме, разве что, браузера с почтовиком).

P.S. "Ссылка на обои" - это теперь дежурная фраза? С некоторой натяжкой обоями на моей картинке можно назвать тестовую страничку - это форумы АГ (раздел тенденции игростроения): forums.ag.ru.

anonymous
()
Ответ на: комментарий от anonymous

давид честер любит читос извратынах левый столбец самый хорошый нада и мне фритайп пересобрать 0)

anonymous
()
Ответ на: комментарий от anonymous

добавлю: сравнивать надо левый средний и правый нижний

а вертикальный четотамнепомню честера не спасает, взгляните хотябы на букву T большую и маленькую

anonymous
()
Ответ на: комментарий от anonymous

вопщем не долго думая пересобираем фритайп как было сказано и в зависимости от потребностей вырубаем AA для мелких фонтов

anonymous
()
Ответ на: комментарий от IceD

>О. Вчера как раз спор про фонты зашёл (и вопрос о том почему они в >виндовсе сосут). Мона глянуть тут http://dsnfap.sf.net/fonts.png...

Никогда не видел в винде таких уродливых шрифтов - только в ляликсе. Короче это фейк, ясное дело.

>BTW - как оказалось 100% виндузятников аж на 3 не самых мелких ирц >каналах не знало что сабпиксель (он же cleartype(tm)(r)(c)) не >предназначен для ЭЛТ мониторов и почти всех поголовно он оказался включён :))

Зачем это знать, если со шрифтами все в порядке.

anonymous
()

Я делаю так. Для LCD просто качаю с freetype.org freetype2 и собираю её с TT_CONFIG_OPTION_BYTECODE_INTERPRETER. Последняя версия freetype2 делает правильные межбуквенные расстояния для tahoma, чего не умели предыдущие. Отключаю АА для шрифтов в диапазоне 8-14 px. И использую только truetype шрифты, т.к. другие при отключенном АА корявы. Получю результат как в винде со шрифтами.

Для CRT собираю freetype с патчем который smooth.. АА не отключаю, результат удовлетворителен.

eRazor ★★★
()

левая верхняя. остальное отстой

Reset ★★★★★
()
Ответ на: комментарий от Deleted

Пардон, я сразу не заметил... Уже всё сделал.

Midael ★★★★★
()

От автора картинки.

Подумал я и решил сделать вот что:

Патч Честера по большому счету лишь включает autohinting. Но это можно сделать и с помощью fontconfig! Значит патч нафиг. Поставил вариант freetype с BYTECODE_INTERPRETER, включил для всех шрифтов размером >= 10 AA и autohinting, отключил autohinting для жирных шрифтов (weight > 100) и отключил АА и autohinting для шрифтов Courirer New, Arial Black и Impact.

В результате обычный шрифт - как на правом нижнем варианте, жирный - как на левом среднем (там жирный в заголовке сообщения - "Вампиры..."), а Courier New и т.д. - как на левом верхнем.

В принципе неплохо, хотя теперь жирный несколько тощий (но все равно лучше, чем с autohinting'ом).

Все это прописывается в /etc/fonts/local.conf, если кто не знает как - man fonts-conf.

anonymous
()
Ответ на: комментарий от anonymous

Вообще-то, RTFM. А точнее - man fonts-conf.

В /etc/fonts/local.conf среди прочего надо написать, к примеру:

<match target="font"> <test name="size" compare="more_eq"> <double>10</double> </test> <edit name="antialias" mode="assign"> <bool>true</bool> </edit> <edit name="autohint" mode="assign"> <bool>true</bool> </edit> </match>

Это включает АА и AH для всех шрифтов, размером >= 10. Отключается аналогично. Работает только для приложений, использующих fontconfig. Приложение может само включать/отключать АА, так что еще и в настройки конкретной проги стоит глянуть (gv, к примеру, так и делает).

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.