Документация по ОС FreeBSD Пятница, 29.03.2024, 09:03
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Мои статьи [0]
Установка и настройка [281]
X Window [25]
Man pages [30]
Ports & Packages [26]
cvs [18]
Multimedia [20]
Нововсти в мире Unix [0]
RFC [4]
RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
Безопасность [52]
Работа с железом [58]
Книги по FreeBSD [17]
Сеть [505]
Программирование [40]
FireWall [58]
Темы экзамена BSDA [14]
Официальные темы экзамена BSDA, включая подробноые описания и советы по обучению.

Главная » Статьи » X Window

FreeBSD: Настройка шрифтов в десктопных приложениях [2010]

Настройка рендеринга шрифтов в десктопных приложениях для FreeBSD и большинства других операционных систем семейства Linux/Unix вызывала, вызывает и будет вызывать множество споров. Если Microsoft Windows предоставляет всего несколько опций, позволяющих изменить внешность шрифтов, то в случае Linux/Unix возможности настройки шрифтов ограничены только вкусами и потребностями пользователя (к сожалению, в некоторых заокеанских странах еще и лицензионными соглашениями).

Постановка задачи

Необходимо настроить шрифты на десктопе с FreeBSD таким образом, чтобы: во-первых, они выглядели, как минимум, не хуже чем в Microsoft Windows с включенным сглаживанием ClearType (были четкими, сглаженными, ни в коем случае не размазанными и не замыленными), во-вторых, чтобы все Веб-страницы, просматриваемые в браузерах для FreeBSD, имели такие же пропорции, как при просмотре в браузерах для Microsoft Windows (к сожалению, многие Веб-разработчики "не слышали” о существование Linux/Unix, поэтому их творения выглядят в среде FreeBSD отвратительно), ну и, в-третьих, необходимо обойтись без шрифтов webfonts (в связи с различием алгоритмов рендеринга эти шрифты никогда не будут выглядеть в FreeBSD также, как в Microsoft Windows).

Исходные данные

Действия, описанные в данной статье, выполнялись на компьютере с интегрированной видеокартой на базе контроллера Intel® 82G33, к которому был подключен 17″ LCD-монитор Samsung SyncMaster 710v. Этот компьютер работал под управлением операционной системы FreeBSD 8.0, оконной системы Xorg 7.4_3 и графической оболочки KDE 4.3.5. Библиотеки рендеринга шрифтов пересобирались из последних на начало марта 2010 года версий портов. После установки Xorg и KDE c опциями по-умолчанию шрифты выглядели так (слабонервным ни в коем случае не смотреть):

Внешний вид данного сайта со шрифтами по умолчанию

Установка и интеграция в систему шрифтов Liberation

Сразу отвечу на вопрос, почему именно Liberation. Потому, что шрифт Liberation Serif метрически совместим со шрифтом Times New Roman, Liberation Sans – с Arial, а Liberation Mono – с Courier New, соответственно. При этом в среде FreeBSD шрифты Liberation выглядят гораздо симпатичнее своих аналогов из Microsoft Windows. Шрифты Liberation могут быть установлены из порта liberation-fonts-ttf, однако, коллекция портов содержит не самую последнюю их версию, в связи с чем я рекомендую выполнить установку "вручную”. Для загрузки из официального репозитория и установки последней версии шрифтов Liberation (в моем случае – версии 1.05.2 от 27 декабря 2009 года) необходимо выполнить следующую последовательность команд:

mkdir /usr/local/lib/X11/fonts/Liberation
cd /usr/local/lib/X11/fonts/Liberation
fetch https://fedorahosted.org/releases/l/i/liberation-fonts/liberation-fonts-ttf-1.05.2.20091227.tar.gz
tar -xf liberation-fonts-ttf-1.05.2.20091227.tar.gz
mv ttf/* .
rm -Rf liberation-fonts-ttf-1.05.2.20091227.tar.gz ttf
mkfontscale .
mkfontdir .
fc-cache -fs

После установки шрифтов Liberation следует изменить ряд опция в разделе Шрифты модуля Внешний Вид, который находится на закладке Основные окна Параметры системы. В частности, следует включить Сглаживание, Межточечное сглаживание (наилучший режим межточечного сглаживания зависит от типа используемого монитора) и Полный хинтинг, а также установить в поле Использовать другой DPI значение 96 dpi.
Для того, чтобы в качестве псевдошрифтов Serif, Sans-Serif и Monospace всегда использовались шрифты Liberation Serif, Liberation Sans и Liberation Mono, необходимо подкорректировать два файла конфигурации шрифтов, которые расположены в папке /usr/local/etc/fonts/conf.avail.
Резделы Serif faces, Sans-serif faces и Monospace faces файла 45-latin.conf по умолчанию содержат ссылки на шрифты Liberation Serif, Liberation Sans и Liberation Mono, однако, их следует перенести с третьих мест после Bitstream Vera и DejaVu на первые:

<!--
  Serif faces
-->
        <alias>
                <family>Liberation Serif</family>
                <family>Bitstream Vera Serif</family>
                <family>DejaVu Serif</family>
                <family>Times New Roman</family>
                ...
        </alias>
<!--
  Sans-serif faces
-->
        <alias>
                <family>Liberation Sans</family>
                <family>Bitstream Vera Sans</family>
                <family>DejaVu Sans</family>
                <family>Arial</family>
                ...
        </alias>
<!--
  Monospace faces
-->
        <alias>
                <family>Liberation Mono</family>
                <family>Bitstream Vera Sans Mono</family>
                <family>DejaVu Sans Mono</family>
                <family>Inconsolata</family>
                ...
        </alias>

Разделы Serif, Sans-serif и Monospace файла 60-latin.conf по умолчанию не содержат ссылки на шрифты Liberation Serif, Liberation Sans и Liberation Mono, поэтому их необходимо добавить, причем на первые места, как и в предыдущем случае:

<alias>
        <family>serif</family>
        <prefer>
                <family>Liberation Serif</family>
                <family>Bitstream Vera Serif</family>
                <family>DejaVu Serif</family>
                ...
        </prefer>
</alias>
<alias>
        <family>sans-serif</family>
        <prefer>
                <family>Liberation Sans</family>
                <family>Bitstream Vera Sans</family>
                <family>DejaVu Sans</family>
                ...
        </prefer>
</alias>
<alias>
        <family>monospace</family>
        <prefer>
                <family>Liberation Mono</family>
                <family>Bitstream Vera Sans Mono</family>
                <family>DejaVu Sans Mono</family>
                ...
        </prefer>
</alias>

Для того, чтобы при отображении всех элементов интерфейса Mozilla Firefox, Mozilla Thunderbird и остальных приложений, построенных на базе GTK2, использовался шрифт Liberation Sans 10, необходимо создать в домашней папке файл .gtkrc-2.0, имеющий следующее содержимое:

style "user-font"
{
    font_name="Liberation Sans 10"
}
widget_class "*" style "user-font"
gtk-font-name="Liberation Sans 10"

Для того, чтобы при отображении всех элементов интерфейса приложений пакета OpenOffice.org использовались настройки шрифтов, заданные в конфигурации KDE4, необходимо пересобрать порт OpenOffice.org с опцией WITH_KDE4:

cd /usr/ports/editors/openoffice.org-3
make -DWITH_KDE4 -DWITHOUT_GNOME LOCALIZED_LANG=ru deinstall build install clean

На этом установка и интеграция в систему шрифтов Liberation заканчивается. Остается отключить ненужные более растровые шрифты, добавив в папку /usr/local/etc/fonts/conf.d символическую ссылку на файл /usr/local/etc/fonts/conf.avail/70-no-bitmaps.conf:

cd /usr/local/etc/fonts/conf.d
ln -s ../conf.avail/70-no-bitmaps.conf

Если Вы не хотите отказываться от какого-либо растрового шрифта, например, от шрифта Terminus, (на мой взгляд, он является лучшим шрифтом для консольных приложений), необходимо добавить в файл /usr/local/etc/fonts/conf.avail/70-no-bitmaps.conf следующие строки:

<selectfont>
 <acceptfont>
  <pattern>
   <patelt name="family">
    <string>Terminus</string>
   </patelt>
  </pattern>
 </acceptfont>
<rejectfont>

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

Внешний вид данного сайта после установки шрифтов Liberation

Пересборка библиотек Cairo и FreeType 2

В связи с возможными нарушениями авторских прав многие очень полезные функции библиотек рендеринга шрифтов Cairo и FreeType 2 по умолчанию отключены. В связи с тем, что патенты на данные функции действую на территории США, мы можем "нарушать” их без зазрения совести. В настоящее время существует множество патчей для библиотек Cairo и FreeType 2. Лично я пересобирал библиотеки согласно статье ClearType-сглаживание в Linux, или шрифты как в Ubuntu, которая предлагает наложить один патч на Cairo и пять патчей на FreeType 2. Также автор рекомендует пропатчить библиотеку libXft, однако, в моем случае ее модификация не дала каких-либо заметных улучшений. В связи с тем, что указанная статья написана достаточно подробно, мне остается только привести список команд, позволяющих пересобрать библиотеки из портов FreeBSD:

cd /usr/ports/graphics/cairo
make deinstall clean extract
cd work/cairo-1.8.8
fetch http://aur.archlinux.org/packages/cairo-cleartype/cairo-cleartype/cairo-1.2.4-lcd-cleartype-like.diff
patch -Np1 -i cairo-1.2.4-lcd-cleartype-like.diff
cd ../..
make install clean
cd /usr/ports/print/freetype2
make deinstall clean extract
cd work/freetype-2.3.11
fetch http://aur.archlinux.org/packages/freetype2-cleartype/freetype2-cleartype/bytecode.patch \
http://aur.archlinux.org/packages/freetype2-cleartype/freetype2-cleartype/freetype-2.2.1-subpixel-disable-quantization.diff \
http://aur.archlinux.org/packages/freetype2-cleartype/freetype2-cleartype/freetype-2.3.0-enable-spr.patch \
http://aur.archlinux.org/packages/freetype2-cleartype/freetype2-cleartype/freetype-2.2.1-enable-valid.patch \
http://aur.archlinux.org/packages/freetype2-cleartype/freetype2-cleartype/freetype-2.2.1-memcpy-fix.patch
patch -Np0 -i bytecode.patch
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
cd ../..
make install clean

На этом настройка шрифтов в десктопных приложениях для FreeBSD заканчивается. Любителям красивых шрифтов (похожих на шрифты Microsoft Windows c включенным сглаживанием ClearType или на шрифты Ubuntu), в число которых вхожу и я, остается переключиться на Легкий хинтинг:

Внешний вид данного сайта после после установки шрифтов Liberation, пересборки библиотек и включения легкого хинтинга

Почитателям строгих, максимально четких шрифтов (похожих на классические шрифты Linux/Unix) лучше оставить Полный хинтинг:

Внешний вид данного сайта после после установки шрифтов Liberation, пересборки библиотек и включения полного хинтинга

Альтернатива пересборки библиотеки FreeType 2

Следует отметить, что альтернативой пересборки библиотеки FreeType 2, позволяющей не нарушать патенты, является включение автохинтинга, однако, на мой взгляд, с ним шрифты, особенно мелкие, выглядят значительно хуже. Если Вы все же захотите попробовать автохинтинг, добавьте в папку /usr/local/etc/fonts/conf.d символическую ссылку на файл /usr/local/etc/fonts/conf.avail/10-autohint.conf для его включения:

cd /usr/local/etc/fonts/conf.d
ln -s ../conf.avail/10-autohint.conf

Достаточно часто после активации автохинтинга жирные шрифты становятся безобразно жирными. Для того, чтобы отключить автохинтиг для жирных шрифтов, необходимо добавить в файл /usr/local/etc/fonts/conf.avail/10-autohint.conf следующие строки:

</match>
 <match target="font">
  <test compare="more" name="weight">
   <const>medium</const>
  </test>
  <edit mode="assign"  name="autohint">
   <bool>false</bool>
  </edit>
 </match>
</fontconfig>

Заключение

Я искренне надеюсь, что рекомендации, содержащиеся в данной статье, помогут Вам настроить шрифты в десктопных приложениях для FreeBSD или любой другой операционной системы семейства Linux/Unix согласно Вашим вкусам и потребностям. Я же обязательно продолжу свои эксперименты по переходу с Microsoft Windows на FreeBSD и по мере возможности буду рассказывать о том, что получилось и не получилось.



Источник: http://www.sergeysl.ru/freebsd-fonts/
Категория: X Window | Добавил: oleg (03.04.2010) | Автор: sergeysl
Просмотров: 1407 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024