Опубликован: 24.07.2006 | Доступ: свободный | Студентов: 8871 / 1200 | Оценка: 3.95 / 3.75 | Длительность: 41:47:00
ISBN: 978-5-94157-183-3
Лекция 12:

Русификация и шрифты

Подключение новых шрифтов

Источники шрифтов

Итак, вы удалили ненужные вам шрифты. Теперь предположим, что вы хотите добавить в набор шрифтов вашей системы какие-то новые шрифты (скорее всего кириллические). Вначале возникает вопрос, где их взять.

Очень часто большие коллекции шрифтов поставляются вместе с некоторыми графическими, издательскими или офисными программами. Примером может служить Microsoft Office или Corel Draw, в состав поставки которого входит громадный набор шрифтов. Если пакет русифицирован, то в этом наборе шрифтов найдутся и кириллические шрифты.

В Internet тоже существует громадный выбор бесплатных или условно-бесплатных шрифтов, однако не многие из них являются кириллическими. Адреса наиболее крупных и полезных сайтов с кириллическими шрифтами перечислены ниже.

  • Паратайп (http://www.paratype.com/) - Сайт отечественной компании, занимающейся созданием кириллических шрифтов. На данном сайте можно заказать как шрифты, так и диспетчеры шрифтов и редакторы шрифтов.
  • Веди (http://www.vedi.d-s.ru/obzory/f_art/fart1.htm) - Сайт независимого центра по разработке и распространению кириллических шрифтов.
  • sunsite.unc.edu (ftp://sunsite.unc.edu/pub/Linux/X11/fonts/) - Здесь есть несколько пакетов кириллических шрифтов.
  • Freshmeat (http://freshmeat.net/) - Задайте поиск по слову "font" и вы найдете несколько пакетов кириллических шрифтов.
  • www.funet.fi (http://www.funet.fi/pub/culture/russian/comp/fonts/) - Архив, предоставляющий довольно неплохой выбор кириллических шрифтов.
  • КиАрхив (http://ftp.kiae.su/pub/linux/) - На КиАрхив тоже проще всего воспользоваться предоставляемой там возможностью поиска. Там имеется, в частности, классический набор шрифтов от Cronyx.
  • На странице Д.Болховитянова CYR-RFX (ftp://ftp.inp.nsk.su/pub/BINP/X11/fonts/cyr-rfx/doc/README.ru.html) вы найдете разработанные им шрифты.

В этот список включены далеко не все сайты, на которых имеются кириллические шрифты.

Кроме того, существует много сайтов со шрифтами для английского и других языков. Конечно, коллекции англоязычных шрифтов гораздо богаче, чем для русского языка. Если вы хотите отыскать какой-то конкретный шрифт для латиницы или просто пополнить свою коллекцию таких шрифтов, начните поиск с одного из следующих сайтов:

http://www.007fonts.com/,

http://www.freewarefonts.com/,

http://www.1001freefonts.com/,

http://www.fontfreak.com/,

http://www.freewareconnection.com/fonts.html.

После того, как вы скачали пакет шрифтов, можно приступить к его инсталляции. Процедура инсталляции несколько отличается для шрифтов Type 1 и True Type, поэтому рассмотрим эти два случая отдельно.

Инсталляция растровых шрифтов и шрифтов Type1

Будем предполагать, что вы можете получить права суперпользователя. В таком случае выполните команду su и проделайте следующее.

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

Перейдите в новый каталог (если не сделали этого ранее). Если производится инсталляция растровых шрифтов (когда в новом каталоге вы видите файлы с расширением pcf ), то выполните в этом каталоге команду

[root]# mkfontdir

которая создает в каталоге со шрифтами файл fonts.dir.

Если производится инсталляция шрифтов Type1, то чтобы сделать эти шрифты доступными для X-Window, надо воспользоваться утилитой type1inst (ftp://ftp.metalab.unc.edu/pub/Linux/X11/xutils/), которая создаст файлы fonts.dir и fonts.scale. После установки утилиты просто перейдите в каталог с новыми шрифтами и запустите type1inst:

[root]# cd directory
[root]# type1inst

Далее необходимо добавить имя нового каталога со шрифтами к перечню каталогов шрифтов. Если пакет xfs у вас уже запущен, вы можете сделать это путем редактирования конфигурационного файла /etc/X11/fs/config.

Теперь надо заставить шрифт-сервер перечитать перечень каталогов, что можно сделать командой:

[root]# /etc/rc.d/init.d/xfs restart

Ваши новые шрифты должны быть теперь доступны для X.

Если вы не используете шрифт-сервер, то вам необходимо добавить имя каталога, содержащего файлы Ваших новых шрифтов, к перечню каталогов шрифтов X-сервера в файле /etc/X11/XF86Config. Это можно сделать в каком-либо текстовом редакторе, а можно с помощью команды

[root]# xset fp+ /usr/share/fonts/new

(имя каталога будет добавлено в конец списка) или

[root]# xset +fp /usr/share/fonts/new

(имя каталога будет добавлено в начало списка). После этого надо дать команду

[root]# xset fp rehash

чтобы X-сервер нашел новые шрифты.

Инсталляция шрифтов TrueType

Мы подробно рассмотрим случай, когда используется дистрибутив, основанный на Red Hat, и фонт-сервер xfs.

Создайте новый каталог и распакуйте в него полученный пакет шрифтов. Для примера будем предполагать, что новые шрифты оказались в каталоге /usr/share/fonts/ttf.

Первым делом надо проверить, что в именах файлов шрифтов не встречаются заглавные буквы и пробелы (это требование xfs ). Так что получите права суперпользователя, перейдите в каталог с вновь установленными шрифтами:

[root]# cd /usr/share/fonts/ttf

и, если в именах файлов встречаются заглавные буквы, преобразуйте все имена в нижний регистр. В http://pegasus.rutgers.edu/~elflord/font_howto приводится небольшой скрипт для автоматического преобразования имен файлов в нижний регистр, однако у меня этот скрипт отказался работать. Но в любом случае преобразовать имена и удалить пробелы из имен файлов можно и вручную.

Далее необходимо создать в каталоге со шрифтами True Type файлы fonts.scale и fonts.dir. Это, конечно, тоже можно сделать вручную, если вы внимательно прочитали весь предыдущий материал, но я, например, не хотел бы этим заниматься. Тем более, что существует утилита ttmkfdir, которую можно найти на многих сайтах с программным обеспечением для Linux. В Redhat эта утилита включена в состав rpm -пакета Freetype. Выполните следующие команды:

[root]# /usr/sbin/ttmkfdir -o fonts.scale
[root]# mkfontdir

После этого в каталоге с новыми шрифтами True Type должны появится файлы fonts.dir и fonts.scale.

К сожалению, команды ttmkfdir и mkfontdir не всегда сообщают об ошибках, поэтому после их запуска необходимо убедиться, что нужные файлы созданы, не пусты и содержат корректно сформированные (т. е. соответствующие XLFD, смотри выше) наименования шрифтов. Как пишут авторы [http://pegasus.rutgers.edu/~elflord/font_howto, http://www.rodsbooks.com/wpfonts/], неприятности могут возникнуть потому, что иногда файлы шрифтов могут не в полной мере соответствовать формату True Type. Если такое имеет место, то описание этого шрифта, выдаваемое по команде ttmkfdir, будет существенно отличаться от формата описаний шрифтов, определяемого стандартом XLFD. Возможно, содержащееся в файле описание шрифта не корректно. Файлы шрифтов, вызывающие такой эффект, рекомендуется просто удалить. Поэтому до создания файла fonts.scale надо запустить программу ttmkfdir без параметров. В этом случае вывод идет на экран. Длина выдаваемых строк может отличаться, но их структура должна быть одинаковой и соответствовать стандарту XLFD. Если же какой-то из файлов со шрифтами вызывает появление в выводе чего-то другого, то такой файл лучше удалить. Только после этого можно выполнять команду

[root]# ttmkfdir -o fonts.scale

Еще одна причина возникновения проблем состоит в том, что ttmkfdir почему-то сортирует имена шрифтов в файле fonts.scale в обратном порядке. Этот факт не вызывает затруднений, если вы используете команду ttmkfdir в указанном выше формате. Но если вы попытаетесь подключить декоративные шрифты, которые часто содержат изображения не для всех возможных символов, то просто дать команду

[root]# ttmkfdir -o fonts.scale

уже недостаточно. Дело в том, что по умолчанию ttmkfdir допускает отсутствие в шрифте не более 5 символов. Но имеется специальная опция ( -m nnn, где nnn - число), которая позволяет увеличить допустимое число отсутствующих изображений. Если запустить ttmkfdir в следующем виде:

[root]# ttmkfdir -m 100 -o fonts.scale

то созданный в том же каталоге и при тех же файлах шрифтов файл fonts.scale получится гораздо большего объема, т. е. будет содержать больше наименований шрифтов. При этом, как раз из-за обратного порядка перечисления имен, файлы с неполным набором символов окажутся в начале файла fonts.scale. В силу этого приложения могут быть "введены в заблуждение" и "схватить" первый попавшийся (в данном случае - неполный) шрифт. Тогда вместо отсутствующих символов вы увидите просто пробелы. Впрочем, с этой проблемой нетрудно справиться. Просто после создания файла fonts.scale надо изменить порядок строк в нем, для чего после выполнения команды

[root]# ttmkfdir -m 100 -o fonts.scale

надо сделать следующее:

  1. Выполнить команду [ root]# tac fonts.scale > fonts.dir
  2. Перенести строку с числом шрифтов из конца полученного таким образом файла fonts.dir в его начало;
  3. Убедиться, что файл fonts.dir заканчивается символом конца строки.

Теперь мы имеем корректно сформированный файл fonts.dir! Но список в файле fonts.scale все еще имеет обратный порядок. Однако, поскольку эти два файла (по крайней мере в данном случае) должны быть идентичны, то остается только выполнить команду

[root]# cat fonts.dir > fonts.scale

или

[root]# cp fonts.dir fonts.scale

Следующий шаг, вообще говоря, не является обязательным, но позволяет в некоторых случаях повысить читаемость шрифтов на экране. Этот шаг заключается в создании файла fonts.alias в каталоге с TT-шрифтами (или в корректировке существующего файла). О том, как это можно сделать, говорилось выше. В том же разделе упоминался скрипт, который позволяет (по словам автора интернет-страницы http://home.c2i.net/dark/linux.html#ttf легко создать файл fonts.alias в каталоге со шрифтами True Type. Полученный с помощью скрипта файл fonts.alias может оказаться очень большим, особенно если создавали файл fonts.dir (который используется скриптом как основа для создания fonts.alias ) с помощью команды ttmkfdir с опцией "-m 100". Да и без этого в нем окажется масса имен шрифтов, которые вы никогда не будете использовать. Поскольку в типичном случае вполне достаточно только кириллических шрифтов, можно попробовать удалить из fonts.alias все неиспользуемые шрифты с помощью следующей последовательности команд (оставляем только кириллические шрифты):

[root]# grep 'iso8859-5"' fonts.alias > newfonts.alias
[root]# grep 'koi8-r"' fonts.alias >> newfonts.alias
[root]# cat newfonts.alias > fonts.alias

Возможно, этот же прием стоит применить к файлам fonts.dir и fonts.scale, только предварительно продумав все последствия. Если вы войдете в азарт и захотите провести такие же корректировки не только в каталогах со шрифтами True Type, но в других каталогах со шрифтами, то, по крайней мере, не забывайте, что нельзя просто удалить шрифты, которые имеют в качестве второго имени (синонима) названия cursor, fixed и variable.

Теперь вы можете добавить новый каталог к перечню каталогов шрифтов xfs. Пользователи дистрибутивов, основанных на Redhat, могут сделать это с помощью утилиты chkfontpath (она тоже входит в пакет Freetype):

[root]# /usr/sbin/chkfontpath --add /usr/share/fonts/ttf

Если такой утилиты нет, это можно сделать редактированием конфигурационного файла фонт-сервера xfs, а именно, файла /etc/X11/fs/config. (Помните, что имена каталогов в перечне НЕ ДОЛЖНЫ иметь слэша (/) в конце!)

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

[root]# /etc/rc.d/init.d/xfs restart

После того, как вы перезапустили xfs, перезапустите также X-сессию.

На этом все! Вы можете проверить, подключились ли новые шрифты с помощью команды xlsfonts. Например, если среди устанавливаемых шрифтов должны были быть шрифты arial, можно выполнить команду:

[root]# xlsfonts | grep arial

(можно также воспользоваться командой xfontsel ). Если новые шрифты видны через xlsfonts, тогда они доступны и для X Window, и наоборот.

Теперь, когда шрифты True Type установлены, вы можете попробовать, как они работают, например, в Netscape.

  1. Запустите Netscape.
  2. Откройте окно "Preferences/Appearence/Fonts" и раскройте выпадающий список "Variable Width Fonts". Там теперь должны появиться вновь установленные шрифты (я, например, увидел "Verdana (Microsoft)", именно тот единственный ttf-шрифт, который устанавливал). Выберите один из них.
  3. Разрешите масштабирование, нажав кнопку "Allow Scaling" рядом со списком "Variable Width Font".
  4. Установите опцию "Use my default fonts".
  5. Затем выберите размер 12 в выпадающем списке справа.
  6. Щелкните по кнопке OK.

Теперь текст в окне Netscape должен отображаться выбранным Вами шрифтом.

Владислав Гермак
Владислав Гермак

Приглашения оболочки

Одна из очень важных переменных имеет имя PS1. Эта переменная задает вид приглашения, которое bash выводит, когда ожидает ввода очередной команды пользователем. По умолчанию этой переменной присвоено значение "\s-\v\$ ".

"\s-\v\$ ". -значиние /v замените /u