фонт. В этом плане гораздо удобнее воспользоваться программой xfont , которая работает в графическом режиме и выводит в своем окошке изображения некоторых символов данного фонта, позволяющих представить себе, как будет выглядеть выводимый текст.
Эти две команды могут оказаться полезными, как для определения того, какие фонты уже имеются в системе, так и для проверки того, что новые фонты успешно установились. Я не буду здесь подробно описывать, как пользоваться этими командами. Восп
Попробуйте выбирать разные значения этих параметров в программе xfontsel и Вы получите неплохое представление о том, какие фонты установлены в Вашей системе. Для русскоязычных пользователей просмотр стоит начать с двух последних полей. Задайте для поля rgstry значение koi8, а для поля encdng - значение r, и Вы увидите сколько русскоязычных фонтов в кодировке koi8-r у Вас установлено. Кириллические фонты задаются также значениями iso8859-5 в двух последних полях.
Кроме xlsfonts и xfontsel cуществуют еще несколько программ для просмотра установленных в системе фонтов.
xlsfonts > fontlistа после этого пересчитаете число файлов в каталогах, перечисленных в FontPath, то скорее всего обнаружите, что в fontlist перечислено гораздо больше фонтов, чем имеется файлов с фонтами. Чтобы понять, почему это так, надо разобраться с файлами fonts.dir, fonts.alias и fonts.scale. Если Вы заглянете в любой каталог с фонтами, то найдете там по крайней мере файл fonts.dir, а может быть и два других: fonts.alias и fonts.scale. Для чего же они нужны?
Структура файла fonts.dir очень проста и из нее становится ясно, зачем этот файл нужен. Каждая строка файла fonts.dir (кроме первой) содержит имя одного из файлов с фонтом, содержащегося в том каталоге, где расположен данный файл fonts.dir, вслед за которым (после пробела или символа табуляции) указывается имя содержащегося в этом файле фонта. Пример:
koi12x24.pcf.gz -cronyx-fixed-medium-r-normal--24-170-100-100-c-120-koi8-uПервая строка файла fonts.dir содержит число фонтов, перечисленных в этом файле (и, соответственно, имеющихся в данном каталоге с фонтами).
Файл fonts.dir совершенно необходим для того, чтобы X-сервер мог работать с фонтами. По-видимому (я могу судить об этом только на основании собственного опыта, поскольку в литературе такого описания не встречал), при запуске X-сервера или фонт-сервера на основе файлов fonts.dir из каталогов фонтов в оперативной памяти создается таблица доступных для системы фонтов.
Файл fonts.scale, по-видимому, задает список масштабируемых фонтов и необходим некоторым приложениям для корректной работы с такими фонтами. В большинстве случаев это либо точная копия файла fonts.dir, либо просто ссылка на fonts.dir. Естественно, что в каталогах с растровыми фонтами мы такого файла не найдем.
Файл fonts.alias - это еще один конфигурационный файл, оказывающий
влияние на работу с фонтами. Уже по названию ("alias" - прозвище, кличка)
можно догадаться о его назначении. Строки этого файла имеют следующий вид:
синоним XLFD_имя_реального_фонта
При этом каждая строка должна оканчиваться только символом конца строки
(must end with one linefeed) и владельцем файла должен быть суперпользователь.
Вот для примера первые строки из файла /usr/X11R6/lib/X11/fonts/misc/fonts.alias в системе Redhat :
fixed -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1 variable -*-helvetica-bold-r-normal-*-*-120-*-*-*-*-iso8859-1Слово fixed здесь является синонимом или ссылкой ('alias'). Каждый раз, когда запрашивается фонт 'fixed', будет фактически происходить обращение к фонту, указанному во второй колонке. Шрифт кажется маловат? Просто поменяйте имя, на которое дана ссылка этим определением.
Тот же самый принцип применим ко всем фонтам, включая TrueType. Более того, если у Вас не установлены фонты TrueType, Вы можете использовать этот же трюк для того, чтобы использовать какой-то из фонтов Type 1 вместо запрашиваемых приложением фонтов TrueType.
Маленькое ПРЕДОСТЕРЕЖЕНИЕ для тех, кто имеет привычку "сильно быстро делать": некоторые синонимы должны быть известны системем в любой момент времени ! В первую очередь это относится к синонимам "cursor", "fixed" и "variable" в каталогах /misc. Если таких строк в misc/fonts.alias нет или они указывают на несуществующий фонт, то графическая оболочка просто откажется запускаться.
Файл fonts.alias важен для некоторых приложений, которые не могут нормально обрабатывать данные, предоставляемые файлом fonts.scale. Самый характерный пример - Netscape. Без fonts.alias Вы можете столкнуться с тем, что Netscape будет отображать только фонты с размером символов от 0 до 12 точек. Создав корректный файл fonts.alias в каталоге с фонтами truetype, Вы получите возможность выбирать из большего числа вариантов в "Preferences/fonts" в Netscape. Вы можете также обнаружить, что если Вы зададите какой-то другой размер для масштабируемого фонта в пункте "Preferences" настроек, Netscape не запомнит эту установку. Наличие файла fonts.scale позволяет устранить и этот недостаток. Приведем небольшой пример. Предположим, что в файле fonts.scale имеются строки:
arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-ascii-0
arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-fcd8859-15
arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-iso8859-15
arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-iso8859-1
Это масштабируемые фонты, так что в их именах не указаны размеры. Поэтому в файле fonts.alias должны, соответственно, присутствовать строки:
-monotype-Arial-medium-r-normal--6-60-0-0-p-0-iso8859-1 -monotype-Arial-medium-r-normal--9-90-75-75-p-0-iso8859-1
-monotype-Arial-medium-r-normal--7-70-0-0-p-0-iso8859-1 -monotype-Arial-medium-r-normal--9-90-75-75-p-0-iso8859-1
-monotype-Arial-medium-r-normal--8-80-0-0-p-0-iso8859-1 -monotype-Arial-medium-r-normal--10-100-75-75-p-0-iso8859-1
-monotype-Arial-medium-r-normal--9-90-0-0-p-0-iso8859-1 -monotype-Arial-medium-r-normal--11-110-75-75-p-0-iso8859-1
-monotype-Arial-medium-r-normal--10-100-0-0-p-0-iso8859-1 -monotype-Arial-medium-r-normal--12-120-75-75-p-0-iso8859-1
-monotype-Arial-medium-r-normal--11-110-0-0-p-0-iso8859-1 -monotype-Arial-medium-r-normal--12-120-75-75-p-0-iso8859-1
-monotype-Arial-medium-r-normal--12-120-0-0-p-0-iso8859-1 -monotype-Arial-medium-r-normal--12-120-75-75-p-0-iso8859-1
-monotype-Arial-medium-r-normal--13-130-0-0-p-0-iso8859-1 -monotype-Arial-medium-r-normal--13-130-75-75-p-0-iso8859-1
-monotype-Arial-medium-r-normal--14-140-0-0-p-0-iso8859-1 -monotype-Arial-medium-r-normal--14-140-75-75-p-0-iso8859-1
-monotype-Arial-medium-r-normal--15-150-0-0-p-0-iso8859-1 -monotype-Arial-medium-r-normal--15-150-75-75-p-0-iso8859-1
-monotype-Arial-medium-r-normal--18-180-0-0-p-0-iso8859-1 -monotype-Arial-medium-r-normal--18-180-75-75-p-0-iso8859-1
-monotype-Arial-medium-r-normal--24-240-0-0-p-0-iso8859-1 -monotype-Arial-medium-r-normal--24-240-75-75-p-0-iso8859-1
После этого Netscape будет корректно масштабировать фонт Arial.
Обратите внимание на различие в размерах шрифта в правой и левой колонках. Например, в первой строке слева указан размер в 6 точек, а справа - 9 точек. С помощью этого приема удается преодолеть "склонность" Netscape к использованию слишком маленьких шрифтов. Просто подберите справа цифры в соответствии с Вашими вкусами.
Создавать файлы fonts.dir, fonts.scale и fonts.alias вручную - занятие не из простых. Поэтому разработаны специальные программки, которые запускаются в каталоге с фонтами и создают эти файлы. Файл fonts.dir в каталоге с растровыми фонтами можно создать с помощью команды mkfontdir.
Для создания файлов fonts.dir и fonts.scale в каталогах с фонтами Type1 надо воспользоваться утилитой type1inst. Это скрипт на языке perl, который автоматически создает файлы fonts.dir и fonts.scale, которые необходимы для того, чтобы X-ы могли использовать фонты. Рекомендации по установке и настройке этого скрипта Вы найдете в файле README, который поставляется вместе с пакетом.
Для фонтов True Type необходима своя утилита ttmkfdir, которую можно найти на многих сайтах с программным обеспечением для Linux. В Redhat эта утилита включена в состав rpm-пакета Freetype.
На странице Some Linux for Beginners Вы можете найти скрипт на языке python, с помощью которого можно создать файл fonts.alias.
Вначале давайте удалим фонты с иероглифами (если Вы не возражаете!). При работе с программой xfontsel я обнаружил, что иероглифы появляются на экране программы xfontsel тогда, когда в поле registry стоит комбинация jisx с какими-то еще цифрами. Перейдя в каталог /usr/X11R6/lib/X11/fonts/misc я просмотрел файл fonts.dir, который устанавливает связь между именами фонтов и именами файлов, в которых хранятся соответствующие фонты. С помощью этого файла нужно найти имена файлов с иероглифами и удалить их. После этого надо запустить команду mkfontdir, которая подкорректирует файл fonts.dir. Можно, конечно, и просто вручную удалить из fonts.dir строки, соответствующие удаленным файлам. Только не забудьте, что первая строка файла fonts.dir должна указывать число разных вариантов фонта (не файлов в каталоге, а практически умньшенное на единицу число строк в файле fonts.dir).
Кроме фонтов с иероглифами, которые являются просто самым характерным примером, имеются еще множество фонтов, которые Вы, скорее всего, никогда не будете использовать. Но тут я не буду давать советов (я и о фонтах с иероглифами рассказал только для примера), экспериментируйте на свой страх и риск.
Итак, Вы удалили совсем уж ненужные Вам фонты. Теперь предположим, что Вы хотите добавить в имеющийся в Вашей системе набор фонтов какие-то новые фонты. Вначале возникает вопрос, где их взять.
Очень часто большие коллекции фонтов поставляются вместе с некоторыми графическими, издательскими или офисными программами. Примером может служить Microsoft Office или Corel Draw, в состав поставки которого входит громадный набор фонтов. Если пакет русифицирован, то в этом наборе фонтов найдутся и кириллические фонты.
В Internet тоже существует громадный выбор бесплатных или условно-бесплатных фонтов, однако не многие из них являются кириллическими. Адреса наиболее крупных и полезных сайтов с кириллическими фонтами. перечислены в приведенной ниже таблице.
Адрес | Краткое описание |
ParaType | Сайт отечественной компании, занимающейся созданием кириллических шрифтов. На данном сайте можно заказать как фонты, так и диспетчеры шрифтов и редакторы фонтов. |
Веди | Сайт независимого центра по разработке и распространению кириллических шрифтов. |
sunsite.unc.edu | Здесь есть несколько пакетов кириллических фонтов. |
Freshmeat | Задайте поиск по слову "font" и Вы найдете несколько пакетов кириллических фонтов. |
www.funet.fi | Архив, предоставляющий довольно неплохой выбор кириллических фонтов. |
Киархив | На КиАрхив тоже проще всего воспользоваться предоставляемой там возможностью поиска. Там имеется, в частности, классический набор фонтов от Cronyx. |
CYR-RFX | На странице Д.Болховитянова Вы найдете разработанные им фонты. |
В эту таблицу включены далеко не все сайты, на которых имеются кириллические фонты. Кроме того существует много сайтов с фонтами для английского и других языков, вроде китайского. Конечно, коллекции англоязычных фонтов гораздо более богатые, чем коллекции фонтов для русского языка. Если Вы хотите отыскать какой-то конкретный фонт для латиницы или просто пополнить свою коллекцию таких фонтов, начните поиск с одного из следующих сайтов: http://www.007fonts.com, http://www.freewarefonts.com/, http://www.1001freefonts.com/, http://www.fontfreak.com, Freeware Connection.
После того, как Вы скачали пакет фонтов, можно приступить к его инсталляции. Процедура инсталляции несколько отличается для фонтов Type 1 и True Type, поэтому рассмотрим эти два случая отдельно.
mkfontdirкоторая создает в каталоге с фонтами файл fonts.dir.
Если производится инсталляция фонтов Type1, то чтобы сделать эти фонты доступными для X, надо воспользоваться утилитой type1inst, которая создаст файлы fonts.dir и fonts.scale. После установки утилиты просто перейдите в каталог с новыми фонтами и запустите type1inst:
cd directory type1inst
Далее необходимо добавить имя нового каталога с фонтами к перечню каталогов фонтов. Если пакет xfs у Вас уже запущен, Вы можете сделать это путем редактирования конфигурационного файла /etc/X11/fs/config.
Теперь надо заставить фонт-сервер перечитать перечень каталогов, что можно сделать командой:
/etc/rc.d/init.d/xfs restartВаши новые фонты должны быть теперь доступны для X.
Если Вы не используете фонт-сервер, то Вам необходимо добавить имя каталога, содержащего файлы Ваших новых фонтов, к перечню каталогов фонтов X-сервера в файле /etc/X11/XF86Config. Это можно сделать в каком-либо текстовом редакторе, а можно с помощью команды
xset fp+ /usr/share/fonts/new(имя каталога будет добавлено в конец списка) или
xset +fp /usr/share/fonts/new(имя каталога будет добавлено в начало списка). После этого надо дать команду
xset fp rehashчтобы X-сервер нашел новые фонты.
# su # cd /usr/share/fonts/ttfи, если в именах файлов встречаются заглавные буквы, преобразуйте все имена в нижний регистр. В [2] приводится небольшой скрипт для автоматического преобразования имен файлов в нижний регистр, однако у меня этот скрипт отказался работать. Но в любом случае преобразовать имена и удалить пробелы из имен файлов можно и вручную.
# /usr/sbin/ttmkfdir -o fonts.scale # mkfontdirПосле этого в каталоге с новыми фонтами TrueType должны появится файлы fonts.dir и fonts.scale.
Еще одна причина возникновения проблем состоит в том, что ttmkfdir почему-то
сортирует имена фонтов в файле fonts.scale в обратном порядке. Этот факт не вызывает
затруднений, если Вы используете команду ttmkfdir
в указанном выше формате.
Но если Вы попытаетесь подключить декоративные фонты, которые часто содержат
изображения не для всех возможных символов, то просто дать команду
ttmkfdir -o fonts.scale
уже недостаточно. Дело в том, что по умолчанию ttmkfdir допускает
отсутствие в фонте не более 5 символов. Но имеется специальная опция (-m nnn, где
nnn - число), которая позволяет увеличить допустимое число отсутствующих изображений.
Если запустить ttmkfdir в следующем виде:
ttmkfdir -m 100 -o fonts.scale ",
то созданный в том же каталоге и при тех же файлах фонтов файл fonts.scale получится
гораздо большего обьема, то есть будет содержать больше наименований фонтов.
При этом, как раз из-за обратного порядка перечисления имен, файлы с неполным набором
символов окажутся в начале файла fonts.scale. В силу этого приложения могут
быть "введены в заблуждение" и "схватить" первый попавшийся (в данном случае - неполный)
фонт. Тогда вместо отутствующих символов Вы увидите просто пробелы.
Впрочем, с этой проблемой нетрудно справиться. Просто после создания
файла fonts.scale надо изменить порядок строк в нем, для чего после
выполнения команды
ttmkfdir -m 100 -o fonts.scale
надо сделать следующее:
- Выполнить команду
tac fonts.scale > fonts.dir
- Перенести строку с числом фонтов из конца полученного таким образом
файла fonts.dir в его начало;
- Убедиться, что файл fonts.dir заканчивается символом конца строки;
- Теперь мы имеем корректно сформированный файл fonts.dir !
Но список в файле fonts.scale все еще имеет обратный порядок. Однако, поскольку эти
два файла (по крайней мере в данном случае) должны быть идентичны, то остается только
выполнить команду
cat fonts.dir > fonts.scale
или
cp fonts.dir fonts.scale
.
Полученный с помощью скрипта файл fonts.alias может оказаться очень
большим, особенно если создавали файл fonts.dir (который используется
скриптом как основа для создания fonts.alias) с помощью команды ttmkfdir с
опцией "-m 100". Да и без этого в нем окажется масса имен фонтов, которые
Вы никогда не будете использовать. Поскольку в типичном случае вполне
достаточно только кириллических фонтов, можно попробовать удалить из
fonts.alias все неиспользуемые фонты с помощью следующей последовательности
команд (оставляем только кириллические фонты):
grep 'iso8859-5"' fonts.alias > newfonts.alias
grep 'koi8-r"' fonts.alias >> newfonts.alias
cat newfonts.alias > fonts.alias
Возможно, этот же прием стоит применить к файлам fonts.dir и fonts.scale, только предварительно продумав все последствия. Если Вы очень разойдетесь и захотите провести такие же корректировки не только в каталогах с фонтами True Type, но в других каталогах с фонтами, то, по крайней мере, не забывайте, что нельзя просто удалить фонты, которые имеют в качестве второго имени (синонима) названия cursor, fixed и variable.
# /etc/rc.d/init.d/xfs restart
xlsfonts | grep arial(можно также воспользоваться командой xfontsel). Если новые фонты видны через xlsfonts, тогда они доступны и для X, и наоборот.
Теперь, когда шрифты True Type установлены, Вы можете попробовать, как
они работают, например, в Netscape.
- Запустите Netscape.
- Откройте окно "preferences/appearence/fonts" и раскройте выпадающий
список "Variable Width Fonts". Там теперь должны появиться вновь установленные
шрифты (я, например, увидел "Verdana (Microsoft)", именно тот единственный
TT-фонт, который устанавливал). Выберите один из них.
Разрешите масштабирование, нажав кнопку "Allow Scaling" рядом со списком
"Variable Width Font".
Установите опцию "Use my default fonts".
Затем выберите размер 12 в выпадающем списке справа.
Щелкните по кнопке OK. Теперь текст в окне Netscape должен отображаться
выбранным Вами шрифтом.
В отличие от других операционных систем (например, Windows и MacOS), Linux, как и другие UNIX-ы не имеет аппаратно-независимой подсистемы печати. Некоторые приложения сами обеспечивают поддержку печати, но большая часть приложений предполагает, что принтер обладает возможностью интерпретировать язык Adobe PostScript. Но PostScript-принтеры довольно редко встречаются в наше время. Для того, чтобы можно было использовать другие типы принтеров, была разработана специальная программа, Ghostscript, которая может интерпретировать код PostScript, преобразовывать контурный шрифт в растровый, формировать соответствующие команды для принтера, обеспечивая тем самым печать на большинстве типов принтеров.
Поскольку все версии PostScript и Ghostscript поддерживают как фонты Type 1 и Type 42, а Ghostscript версии 4 и выше поддерживает и фонты True Type, то больших трудностей с организацией красивой печати под Линукс не возникает. По умолчанию (в Red Hat) фонты для Ghostscript устанавливаются в каталог /usr/share/fonts/defaults/ghostscript/. Поэтому если Вы хотите добавить какие-то фонты для печати, поместите файлы новых фонтов в этот каталог или создайте в нем символические ссылки на новые фонты. Впрочем, можно поместить файлы фонтов и другие каталоги, но тогда нужно будет в файле Fontmap указывать точный путь к фонтам. Далее нужно добавить указание о новых фонтах в файл /usr/share/ghostscript/N.M/Fontmap, который делает фонты доступными для Ghostscript.
Например, для того, чтобы добавить фонт Times New Roman и его варианты, скопируйте файлы times.ttf, timesbd.ttf, timesbi.ttf, и timesi.ttf в каталог /usr/share/fonts/defaults/ghostscript/ и добавьте следующие строки в файл Fontmap:
/Times New Roman (times.ttf) ; /Times New Roman Bold (timesbd.ttf) ; /Times New Roman Bold Italic (timesbi.ttf) ; /Times New Roman Italic (timesi.ttf) ;
Конечно, я рассказал далеко не обо всех моментах, связанных с подключением новых и использованием имеющихся фонтов для системы X Window. Например, за рамками статьи остались вопросы настройки фонтов в конкретных приложениях, а также вопросы преобразования фонтов True Type в фонты Type1. Но, во-первых, всего я и сам не знаю, а, во-вторых, объем статьи не позволяет охватить все. Просмотрите те источники, которые приведены в разделе 9.
К сожалению, в Линуксе нет единой системы работы с фонтами. Каждую отдельную программу, каждое приложение надо отдельно настраивать для того, чтобы эта программа могла использовать фонты TrueType, Type 1 или еще какие-то фонты, почему-либо привлекательные для Вас. И в каждой программе это может делаться по своему ! Однако описание настроек каждой программы заняло бы слишком много места, так что это должно быть темой отдельной статьи.
Эти две команды могут оказаться полезными, как для определения того, какие фонты уже имеются в системе, так и для проверки того, что новые фонты успешно установились. Я не буду здесь подробно описывать, как пользоваться этими командами. Воспользуйтесь соответствующими man-страницами или системой info.
На мой взгляд пользователь обычно руководствуется в выборе шрифта только следующими признаками из перечисленных выше: семейство фонтов (fmly), вариант фонта - жирный шрифт или обычный (wght), наклон (slant), ширина шрифта (sWdth), размер шрифта в пикселах (pxlsz), стандарт (rgstry) и язык (encdng).
Попробуйте выбирать разные значения этих параметров в программе xfontsel и Вы получите неплохое представление о том, какие фонты установлены в Вашей системе. Для русскоязычных пользователей просмотр стоит начать с двух последних полей. Задайте для поля rgstry значение koi8, а для поля encdng - значение r, и Вы увидите сколько русскоязычных фонтов в кодировке koi8-r у Вас установлено. Кириллические фонты задаются также значениями iso8859-5 в двух последних полях.
Кроме xlsfonts и xfontsel cуществуют еще несколько программ для просмотра установленных в системе фонтов.
xlsfonts > fontlistа после этого пересчитаете число файлов в каталогах, перечисленных в FontPath, то скорее всего обнаружите, что в fontlist перечислено гораздо больше фонтов, чем имеется файлов с фонтами. Чтобы понять, почему это так, надо разобраться с файлами fonts.dir, fonts.alias и fonts.scale. Если Вы заглянете в любой каталог с фонтами, то найдете там по крайней мере файл fonts.dir, а может быть и два других: fonts.alias и fonts.scale. Для чего же они нужны?
Структура файла fonts.dir очень проста и из нее становится ясно, зачем этот файл нужен. Каждая строка файла fonts.dir (кроме первой) содержит имя одного из файлов с фонтом, содержащегося в том каталоге, где расположен данный файл fonts.dir, вслед за которым (после пробела или символа табуляции) указывается имя содержащегося в этом файле фонта. Пример:
koi12x24.pcf.gz -cronyx-fixed-medium-r-normal--24-170-100-100-c-120-koi8-uПервая строка файла fonts.dir содержит число фонтов, перечисленных в этом файле (и, соответственно, имеющихся в данном каталоге с фонтами).
Файл fonts.dir совершенно необходим для того, чтобы X-сервер мог работать с фонтами. По-видимому (я могу судить об этом только на основании собственного опыта, поскольку в литературе такого описания не встречал), при запуске X-сервера или фонт-сервера на основе файлов fonts.dir из каталогов фонтов в оперативной памяти создается таблица доступных для системы фонтов.
Файл fonts.scale, по-видимому, задает список масштабируемых фонтов и необходим некоторым приложениям для корректной работы с такими фонтами. В большинстве случаев это либо точная копия файла fonts.dir, либо просто ссылка на fonts.dir. Естественно, что в каталогах с растровыми фонтами мы такого файла не найдем.
Файл fonts.alias - это еще один конфигурационный файл, оказывающий
влияние на работу с фонтами. Уже по названию ("alias" - прозвище, кличка)
можно догадаться о его назначении. Строки этого файла имеют следующий вид:
синоним XLFD_имя_реального_фонта
При этом каждая строка должна оканчиваться только символом конца строки
(must end with one linefeed) и владельцем файла должен быть суперпользователь.
Вот для примера первые строки из файла /usr/X11R6/lib/X11/fonts/misc/fonts.alias в системе Redhat :
fixed -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1 variable -*-helvetica-bold-r-normal-*-*-120-*-*-*-*-iso8859-1Слово fixed здесь является синонимом или ссылкой ('alias'). Каждый раз, когда запрашивается фонт 'fixed', будет фактически происходить обращение к фонту, указанному во второй колонке. Шрифт кажется маловат? Просто поменяйте имя, на которое дана ссылка этим определением.
Тот же самый принцип применим ко всем фонтам, включая TrueType. Более того, если у Вас не установлены фонты TrueType, Вы можете использовать этот же трюк для того, чтобы использовать какой-то из фонтов Type 1 вместо запрашиваемых приложением фонтов TrueType.
Маленькое ПРЕДОСТЕРЕЖЕНИЕ для тех, кто имеет привычку "сильно быстро делать": некоторые синонимы должны быть известны системем в любой момент времени ! В первую очередь это относится к синонимам "cursor", "fixed" и "variable" в каталогах /misc. Если таких строк в misc/fonts.alias нет или они указывают на несуществующий фонт, то графическая оболочка просто откажется запускаться.
Файл fonts.alias важен для некоторых приложений, которые не могут нормально обрабатывать данные, предоставляемые файлом fonts.scale. Самый характерный пример - Netscape. Без fonts.alias Вы можете столкнуться с тем, что Netscape будет отображать только фонты с размером символов от 0 до 12 точек. Создав корректный файл fonts.alias в каталоге с фонтами truetype, Вы получите возможность выбирать из большего числа вариантов в "Preferences/fonts" в Netscape. Вы можете также обнаружить, что если Вы зададите какой-то другой размер для масштабируемого фонта в пункте "Preferences" настроек, Netscape не запомнит эту установку. Наличие файла fonts.scale позволяет устранить и этот недостаток. Приведем небольшой пример. Предположим, что в файле fonts.scale имеются строки:
arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-ascii-0
arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-fcd8859-15
arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-iso8859-15
arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-iso8859-1
Это масштабируемые фонты, так что в их именах не указаны размеры. Поэтому в файле fonts.alias должны, соответственно, присутствовать строки:
-monotype-Arial-medium-r-normal--6-60-0-0-p-0-iso8859-1 -monotype-Arial-medium-r-normal--9-90-75-75-p-0-iso8859-1
-monotype-Arial-medium-r-normal--7-70-0-0-p-0-iso8859-1 -monotype-Arial-medium-r-normal--9-90-75-75-p-0-iso8859-1
-monotype-Arial-medium-r-normal--8-80-0-0-p-0-iso8859-1 -monotype-Arial-medium-r-normal--10-100-75-75-p-0-iso8859-1
-monotype-Arial-medium-r-normal--9-90-0-0-p-0-iso8859-1 -monotype-Arial-medium-r-normal--11-110-75-75-p-0-iso8859-1
-monotype-Arial-medium-r-normal--10-100-0-0-p-0-iso8859-1 -monotype-Arial-medium-r-normal--12-120-75-75-p-0-iso8859-1
-monotype-Arial-medium-r-normal--11-110-0-0-p-0-iso8859-1 -monotype-Arial-medium-r-normal--12-120-75-75-p-0-iso8859-1
-monotype-Arial-medium-r-normal--12-120-0-0-p-0-iso8859-1 -monotype-Arial-medium-r-normal--12-120-75-75-p-0-iso8859-1
-monotype-Arial-medium-r-normal--13-130-0-0-p-0-iso8859-1 -monotype-Arial-medium-r-normal--13-130-75-75-p-0-iso8859-1
-monotype-Arial-medium-r-normal--14-140-0-0-p-0-iso8859-1 -monotype-Arial-medium-r-normal--14-140-75-75-p-0-iso8859-1
-monotype-Arial-medium-r-normal--15-150-0-0-p-0-iso8859-1 -monotype-Arial-medium-r-normal--15-150-75-75-p-0-iso8859-1
-monotype-Arial-medium-r-normal--18-180-0-0-p-0-iso8859-1 -monotype-Arial-medium-r-normal--18-180-75-75-p-0-iso8859-1
-monotype-Arial-medium-r-normal--24-240-0-0-p-0-iso8859-1 -monotype-Arial-medium-r-normal--24-240-75-75-p-0-iso8859-1
После этого Netscape будет корректно масштабировать фонт Arial.
Обратите внимание на различие в размерах шрифта в правой и левой колонках. Например, в первой строке слева указан размер в 6 точек, а справа - 9 точек. С помощью этого приема удается преодолеть "склонность" Netscape к использованию слишком маленьких шрифтов. Просто подберите справа цифры в соответствии с Вашими вкусами.
Создавать файлы fonts.dir, fonts.scale и fonts.alias вручную - занятие не из простых. Поэтому разработаны специальные программки, которые запускаются в каталоге с фонтами и создают эти файлы. Файл fonts.dir в каталоге с растровыми фонтами можно создать с помощью команды mkfontdir.
Для создания файлов fonts.dir и fonts.scale в каталогах с фонтами Type1 надо воспользоваться утилитой type1inst. Это скрипт на языке perl, который автоматически создает файлы fonts.dir и fonts.scale, которые необходимы для того, чтобы X-ы могли использовать фонты. Рекомендации по установке и настройке этого скрипта Вы найдете в файле README, который поставляется вместе с пакетом.
Для фонтов True Type необходима своя утилита ttmkfdir, которую можно найти на многих сайтах с программным обеспечением для Linux. В Redhat эта утилита включена в состав rpm-пакета Freetype.
На странице Some Linux for Beginners Вы можете найти скрипт на языке python, с помощью которого можно создать файл fonts.alias.
Вначале давайте удалим фонты с иероглифами (если Вы не возражаете!). При работе с программой xfontsel я обнаружил, что иероглифы появляются на экране программы xfontsel тогда, когда в поле registry стоит комбинация jisx с какими-то еще цифрами. Перейдя в каталог /usr/X11R6/lib/X11/fonts/misc я просмотрел файл fonts.dir, который устанавливает связь между именами фонтов и именами файлов, в которых хранятся соответствующие фонты. С помощью этого файла нужно найти имена файлов с иероглифами и удалить их. После этого надо запустить команду mkfontdir, которая подкорректирует файл fonts.dir. Можно, конечно, и просто вручную удалить из fonts.dir строки, соответствующие удаленным файлам. Только не забудьте, что первая строка файла fonts.dir должна указывать число разных вариантов фонта (не файлов в каталоге, а практически умньшенное на единицу число строк в файле fonts.dir).
Кроме фонтов с иероглифами, которые являются просто самым характерным примером, имеются еще множество фонтов, которые Вы, скорее всего, никогда не будете использовать. Но тут я не буду давать советов (я и о фонтах с иероглифами рассказал только для примера), экспериментируйте на свой страх и риск.
Итак, Вы удалили совсем уж ненужные Вам фонты. Теперь предположим, что Вы хотите добавить в имеющийся в Вашей системе набор фонтов какие-то новые фонты. Вначале возникает вопрос, где их взять.
Очень часто большие коллекции фонтов поставляются вместе с некоторыми графическими, издательскими или офисными программами. Примером может служить Microsoft Office или Corel Draw, в состав поставки которого входит громадный набор фонтов. Если пакет русифицирован, то в этом наборе фонтов найдутся и кириллические фонты.
В Internet тоже существует громадный выбор бесплатных или условно-бесплатных фонтов, однако не многие из них являются кириллическими. Адреса наиболее крупных и полезных сайтов с кириллическими фонтами. перечислены в приведенной ниже таблице.
Адрес | Краткое описание |
ParaType | Сайт отечественной компании, занимающейся созданием кириллических шрифтов. На данном сайте можно заказать как фонты, так и диспетчеры шрифтов и редакторы фонтов. |
Веди | Сайт независимого центра по разработке и распространению кириллических шрифтов. |
sunsite.unc.edu | Здесь есть несколько пакетов кириллических фонтов. |
Freshmeat | Задайте поиск по слову "font" и Вы найдете несколько пакетов кириллических фонтов. |
www.funet.fi | Архив, предоставляющий довольно неплохой выбор кириллических фонтов. |
Киархив | На КиАрхив тоже проще всего воспользоваться предоставляемой там возможностью поиска. Там имеется, в частности, классический набор фонтов от Cronyx. |
CYR-RFX | На странице Д.Болховитянова Вы найдете разработанные им фонты. |
В эту таблицу включены далеко не все сайты, на которых имеются кириллические фонты. Кроме того существует много сайтов с фонтами для английского и других языков, вроде китайского. Конечно, коллекции англоязычных фонтов гораздо более богатые, чем коллекции фонтов для русского языка. Если Вы хотите отыскать какой-то конкретный фонт для латиницы или просто пополнить свою коллекцию таких фонтов, начните поиск с одного из следующих сайтов: http://www.007fonts.com, http://www.freewarefonts.com/, http://www.1001freefonts.com/, http://www.fontfreak.com, Freeware Connection.
После того, как Вы скачали пакет фонтов, можно приступить к его инсталляции. Процедура инсталляции несколько отличается для фонтов Type 1 и True Type, поэтому рассмотрим эти два случая отдельно.
mkfontdirкоторая создает в каталоге с фонтами файл fonts.dir.
Если производится инсталляция фонтов Type1, то чтобы сделать эти фонты доступными для X, надо воспользоваться утилитой type1inst, которая создаст файлы fonts.dir и fonts.scale. После установки утилиты просто перейдите в каталог с новыми фонтами и запустите type1inst:
cd directory type1inst
Далее необходимо добавить имя нового каталога с фонтами к перечню каталогов фонтов. Если пакет xfs у Вас уже запущен, Вы можете сделать это путем редактирования конфигурационного файла /etc/X11/fs/config.
Теперь надо заставить фонт-сервер перечитать перечень каталогов, что можно сделать командой:
/etc/rc.d/init.d/xfs restartВаши новые фонты должны быть теперь доступны для X.
Если Вы не используете фонт-сервер, то Вам необходимо добавить имя каталога, содержащего файлы Ваших новых фонтов, к перечню каталогов фонтов X-сервера в файле /etc/X11/XF86Config. Это можно сделать в каком-либо текстовом редакторе, а можно с помощью команды
xset fp+ /usr/share/fonts/new(имя каталога будет добавлено в конец списка) или
xset +fp /usr/share/fonts/new(имя каталога будет добавлено в начало списка). После этого надо дать команду
xset fp rehashчтобы X-сервер нашел новые фонты.
# su # cd /usr/share/fonts/ttfи, если в именах файлов встречаются заглавные буквы, преобразуйте все имена в нижний регистр. В [2] приводится небольшой скрипт для автоматического преобразования имен файлов в нижний регистр, однако у меня этот скрипт отказался работать. Но в любом случае преобразовать имена и удалить пробелы из имен файлов можно и вручную.
# /usr/sbin/ttmkfdir -o fonts.scale # mkfontdirПосле этого в каталоге с новыми фонтами TrueType должны появится файлы fonts.dir и fonts.scale.
Еще одна причина возникновения проблем состоит в том, что ttmkfdir почему-то
сортирует имена фонтов в файле fonts.scale в обратном порядке. Этот факт не вызывает
затруднений, если Вы используете команду ttmkfdir
в указанном выше формате.
Но если Вы попытаетесь подключить декоративные фонты, которые часто содержат
изображения не для всех возможных символов, то просто дать команду
ttmkfdir -o fonts.scale
уже недостаточно. Дело в том, что по умолчанию ttmkfdir допускает
отсутствие в фонте не более 5 символов. Но имеется специальная опция (-m nnn, где
nnn - число), которая позволяет увеличить допустимое число отсутствующих изображений.
Если запустить ttmkfdir в следующем виде:
ttmkfdir -m 100 -o fonts.scale ",
то созданный в том же каталоге и при тех же файлах фонтов файл fonts.scale получится
гораздо большего обьема, то есть будет содержать больше наименований фонтов.
При этом, как раз из-за обратного порядка перечисления имен, файлы с неполным набором
символов окажутся в начале файла fonts.scale. В силу этого приложения могут
быть "введены в заблуждение" и "схватить" первый попавшийся (в данном случае - неполный)
фонт. Тогда вместо отутствующих символов Вы увидите просто пробелы.
Впрочем, с этой проблемой нетрудно справиться. Просто после создания
файла fonts.scale надо изменить порядок строк в нем, для чего после
выполнения команды
ttmkfdir -m 100 -o fonts.scale
надо сделать следующее:
- Выполнить команду
tac fonts.scale > fonts.dir
- Перенести строку с числом фонтов из конца полученного таким образом
файла fonts.dir в его начало;
- Убедиться, что файл fonts.dir заканчивается символом конца строки;
- Теперь мы имеем корректно сформированный файл fonts.dir !
Но список в файле fonts.scale все еще имеет обратный порядок. Однако, поскольку эти
два файла (по крайней мере в данном случае) должны быть идентичны, то остается только
выполнить команду
cat fonts.dir > fonts.scale
или
cp fonts.dir fonts.scale
.
Полученный с помощью скрипта файл fonts.alias может оказаться очень
большим, особенно если создавали файл fonts.dir (который используется
скриптом как основа для создания fonts.alias) с помощью команды ttmkfdir с
опцией "-m 100". Да и без этого в нем окажется масса имен фонтов, которые
Вы никогда не будете использовать. Поскольку в типичном случае вполне
достаточно только кириллических фонтов, можно попробовать удалить из
fonts.alias все неиспользуемые фонты с помощью следующей последовательности
команд (оставляем только кириллические фонты):
grep 'iso8859-5"' fonts.alias > newfonts.alias
grep 'koi8-r"' fonts.alias >> newfonts.alias
cat newfonts.alias > fonts.alias
Возможно, этот же прием стоит применить к файлам fonts.dir и fonts.scale, только предварительно продумав все последствия. Если Вы очень разойдетесь и захотите провести такие же корректировки не только в каталогах с фонтами True Type, но в других каталогах с фонтами, то, по крайней мере, не забывайте, что нельзя просто удалить фонты, которые имеют в качестве второго имени (синонима) названия cursor, fixed и variable.
# /etc/rc.d/init.d/xfs restart
xlsfonts | grep arial(можно также воспользоваться командой xfontsel). Если новые фонты видны через xlsfonts, тогда они доступны и для X, и наоборот.
Теперь, когда шрифты True Type установлены, Вы можете попробовать, как
они работают, например, в Netscape.
- Запустите Netscape.
- Откройте окно "preferences/appearence/fonts" и раскройте выпадающий
список "Variable Width Fonts". Там теперь должны появиться вновь установленные
шрифты (я, например, увидел "Verdana (Microsoft)", именно тот единственный
TT-фонт, который устанавливал). Выберите один из них.
Разрешите масштабирование, нажав кнопку "Allow Scaling" рядом со списком
"Variable Width Font".
Установите опцию "Use my default fonts".
Затем выберите размер 12 в выпадающем списке справа.
Щелкните по кнопке OK. Теперь текст в окне Netscape должен отображаться
выбранным Вами шрифтом.
В отличие от других операционных систем (например, Windows и MacOS), Linux, как и другие UNIX-ы не имеет аппаратно-независимой подсистемы печати. Некоторые приложения сами обеспечивают поддержку печати, но большая часть приложений предполагает, что принтер обладает возможностью интерпретировать язык Adobe PostScript. Но PostScript-принтеры довольно редко встречаются в наше время. Для того, чтобы можно было использовать другие типы принтеров, была разработана специальная программа, Ghostscript, которая может интерпретировать код PostScript, преобразовывать контурный шрифт в растровый, формировать соответствующие команды для принтера, обеспечивая тем самым печать на большинстве типов принтеров.
Поскольку все версии PostScript и Ghostscript поддерживают как фонты Type 1 и Type 42, а Ghostscript версии 4 и выше поддерживает и фонты True Type, то больших трудностей с организацией красивой печати под Линукс не возникает. По умолчанию (в Red Hat) фонты для Ghostscript устанавливаются в каталог /usr/share/fonts/defaults/ghostscript/. Поэтому если Вы хотите добавить какие-то фонты для печати, поместите файлы новых фонтов в этот каталог или создайте в нем символические ссылки на новые фонты. Впрочем, можно поместить файлы фонтов и другие каталоги, но тогда нужно будет в файле Fontmap указывать точный путь к фонтам. Далее нужно добавить указание о новых фонтах в файл /usr/share/ghostscript/N.M/Fontmap, который делает фонты доступными для Ghostscript.
Например, для того, чтобы добавить фонт Times New Roman и его варианты, скопируйте файлы times.ttf, timesbd.ttf, timesbi.ttf, и timesi.ttf в каталог /usr/share/fonts/defaults/ghostscript/ и добавьте следующие строки в файл Fontmap:
/Times New Roman (times.ttf) ; /Times New Roman Bold (timesbd.ttf) ; /Times New Roman Bold Italic (timesbi.ttf) ; /Times New Roman Italic (timesi.ttf) ;
Конечно, я рассказал далеко не обо всех моментах, связанных с подключением новых и использованием имеющихся фонтов для системы X Window. Например, за рамками статьи остались вопросы настройки фонтов в конкретных приложениях, а также вопросы преобразования фонтов True Type в фонты Type1. Но, во-первых, всего я и сам не знаю, а, во-вторых, объем статьи не позволяет охватить все. Просмотрите те источники, которые приведены в разделе 9.
К сожалению, в Линуксе нет единой системы работы с фонтами. Каждую отдельную программу, каждое приложение надо отдельно настраивать для того, чтобы эта программа могла использовать фонты TrueType, Type 1 или еще какие-то фонты, почему-либо привлекательные для Вас. И в каждой программе это может делаться по своему ! Однако описание настроек каждой программы заняло бы слишком много места, так что это должно быть темой отдельной статьи.
Реклама на сайте: | Создатели сайтов! Обратите внимание!
Компания AGAVA Software предоставляет бесплатный вебхостинг: неограниченное место, CGI, Perl, доступ к БД, домен и т.д. |
|
Назад | Вернуться к оглавлению. | Далее |
В.А.Костромин
Последние изменения в содержание файла внесены 12 января 2001 г. |