Серверы шрифтов
Существует несколько различных версий серверов шрифтов, которые нам подойдут: xfstt, xfsft, а также подправленная Redhat версия xfs, основанная на xfsft. Несмотря на похожесть имен, это абсолютно различные программы. Скорее всего, ваш дистрибутив включает в себя один из этих пакетов, и, возможно, часть из них вы уже установили. Раньше, серверы шрифтов использовать для передачи шрифтов по сети. В этом случае шрифты могли находиться на одной машине, и клиенты могли обращаться к ним по мере необходимости. Однако, в настоящее время разработчики встроили в них возможность вывода шрифтов (Эта возможность уже встроена в XFree86 4.x, поэтому вам не понадобится отдельный сервер шрифтов, если вам нужна лишь поддержка TrueType)
Один из таких серверов шрифтов - xfstt. xfstt был создан специально для работы с шрифтами TrueType. Установка xfstt очень просто установить. Сначала, загрузите его из сети, или проверьте CD с вашим дистрибутивом. Самую свежую версию можно найти по адресу http://metalab.unc.edu/pub/Linux/X11/fonts/ После того, как вы получите архив, разархивируйте его:
Потом соберите и установите его. Прочтите файл INSTALL, в нем есть краткие инструкции, но там все достаточно просто. Все, что вам надо сделать, это запустить команды:
Запустите xfstt, набрав
xfstt должен быть запущен до запуска X-сервера. После того, как это все нормально заработает, вы можете добавить эти строки в файл /etc/rc.d/rc.local, или любой другой подходящий для этого инициализационный скрип. Затем наберите:
или добавьте:
в ваш файл XF86Config для того, чтобы сообщить X о новом шрифтовом сервисе. Запускайте команду xfstt --sync каждый раз при изменении переменной FontPath или содержимого каталога шрифтов. Изменение размера шрифта, устанавливаемого по умолчанию Если ваши шрифты TrueType будут слишком мелки, то вам, наверняка, помогут следующие команды. Добавьте опцию -dpi к командной строке вашего Х-сервера (см. раздел 3, чтобы узнать как это сделать.) Используйте ключ --res для того, чтобы указать xfstt увеличить разрешение экрана по умолчанию. Используйте следующую командную строку:
В комплект дистрибутива RedHat (начиная с версии 6.0), а также производных ему (Mandrake, и т.п.) входит специальная измененная версия пакета xfs - сервера шрифтов XFree86, а также подправленные версии X-серверов. Этот исправленный xfs включает в себя патч xfsft, который, в свою очередь, основан на библиотеке FreeType Font. Этот xfs делает практически то же самое, что и xfstt. xfs обрабатывает шрифты Truetype и Type 1, а также обычные шрифты X Window. Если ваш дистрибутив основан на RedHat, то у вас уже должен быть установлен xfs. Если нет, то он находится в пакете XFree86-xfs*rpm. Для того, чтобы убедиться в том, что он работает в качестве стандартного сервиса, используйте ntsysv или:
Теперь xfs будет запускаться при каждой загрузке системы. Установка переменной FontPath для xfs Стандартная установка xfs в RedHat работает со шрифтами через Доменные Сокеты Unix (Unix Domain Socket). Мы должны указать X-серверу, где искать xfs, а, соответственно, и шрифты. FontPath в файле /etc/X11/XF86Config должен содержать строку:
Так, по крайней мере, сделано в стандартной установке. Здесь приводится ссылка на сокет, на котором находится xfs. Вы можете также включить сюда ссылки на другие каталоги, но их будет обрабатывать X-сервер, а не xfs. В стандартной установке RedHat 6.x это делается по умолчанию, но, если вы обновляете старую версию, то вам придется указать эту строку вручную! Переменная FontPath, которую использует xfs, находится в отдельном файле /etc/X11/fs/config. В этом файле находится список каталогов со шрифтами. Он не имеет никакого отношения к FontPath в XF86Config. Вы можете либо добавить каталоги вручную, либо использовать для этого команду chkfontpath:
Переменная FontPath должна быть задана до запуска chkfontpath. Соответствующая секция файла /etc/X11/fs/config должна выглядеть примерно так:
Подготовка шрифтов Нам надо сделать кое-что еще перед тем, как использовать шрифты TrueType. Для использования xfs должны быть выполнены некоторые правила. Во-первых, имена файлов шрифтов должны быть написаны маленькими буквами. Во-вторых, для работы надо создать пару файлов. Используйте команду su для того, чтобы стать пользователем root, и перейдите в каталог со шрифтами TrueType:
Если у вас там есть шрифты с большими буквами в именах, то вам надо использовать следующий скрипт для того, чтобы преобразовать все имена в нижний регистр:
Обратите внимание на символы -- очень важны обратные апострофы! Уберите из имен файлов все пробелы. После этого создайте файлы fonts.dir и fonts.scale. Это можно сделать при помощи следующих команд:
Теперь у вас в каталоге с TrueType-шрифтами должны появиться файлы fonts.dir и fonts.scale. Команда ttmkfdir входит в состав RPM Freetype, и ее надо запускать до запуска mkfontdir. Эти команды не всегда выдают сообщения об ошибках, поэтому надо убедиться в том, что они создали не пустые файлы:
Если у вас возникли проблемы, то используйте опцию -m команды ttmkfdir. В результате из файлов шрифтов будут отброшены все плохие символы. Задайте число 50 или 100 (ttmkfdir -m 50). Полученные файлы являются текстовыми, и вы можете на них взглянуть:
После этого обновитье переменные FontPath вашего xfs (это может быть не обязательно в случае XFree86 4.x) и X-сервера:
Запускайте первую и последнюю команды каждый раз при добавлении или удалении шрифтов. Команда xset +fp необходима только в тех случаях, когда вы добавляете новый каталог шрифтов к существующим. Теперь все должно работать. Проверьте доступность шрифтов командой:
или проверьте их при помощи xfontsel, или gfontsel. Если их видит xlsfonts, то они должны быть доступны X и наоборот. Если их нет, то попоробуйте перезапустить X клавишами Ctrl-Alt-BS. Xfsft xfsft - это решение для работы с TrueType, предложенное Juliusz Chroboczek. xfsft основан на библиотеке работы со шрифтами FreeType, которая разработана Mark Leisher. Также существует патч для xfs XFree86, и связанная с ним библиотека -- xfs + ft. xfs, входящий в состав Redhat является на самом деле xfsft с небольшими изменениями. Более того, XFree86 версий 4.x включает в себя модуль работы со шрифтами freetype, который также сделан Juliusz Chroboczek. Сборка xfsft требует наличия части исходных текстов XFree86 (кроме самих исходных текстов xfsft), так что это не очень быстрое занятие. Инструкции по сборке и настройке xfsft находятся в самом файле исходных текстов, поэтому я не буду вдаваться в подробности. Там все достаточно просто. На домашней странице xfsft также есть ссылки на уже собранные программы (см. выше). Заметьте, что xfsft требует наличия файлов fonts.scale и fonts.dir. Файл fonts.scale можно создать вручную (уф!), или при помощи утилиты ttmkfdir. Она не входит в состав xfsft, но вы найдете ее здесь или, возможно, на других известных Linux-сайтах. Она также входит в состав RPM Freetype в RedHat. Вам необходимо настроить файл конфигурации. Ниже приведен пример:
После этого вы можете запустить:
Затем вы можете добавить xfsft к переменной FontPath вашего X-сервера:
Если все пойдет хорошо, то добавьте эту строку к переменной FontPath вашего файла XF86Config.
|