Шрифты, используемые по умолчанию и распространяемые вместе с X11, вряд ли можно
назвать идеально подходящими для применения в обычных издательских приложениях. Большие
презентационные шрифты выглядят рвано и непрофессионально, а мелкие шрифты в Netscape® вообще невозможно
разобрать. Однако есть некоторое количество свободно распространяемых высококачественных
шрифтов Type1 (PostScript®), которые можно без
изменений использовать с X11. К примеру, в наборе шрифтов URW (x11-fonts/urwfonts) имеются высококачественные версии
стандартных шрифтов type1 (Times Roman®, Helvetica®, Palatino® и
другие). В набор Freefonts (x11-fonts/freefonts) включено ещё больше шрифтов, однако
большинство из них предназначено для использования в программном обеспечении для работы с
графикой, например, Gimp, и они не вполне пригодны для
использования в качестве экранных шрифтов. Кроме того, X11 с минимальными усилиями может
быть настроена на использование шрифтов TrueType®.
Более детальная информация находится на странице справочной системы X(7) и в разделе о шрифтах TrueType ниже.
Для установки вышеупомянутых коллекций шрифтов Type1 из коллекции портов выполните
следующие команды:
# cd /usr/ports/x11-fonts/urwfonts
# make install clean
То же самое нужно будет сделать для коллекции freefont и других. Чтобы X-сервер
обнаруживал этих шрифты, добавьте соответствующую строку в файл настройки X сервера /etc/X11/ (xorg.conf для Xorg и XF86Config для XFree86™), которая должна
выглядеть так:
FontPath "/usr/X11R6/lib/X11/fonts/URW/"
Либо из командной строки при работе с X выполните:
% xset fp+ /usr/X11R6/lib/X11/fonts/URW
% xset fp rehash
Это сработает, но будет потеряно, когда сеанс работы с X будет закрыт, если эта
команда не будет добавлена в начальный файл (~/.xinitrc в
случае обычного сеанса через startx или ~/.xsession при входе через графический менеджер типа XDM). Третий способ заключается в использовании нового файла /usr/X11R6/etc/fonts/local.conf: посмотрите раздел об антиалиасинге.
Как в XFree86 4.X, так
и в Xorg имеется встроенная поддержка шрифтов TrueType. Имеются два модуля, которые могут обеспечить эту
функциональность. В нашем примере используется модуль freetype, потому что он в большей
степени похож на другие механизмы для работы с шрифтами. Для включения модуля freetype
достаточно в раздел "Module" файла /etc/X11/xorg.conf или /etc/X11/XF86Config добавить следующую строчку.
Load "freetype"
В случае XFree86 3.3.X
требуется отдельный сервер шрифтов TrueType. Для этого
обычно используется Xfstt. Для установки Xfstt просто установите порт x11-servers/Xfstt.
Теперь создайте каталог для шрифтов TrueType (к
примеру, /usr/X11R6/lib/X11/fonts/TrueType) и скопируйте все
шрифты TrueType в этот каталог. Имейте в виду, что
напрямую использовать шрифты TrueType с Macintosh® нельзя; для использования с X11 они должны быть в
формате UNIX®/MS-DOS®/Windows®. После
того, как файлы будут скопированы в этот каталог, воспользуйтесь утилитой ttmkfdir для создания файла fonts.dir,
который укажет подсистеме вывода шрифтов X на местоположение этих новых файлов. ttmkfdir имеется в Коллекции Портов FreeBSD как x11-fonts/ttmkfdir.
# cd /usr/X11R6/lib/X11/fonts/TrueType
# ttmkfdir > fonts.dir
После этого добавьте каталог со шрифтами TrueType к
маршруту поиска шрифтов. Это делается точно также, как описано выше для шрифтов Type1, то есть выполните
% xset fp+ /usr/X11R6/lib/X11/fonts/TrueType
% xset fp rehash
или добавьте строку FontPath в файл xorg.conf (или XF86Config).
Это всё. Теперь Netscape, Gimp, StarOffice™ и все остальные X-приложения должны
увидеть установленные шрифты TrueType. Очень маленькие
(как текст веб-страницы на дисплее с высоким разрешением) и очень большие (в StarOffice) шрифты будут теперь
выглядеть гораздо лучше.
Обновление выполнил Joe Marcus
Clarke.
Анлиалиасинг присутствует в X11 начиная с XFree86, версии 4.0.2. Однако настройка шрифтов была
довольно громоздка вплоть до появления XFree86 4.3.0. Начиная с версии XFree86 4.3.0, все шрифты, расположенные в каталогах /usr/X11R6/lib/X11/fonts/ и ~/.fonts/,
автоматически становятся доступными для применения антиалиасинга в приложениях,
использующих Xft. Не все приложения могут использовать Xft, но во многих его поддержка
присутствует. Примерами приложений, использующих Xft, является Qt версий 2.3 и более
поздних (это инструментальный пакет для оболочки KDE), GTK+
версий 2.0 и более поздних (это инструментальный пакет для оболочки GNOME), а также Mozilla версий 1.2 и
более поздних.
Для управления тем, к каким шрифтам применять антиалиасинг, а также для настройки
параметров антиалиасинга, создайте (или отредактируйте, если он уже существует) файл /usr/X11R6/etc/fonts/local.conf. Некоторые мощные возможности
системы шрифтов Xft могут быть настроены при помощи этого файла; в этом разделе описаны
лишь некоторые простые возможности. Для выяснения всех деталей, пожалуйста, обратитесь к
fonts-conf(5).
Этот файл должен быть сформирован в формате XML. Обратите особое внимание на регистр
символов, и удостоверьтесь, что все тэги корректно закрыты. Файл начинается обычным
заголовком XML, за которым следуют задание DOCTYPE, а потом тэг <fontconfig>:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
Как и говорилось ранее, все шрифты из каталога /usr/X11R6/lib/X11/fonts/, а также ~/.fonts/ уже доступны для приложений, использующих Xft. Если вы
хотите добавить каталог, отличный от этих двух, добавьте строчку, подобную следующей, в
файл /usr/X11R6/etc/fonts/local.conf:
<dir>/path/to/my/fonts</dir>
После добавления новых шрифтов, и особенно новых каталогов со шрифтами, вы должны
выполнить следующую команду для перестроения кэшей шрифтов:
# fc-cache -f
Антиалиасинг делает границы несколько размытыми, что делает очень мелкий текст более
читабельным и удаляет ``лесенки'' из текста большого размера, но может вызвать нечёткость
при применении к тексту обычного размера. Для исключения размеров шрифтов, меньших 14, из
антиалиасинга, добавьте такие строки:
<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>
Для некоторых моноширинных шрифтов антиалиасинг может также оказаться неприменимым при
определении межсимвольного интервала. В частности, эта проблема возникает с KDE. Одним из возможных решений для этого является жесткое
задание межсимвольного интервала в 100. Добавьте следующие строки:
<match target="pattern" name="family">
<test qual="any" name="family">
<string>fixed</string>
</test>
<edit name="family" mode="assign">
<string>mono</string>
</edit>
</match>
<match target="pattern" name="family">
<test qual="any" name="family">
<string>console</string>
</test>
<edit name="family" mode="assign">
<string>mono</string>
</edit>
</match>
(это создаст алиасы для других общеупотребительных имён для шрифтов фиксированного
размера как "mono"), а затем добавьте:
<match target="pattern" name="family">
<test qual="any" name="family">
<string>mono</string>
</test>
<edit name="spacing" mode="assign">
<int>100</int>
</edit>
</match>
С некоторыми шрифтами, такими, как Helvetica, могут получиться проблемы при
антиалиасинге. Обычно это проявляется в виде шрифта, который наполовину вертикально
обрезан. Хуже того, это может привести к сбоям таких приложений, как Mozilla. Во избежание этого следует добавить следующее в файл local.conf:
<match target="pattern" name="family">
<test qual="any" name="family">
<string>Helvetica</string>
</test>
<edit name="family" mode="assign">
<string>sans-serif</string>
</edit>
</match>
После того, как вы закончите редактирование local.conf,
удостоверьтесь, что вы завершили файл тэгом </fontconfig>. Если этого не сделать, то ваши изменения будут
проигнорированы.
Набор шрифтов по умолчанию, поставляемый с X11, не очень желателен, если включается
антиалиасинг. Гораздо лучший набор шрифтов, используемых по умолчанию, можно найти в
порте x11-fonts/bitstream-vera. Этот порт установит файл /usr/X11R6/etc/fonts/local.conf, если такого ещё не существует.
Если файл существует, то порт создаст файл /usr/X11R6/etc/fonts/local.conf-vera. Перенесите содержимое этого
файла в /usr/X11R6/etc/fonts/local.conf, и шрифты Bitstream
автоматически заменят используемые по умолчанию в X11 шрифты Serif, Sans Serif и
Monospaced.
Наконец, пользователи могут добавлять собственные наборы посредством персональных
файлов .fonts.conf. Для этого каждый пользователь должен просто
создать файл ~/.fonts.conf. Этот файл также должен быть в
формате XML.
И последнее замечание: при использовании дисплея LCD может понадобиться включение
разбиения точек. При этом компоненты красного, зелёного и голубого цветов (разделяемые по
горизонтали), рассматриваются как отдельные точки для улучшения разрешения экрана по
горизонтали; результат может оказаться потрясающим. Для включения этого механизма
добавьте такую строчку где-нибудь в файл local.conf:
<match target="font">
<test qual="all" name="rgba">
<const>unknown</const>
</test>
<edit name="rgba" mode="assign">
<const>rgb</const>
</edit>
</match>
Замечание: В зависимости от типа дисплея, rgb может
потребоваться заменить на bgr, vrgb
или vbgr: пробуйте и смотрите, что работает лучше.
Антиалиасинг должен быть включен при следующем запуске X-сервера. Однако программы
должны знать, как использовать его преимущества. В настоящее время инструментальный пакет
Qt умеет ими пользоваться, так что вся оболочка KDE может
использовать шрифты с антиалиасингом (обратитесь к Разд. 5.7.3.2 о KDE для выяснения всех подробностей). GTK+ и GNOME также можно заставить использовать антиалиасинг посредством
капплета ``Font'' (обратитесь к Разд.
5.7.1.3 для выяснения всех подробностей). По умолчанию Mozilla версий 1.2 и выше будет автоматически использовать
антиалиасинг. Для отмены этого перестройте Mozilla с флагом
-DWITHOUT_XFT.