В начало → Настройка X
Gentoo-doc HOME В началоСлед.: Настройка размера шрифтов в X

Настройка X


1. Настройка русских шрифтов в X
2. Настройка размера шрифтов в X
3. Xorg X11 и прозрачность
4. Xorg. Переключение раскладок
5. Установка Xgl
6. XGL
7. Автоматическое переключение раскладок
8. Cedega 5.1

1. Настройка русских шрифтов в X

1.1. Введение

Введение временное

Ну вот и начался этот проект, призванный восполнить достаточно широкий пробел в документации по настройке шрифтов в Иксах. Надеюсь многочисленные русские пользователи проявят некую сознательность и отпишут сюда пару строчек.

Кто принимает участие

Macil — линуксоид из Ярославля. Обитает на yar.lancktelecom.ru/talk, forum.median.ru, а также Macil [at] jabber.ru

Wanderer — пользователь Linux из Москвы. Всерьез занимаюсь изучением и использоваением Linux последние 4 года, до этого просто приглядывался ;-). На Gentoo пересел почти год назад и ничуть не жалею и даже наоборот, очень этим доволен. Связаться со мной можно посредством e-mail (wanderer_mg [at] mail.ru) или jabber (wanderer [at] jabber.ru).

1.2. Две системы рисования шрифтов

Исторически в X Window System существует 2 системы рисования шрифтов. Родная (core) и Xft.

Родная система – прямой потомок системы рисования шрифтов, введенной в X11R1, выпущенной в 1987 году. Изначально она могла рисовать только монохромные растровые шрифты, но на протяжении всех этих лет предпринимались более-менее успешные попытки заставить ее работать с векторными шрифтами.

Xft не является неотъемлемой частью X, хотя возможно будет ей в будущем. Это значит, что она распространяется не со всеми реализациями X. Она проектировалась для работы с векторными шрифтами, и делает это достаточно эффективно. В отличие от родной системы рисования, Xft поддерживает anti-aliasing и sub-pixel rasterisation. Кроме того, она позволяет приложениям полностью контролировать то, как будут рисоваться шрифты, обеспечивая возможность создания WYSIWYG приложений.

Нужно ли уточнять что эти две подсистемы совершенно не совместимы на уровне API? Из-за достаточно анархичного развития X в последнее время, возникла большая путаница в определениях и версиях используемых библиотек.

//Источник: вольный перевод файла README.fonts

1.3. Хft

Введение в Xft

Xft это библиотека, которая предоставляет клиентский API для рисования шрифтов. В настоящее время версия Xft 2.0 использует библиотеки fontconfig и freetype для выбора шрифтов и их рисования, соответственно. Xft 1.0 использовала внутренний механизм конфигурации, что было не очень хорошей идеей так как KDE и Pango "заимствовали" механизм конфигурации шрифтов и создали еще большую путаницу. Подробности можно посмотреть [здесь].

Нужно запомнить 3 вещи:

fontconfig — для конфигурации

freetype — для рисования

XFT — связывает все во едино

Freetype — библиотека рисования шрифтов

[Freetype] — совершенно независимый от кого-либо проект по созданию библиотеки рисования шрифтов. Библиотека предоставляет достаточно простой API, но поскольку обычные приложения заинтересованы в более высокоуровневых сервисах, в чистом виде не используется. Вместе с X идет модифицированная freetype, предназначенная для поддержки векторных шрифтов родной системой рисования. Я не вижу смысла даже пытаться ее компилировать (она компилируется в модуль freetype), так как большинство приложений перешли на использование Xft и путанице со шрифтами приходит конец. Рендеринг векторных шрифтов очень сложный процесс, и к сожалению, freetype не может его выполнять до конца и в некоторых шрифтах появляются не очень приятные артефакты. Но ничего лучшего (открытого и бесплатного) пока нет... Как обычно, существует 2 версии freetype: freetype1 и freetype2. Отличия их в том, что freetype1 может рисовать тоько шрифты формата TrueType. Сложно найти современный дистрибутив, где отсутствует freetype2.

1.4. Теория рендеринга векторных шрифтов

Что такое hinting

На английском много информации о hinting можно найти тут http://www.myfonts.com/activity/hinting/

Не уверен, однако, что можно тут публиковать такие ссылки.

Это — незавершённая статья. Вы можете помочь проекту, исправив и дополнив материал.

Что такое anti-aliasing

Это методы избавления от артефактов, возникающих при отрисовке векторного изображения в растовое. Когда вектороное изображение (не дискретное, к примеру, формула y=2*x) отрисовывается в растовое, то в результате погрешностей и того, что цвет каждого пискселя строго зависит от формулы, возникают артефакты. То есть наклонную линию мы будем видеть ступенчато, а не плавно. Методы anti-aliasing, в основном, базируются на отрисовке изображения в большее разрешение и приведение к обычному путём билинейной фильтрации, т.е. цвет пикселя будет строиться из цветов нескольких пикселей большого изображения. Шрифты после применения anti-aliasing выглядят более гладко, т.к. более точно соответствуют "векторной формуле".

Это — незавершённая статья. Вы можете помочь проекту, исправив и дополнив материал.

Шрифты из Microsoft Windows

Установка шрифтов Microsoft Windows имея доступ в интернет

Если есть доступ к интернету, то можно просто установить пакет corefonts: emerge corefonts

1.5. Настройка родной подсистемы

Настройка Xft

Все настройки Xft хранятся в файлах /etc/fonts/fonts.conf и /etc/fonts/local.conf. Все изменения нужно производить в файле /etc/fonts/local.conf. Изменение файла /etc/fonts/fonts.conf не рекомендуется, т.к. при обновлении пакета fontconfig он будет перезаписан и все настройки потеряны.

Отключение сглаживания для шрифтов меньше определенного размера

По умолчанию сглаживание действует для всех шрифтов, но для шрифтов маленького размера его лучше отключить, т.к. смотрится это почти всегда плохо.

Ниже приведен пример конфига /etc/fonts/local.conf, в котором указана отмена сглаживания для шрифтов, размер которых меньше 14. Code: /etc/fonts/local.conf

<?xml version="1.0"?>

<!DOCTYPE fontconfig SYSTEM "fonts.dtd">

<!-- /etc/fonts/local.conf file for local customizations -->

<fontconfig>

<!--  Enable sub-pixel rendering  -->

        <match target="font">

                <edit name="rgba" mode="assign"><const>rgb</const></edit>

        </match>

        <match target="font">

            <test name="size" compare="less_eq">

                <double>14</double>

            </test>

            <edit name="antialias" mode="assign">

                <bool>false</bool>

            </edit>

        </match>

        <match target="font">

            <test name="pixelsize" compare="less_eq">

                <double>14</double>

            </test>

            <edit name="antialias" mode="assign">

                <bool>false</bool>

            </edit>

        </match>

</fontconfig>

1.6. Настройка Qt и Gtk

Для Qt

emerge qt qtconfig

Для Gtk

emerge gtk-theme-switch switch2

В началоСлед.: Настройка размера шрифтов в X
В начало → Настройка X