сглаживание шрифтов
Но шрифты выглядят не очень красиво. Может мне кажется, но в старой слакваре (где я ничего не настраивал, всё было как-то по дефолту) выглядело красивее. При выставлении hintfull или другого hint* результат тот же, что и от отключения hinting вообще. lcdfilter тоже ничего не меняет (пробовал разные варианты). Настоящий конфиг даёт лучший результат, но не идеальный.
Вообще, мне и без сглаживание хорошо живётся. Почему в виндовсе, когда отключаешь сглаживание, шрифты становятся просто более «чёткими» и «резкими», но выглядят нормально (на работе на всех виндовых компах сглаживание выключено и всё выглядит очень хорошо). Если я отключаю сглаживание в линуксе (в слаке 12.2 так было и теперь в арче), то шрифты меняют свой вид, становятся обгрызанными и корявыми, просто страх. Можно ли настроить (и если да, то как) в линуксе шрифты так, чтобы они выглядели как несглаженные виндовые?
>Почему в виндовсе, когда отключаешь сглаживание, шрифты становятся просто более «чёткими» и «резкими», но выглядят нормально
Отключается antialias, остаётся hinting, причём hinting там — BCI, а (старые) виндовые шрифты на это заточены.
Можешь попробовать в /etc/fonts/conf.d/ из conf.avail насимлинкать выключенный autohint, включенный хинтинг, антиалиас по вкусу.
Ну и как вариант — infinality + выбрать любой из его стилей хинтинга в fonts.conf. Но это ближе к вистовым шрифтам со сглаживанием.
При выставлении hintfull или другого hint* результат тот же, что и от отключения hinting вообще.
Так быть не должно. Что-то у вас не в порядке.
А если совсем убрать
Xft.lcdfilter: lcdnone
и установить
Xft.hintstyle: hintfull
??
Всё равно. Может маааленькая разница есть, но я её не замечаю. Вот при histslight хинтинг явно есть. Возможно, у меня что-то не так. Подскажите, пожалуйста, *что* может быть не так?
Как можно подсказать не видя твоего монитора (не скриншот, а вживую)?
Монитор SyncMaster 720n, видеокарта на GeForce GT430, Arch Linux последний.
dpi у меня 96. Я поставил Xft.dpi: 96.0 — ничего не изменилось. Про hintfull я уже писал. Субпиксельное сглаживание мне не нравится: цветные точки на ч/б тексте раздражают.
Больше инфы давай. Какой ВМ/ДЕ? С моим конфигом пробовал? У меня SyncMaster 2043bw и шрифты во всех gtk-прогах отличные. qt-шные надо настраивать дополнительно (мне влом, поэтому не заморачивался).
Ну и в каких именно приложениях не работает?
Во всех графических (со шрифтами типа terminus, clean всё нормально; на них, кажись, вообще все эти сглаживания не влияют — и это хорошо, они выглядят прекрасно и без сглаживания; вот что мешает остальным шрифтам без сглаживания выглядеть нормально?)
У меня SyncMaster 2043bw и шрифты во всех gtk-прогах отличные
Не могли бы скинуть скриншот?
Могу. А толку? На скриншоте и в реале могут быть абсолютно разные вещи. На всякий случай — у меня основной Sans 11.
Поиграйся c font-manager и патчами freetype
Ппц мистика. hintstyle кроме hintslight категорически что-либо другое отказывается принимать. Обновил сейчас систему (pacman -Syu). Но ничего лучше не стало.
Подумал, что виноват .Xdefaults: написал
/.fonts.conf как в примерах в интернете, поставив hintfull — тоже не реагирует (иксы перезапускал). Ладно, может
/.fonts.conf не читается просто. Скопировал его в /etc/fonts/conf.d/99-xxx.conf. Опять не работает. Хуже того: даже поставив hintslight ничего не заработало (через Xft.hintstyle в .Xdefaults работало). Может /etc/fonts вообще не читаются при запуске иксов?
Ради интереса достал из шкафа старую машину с почти дефолтной слакой 12.2, загрузил (монитор тот же и параметры те же). Всё выглядит прекрасно. К сожалению, узнать опции не удалось: пролазив в /etc/fonts/conf.d не нашёл ни строчки про antialias, hinting, etc. (были только конфиги для отключения хинтинга для малых размеров шрифтов).
/.fonts.cond и .Xdefaults там тоже нет.
Короче, я в глубоком замешательстве. Новый компьютер и арч всем порадовал, но шрифты. смотреть страшно. Мелочь, а всё портит, зараза!
Источник
Страницы
- Android (21)
- Dev (55)
- Dingux (14)
- EZX (31)
- Half-Life (3)
- Manuals (34)
- MotoMAGX (166)
- Others (43)
- Reviews (10)
Поиск
Мне очень нравится 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.
Инструкции по установке infinality в другие GNU/Linux дистрибутивы можно найти здесь:
После установки infinality, система нуждается в настройке. Для этого выполняем следующую команду:
sudo bash / etc / fonts / infinality / infctl . sh setstyle
После её выполнения вам будет предложено сменить стиль сглаживания шрифтов:
Просто набираем цифру, к примеру, в контексте этой статьи это «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 не стартует автоматически. И при запуске системы нас встречает голая консоль. Чтобы исправить это недоразумение, необходимо выполнить в терминале следующие команды:
И добавить в файл «
/.bashrc» строку, подгружающую настройки infinality:
echo — e ‘. /etc/infinality-settings.sh’ >>
Если вы используете Linux Mint, обязательно выполните команды, написанные выше. Если любой другой дистрибутив, не использующий mdm, просто проигнорируйте их.
После всего этого можно перезагрузить систему и увидеть новое сглаживание, максимально приближенное к технологии ClearType, использующейся в Windows 7.
Результаты
Посмотреть на получившиеся результаты и сравнить их между собой можно в этой таблице:
Шрифт | Linux Mint 15 KDE default; Use anti-aliasing: Enabled | Windows 7 default | Linux Mint 15 KDE infinality; Use anti-aliasing: Enabled |
| | | |
| | | |
| | | |
| | | |
Для демонстрации рендеринга шрифтов в различных системах используется кросс-платформенная IDE — Qt Creator
Как видно из таблицы, infinality просто отлично справляется со своей задачей. Шрифт Consolas отображается практически так же, как и в Windows 7. Только линии немного толще. В Courier New междустрочные интервалы менее заметны, чем в Windows 7, хотя начертание букв практически одинаково. Свободный шрифт Fira Mono рендерится с большими междустрочными интервалами, из-за чего в GNU/Linux-системах он выглядит немного «разряженным». Ну а пиксельный Terminus, как и ожидаемо, рендерится во всех системах одинаково. Различия как всегда в междустрочных интервалах.
Удаление infinality
Для удаления infinality и его репозитория следует выполнить следующие команды:
Источник
ClearType-сглаживание в Linux, или шрифты как в Ubuntu
Доброго времени суток, Хабр. Увидел я недавно новую Ubuntu и стало мне завидно, что у нее шрифты красивее, чем в моей Mandriva (GNOME). И стал я копать. Копал и экспериментировал я долго, но в итоге я добился нужного результата. Хочу теперь вам рассказать как это у меня получилось. Сделал я это путем пересборки библиотек, которые отвечают за рендеринг шрифтов, с поддержкой ClearType-сглаживания. Не знаю, красивее чем в Ubuntu или нет, но мне нравятся. Итак, приступим.
Библиотеки
Для отрисовки шрифтов используются такие библиотеки:
Cairo — библиотека, предназначенная для рендеринга векторной графики.
Xft — свободная библиотека, предназначена чтобы использовать Freetype растеризер с X-расширением X Rendering Extension; обычно это нужно для для использования шрифтов FreeType с X Window System.
FreeType — библиотека, которая используется для растеризации шрифтов и операций над ними.
Исходники библиотек
Дело было с последними стабильными версиями, на сегодня это:
Cairo 1.8.8
Xft 2.1.14
FreeType 2.3.11
Основные патчи
За патчи огромное спасибо сообществу пользователей Arch Linux, у которых я их всех и нашел.
Каждый патч ничего сложного не делает, просто вносит некоторые изменения в исходники библиотек. Для их применения нужен пакет «patch» который найдете в репозиториях. Об его использовании и о его параметрах и ключах можно почитать здесь. Коды патчей обновлены для работы с новыми версиями библиотек. Если посмотреть код любого из них, то можно делать все это вручную путем добавления и замены кода в исходниках.
Cairo:
cairo-1.2.4-lcd-cleartype-like.diff — ClearType рендеринг шрифтов. Подобное сглаживание и применяется в убунту (исходя с сравнения). Напомню что данный метод зарегистрирован компанией Microsoft.
Xft:
libXft-2.1.14-lcd-cleartype.patch — то же самое что и для cairo. Это повлияло у меня на шрифты в Opera, Lotus Symphony.
FreeType:
bytecode.patch -включает рендеринг шрифтов, запатентованный компанией Apple, поэтому он выключен изначально. Это опционально, можно и не включать.
freetype-2.2.1-subpixel-disable-quantization.diff — название говорит само за себя, выключает квантование.
freetype-2.3.0-enable-spr.patch — включение субпиксельного рендеринга
freetype-2.2.1-enable-valid.patch
freetype-2.2.1-memcpy-fix.patch
У них еще есть патчи для сглаживания от Canonical — freetype2-ubuntu, libxft-ubuntu, cairo-ubuntu, но они мне особо не помогли, даже хуже сделали. Тем более что они не для новых версий библиотек.
Сборка библиотек
Все зависимости для компиляции установите в процессе, ибо я уже не помню их всех.
Для начала собeрем Cairo. Переходим в папку с исходниками cairo-1.8.8/. Бросаем туда патч (мне было так удобнее), и в консоли выполняем:
$ patch -Np1 -i cairo-1.2.4-lcd-cleartype-like.diff
$ ./configure —prefix=/usr
$ make && make install
Естественно для команды make install будут нужны права root’а, поэтому либо выполняйте все в консоли от рута либо к make install прменяйте sudo.
Если перезагрузить иксы, мы увидим значительную разницу в отрисовке шрифтов.
Дальше собираем Xft. Стаем в libXft-2.1.14/:
$ patch -Np1 -i libXft-2.1.14-lcd-cleartype.patch
$ ./configure —prefix=/usr
$ make && make install
Теперь FreeType. Если вы хотите использовать рендеринг Apple, тогда накладываем bytecode.patch. freetype-2.3.11/:
$ patch -Np0 -i bytecode.patch
И еще дополнительные изменения которые можно применять и без bytecode. Это уже надо смотреть самим, лучше ли с ними или нет:
$ patch -Np1 -i freetype-2.2.1-subpixel-disable-quantization.diff
$ patch -Np1 -i freetype-2.3.0-enable-spr.patch
$ patch -Np1 -i freetype-2.2.1-enable-valid.patch
$ patch -Np1 -i freetype-2.2.1-memcpy-fix.patch
$ ./configure —prefix=/usr
$ make && make install
После этого можно перезапускать иксы.
Конец
Приведу вам свои скрины чтобы вы видели разницу:
Все шрифты приложений, документов, заголовков и робочего стола у меня в настройках по умолчанию — Sans.
Вот так у выглядел Firefox у меня с «нетронутыми» библиотеками:
1.
Firefox, пропатчен Cairo:
Теперь стало похоже на Убунту.
Полное (Full) уточнение (Hinting) шрифтов (в настройках шрифтов в GNOME):
2.
Слабое (Slight) уточнение (Hinting) шрифтов, которое в Убунту стоит всегда по умолчанию:
3.
Opera, пропатчен Xft:
Слабое (Slight) уточнение (Hinting) шрифтов:
4.
Firefox, пропатчен FreeType с bytecode.patch:
Полное (Full) уточнение (Hinting) шрифтов:
5.
Слабое (Slight) уточнение (Hinting) шрифтов:
Кстати это тоже выглядит как в Убунту.
6.
На последок рекомендую поигратся в настройках шрифтов в GNOME (или KDE), особенно с dpi. Можно еще поэксперементировать с ихними патчами, и добится лучшего результата.
На этом у меня все. Спасибо всем, надеюсь кому-то это пригодилось.
UPDATE:
По просьбам выкладываю сводную картину со всех 6-ти выше показаных сриншотов:
Отмечу, что в настройках шрифтов GNOME у меня все время было включено сглаживание «Субпиксельное (ЖК-мониторы)».
Также отмечу, что по скринам видно, что в Опере шрифты чуть темнее. Но это потому что Опера использует Xft, в то время как Фаерфокс (да и весь гном) — cairo. Отсюда вывод — разница в рендеринге libxft-cleartype и cairo-cleartype есть.
еще UPDATE:
Покопал я глубже, в исходниках патчей. Сравнил патч для Cairo и патч Xft. В них нашел весьма интересные и похожые строчки:
В патче Xft:
+static const int fir_filter[5] = < 0x10, 0x40, 0x70, 0x40, 0x10 >;
В патче Cairo:
+static const int fir_filter[5] = < 0x1C, 0x38, 0x55, 0x38, 0x1C >;
С комментария для этой строчки в Xft (/* note: keep the filter symetric, or bad things will happen */) я понял что это, какбы, массив размеров каких-то, частот или что-то в этом роде. Ну откуда мне знать-то?)) Но по названию массива можна подумать что там применялся алгоритм вот этой штуковины. )) Но все-же, откуда мне знать? Долго я не думал, и установил в патче для Cairo такие же шестнадцатиричные числа (размера, частоты?) в этом массиве как и в патче для Xft, пересобрал. И, о чудо, у меня везде теперь такие же темненькие и четкие шрифты как в Опере (Qt).
Firefox, пропатчены все библиотеки, полное (Full) уточнение (Hinting) шрифтов:
7.
Сравните с 5-м скрином.
Firefox, пропатчен только Cairo, слабое (Slight) уточнение (Hinting) шрифтов:
8.
Сравните с 3-м скрином и с 4-м скрином, где Опера.
Все, теперь я доволен. =) Вот вам измененный патч для Cairo
Источник