Вступление
При подготовке этой статьи использовались Mandrake 8.0 и Gimp 1.2.1. При использовании других версий структура каталогов, индексы и меню могут отличаться от описанных в тексте. В таком случае может потребоваться адаптация к конкретной конфигурации.
При обсуждении печати символов я буду использовать термины шрифты (fonts) и стили (styles) абсолютно равноправно. Полные стили будут называться шаблонами (patterns) или стилями (motifs). Вместо употребления официального наименования XFree86 я буду говорить просто X.
Подобным же образом, говоря о Midnight Commander, который позволяет оперировать файлами не обладая глубокими знаниями о базовых функциях Linux и их обильных опциях, я буду называть его MC. Пользователи Norton Commander и Xtree Gold под DOS или WinCommander под Windows почувствуют себя на знакомой территории. Вплоть до функциональных клавиш, которые имеют одинаковое назначение в MC и в WinCommander! Будем же прагматиками. Несомненно, лучше делать что-то функциональное, но неуклюжее, чем что-то изысканное, но не функциональное.
Установка Freefont и Sharefont
По умолчанию script-fu's используют шрифты, которые в различных дистрибутивах могут не устанавливаться по умолчанию. Эти шрифты поставляются в составе двух пакетов: Freefont и Sharefont. Первый из них бесплатный, а второй распространяется по shareware лицензии, но оба очень интересны. Несомненно они привносят большое разнообразие в презентационные возможности X.
Figure 1.
Оба эти пакета доступны в .tgz архивах благодаря по адресу в интернете (например,http://ibiblio.org/pub/Linux/X11/fonts/, ibiblio был раньше известен как metalab или sunsite) а, также, иногда, на CD на обложках журналов. На CD, прилагаемом к Linux Magazine France No 9 они расположены в каталоге /Gimp/fonts.
В этом случае шрифты можно установить так:
- 1.1 смонтируйте CD
- 1.2 запустите MC
- 1.3 в правом окне выберите каталог /Gimp/fonts на CD или тот каталог, в который Вы загрузили файлы
- 1.4 В левом окне (или наоборот) выберите каталог /usr/X11R6/lib/X11/fonts на жестком диске
- 1.5 Скопируйте (F5) архивы freefont.tgz и sharefont.tgz в выбранный каталог жесткого диска
- 1.6 Распакуйте архивы (F2 открывает меню, в котором надо выбрать распаковку архива в каталог)
Если такой опции нет в меню, выйдите из MC (F10), причем, курсор при выходе должен оставаться в окне, в котором отображаются скопированные Вами файлы. Если Вам не сложно, добавьте к .bashrc следующую строку:
mc () MC=`/usr/bin/mc -P "$@"`; [ -n "$MC" ] && cd "$MC"; unset MC ;
Вы окажетесь в выбранном каталоге. Если нет, перейдите туда:
cd /usr/X11R6/lib/X11/fonts
и выполните распаковку вручную:
tar xvfz *.tgz
Вы получите два новых каталога: freefont и sharefont. Архивы .tgz теперь можно удалить.
Freefont содержит 79 шрифтов, почти все полезные, а Sharefont -- 22.
Figure 2.
В каждом из каталогов, также, содержится специальный файл fonts.dir, в котором содержатся характеристики каждого из шрифтов для X. Это значит, что для создания этого файла Вам не придется запускать mkfontdir.
X загрузит эти шрифты при следующем запуске, но только при условии, что Вы сообщите ему, что он должен их использовать. В более ранних дистрибутивах Вы должны были добавить в файл /etc/X11/XF86Config в секцию "Files" следующие строки:
FontPath "/usr/X11R6/lib/X11/fonts/freefont"
Но в Mandrake 8.0 используется фонт-сервер. Для добавления шрифтов к фонт-серверу используют утилиту chkfontpath:
FontPath "/usr/X11R6/lib/X11/fonts/sharefont"
chkfontpath --add /usr/X11R6/lib/X11/fonts/freefont/
chkfontpath --add /usr/X11R6/lib/X11/fonts/sharefont/
Перезапустим фонт-сервер:
/etc/rc.d/init.d/xfs restart
Если Вы работаете в графическом, а не в консольном режиме, эти инструкции можно ввести в терминале (rxvt, kvt, wmterm...). Тем не менее шрифты не станут доступными немедленно: они будут загружены после перезапуска X или после ввода во все еще открытом терминале команд:
xset fp+ /usr/X11R6/lib/X11/fonts/freefont
xset fp rehash
xset fp+ /usr/X11R6/lib/X11/fonts/sharefont
Xset fp rehash
Результаты
Чтобы проверить, что шрифты действительно загружены, запустим
xlsfonts | egrep 'sharefont|freefont'
или запустим xfontsel, или просто фонт-менеджер KDE.
Шрифты теперь доступны во всех (согласен, не совсем) приложениях X.
Шрифты можно собрать в таблицу, как в этой статье с помощью следующих команд Gimp:
xtns> Script-Fu> Utils> Font Map.
Важно: это беспощадный инструмент. Одна ошибка при вводе имени шрифта, и Вы отброшены к самому началу. Лучший способ обойти это -- работать с Gimp при запущенном фонт-менеджере KDE. В этом случае Вы можете видеть имя шрифта в менеджере и в то же время видеть его в поле образца. На Figure 3 показаны некоторые шрифты, Которые могут использоваться для создания причудливых заголовков или логотипов.
Figure 3.
Использование True Type
Эти вновь установленные шрифты, конечно, интересны, но у Вас, возможно, имеется на жестком диске раздел Windows с легионами прекрасных шрифтов True Type? Если у Вас нет Windows, Вы можете загрузить шрифты True Type с различных сайтов, например, http://hugemcgriffin.com/fonts/a/, http://www.fontguy.com/, http://www.freepcfonts.com/index.html, ... Их можно использовать.
Последние дистрибутивы Linux и те, которые только ожидаются, естественно, предусматривают их использование. Но это не так в старых дистрибутивах, таких, как Mandrake 5.3
Существует решение этой проблемы. Это решение -- сервер Xfstt (исполняемый файл около 130 Kb после компиляции) можно найти по адресу (среди прочих): ftp://sunsite.unc.edu/pub/Linux/X11/fonts/.
Архив, который Вам нужен, называется Xfstt-0.9.10.tgz (или более поздняя версия), имеет размер около 80Kb. Номер версии показывает, что программа все еще развивается, но не имеет серьезных проблем функциональности.
Перед компиляцией необходимо сделать некоторые приготовления, а именно, создать каталог для записи шрифтов True Type, например, /usr/share/fonts/truetype/ (mkdir /usr/share/fonts/truetype/ или F7 в MC). Затем скопируйте необходимые шрифты в этот каталог, или создайте символическую ссылку (в MC F9, затем File, затем Symlink), указывающую на каталог шрифтов Windows. У меня /usr/share/fonts/truetype/ -- это ссылка на /mnt/Win98/windows/fonts, где /mnt/Win98 -- точка монтирования моего раздела Windows.
Теперь можно начинать компиляцию; для этого перейдите в каталог, полученный при разворачивании архива (/tmp/xfstt0910) и выполните команду:
make xfstt && make install
После конца компиляции исполняемый двоичный файл xfstt
записывается в /usr/X11R6/bin. Теперь остается сообщить серверу xfstt, какие шрифты он должен использовать. Выполните команду:
xfstt --sync --dir /usr/share/fonts/truetype
В результате в /usr/share/fonts/truetype
будут созданы два файла описаний ttinfo.dir
и ttname.dir.
Сервер запускается командой: xfstt --dir /usr/share/fonts/truetype &
.
Тем не менее, после выполнения команды, кажется, что ничего не случилось: эти шрифты доступны только в X, а не в текстовом режиме, и, если Вы в X, то необходимо дать X команду загрузить их. Это можно сделать следующей командой:
xset +fp unix/:7100
После этого проверьте с помощью "xlsfonts | grep ttf-", или xfontsel или с помощью фонт-сервера KDE, что шрифты TrueType теперь доступны; они должны быть доступны всем (ну почти) приложениям, выполняемым под X. StarOffice5 позволяет использовать их в StarDraw, StarImpress, StarCalc, но, как ни странно, не в StarWriter. Возможно есть настройка, позволяющая активизировать их, но, если это так, мне не удалось ее найти. В любом случае, они доступны в Gimp, в чем можно убедиться на figure 4. Для Gimp имеется, также плагин freefont. Если он у Вас установлен, у Вас имеется еще одна возможность использовать в Gimp шрифты TrueType. В отличие от сервера xfstt, плагин freefont, конечно не делает шрифты доступными для всех приложений.
Figure 4.
В документации утверждается, что можно добавить в XF86Config в раздел Files строку: FontPath "unix/:7100"; но у меня это ни разу не сработало; там, также, говорится о необходимости запускать xfstt перед запуском X, а остальные команды выполнять в терминале, при этом они не запоминаются. Проще всего автоматизировать этот процесс, написав два небольших скрипта один для запуска сервера, а другой -- для его закрытия. Не забудьте сделать скрипты исполняемыми (в MC F9, File, Chmod), а, затем, записать их, например, в /usr/local/bin. Скрипт активации можно назвать, например, ttf, а скрипт деактивации -- dttf. В первом должны быть такие строки:
#!/bin/sh xfstt --sync --dir /usr/share/fonts/truetype xfstt & xfstt +fp unix/:7100
А во втором:
#!/bin/sh xset -fp unix/:7100
Это решение, которым пользуюсь я: и оно работает.
Создание шаблонов
Шаблоны (изображения) -- ничто иное, чем файлы битовых карт изображений в формате .pat, специально предназначенном (но не защищенном авторским правом) для Gimp, которые используются наподобие инструмента "заливки". Они хранятся в каталоге /usr/share/gimp/1.2/patterns/. Вновь создаваемые шаблоны можно записывать в этот каталог, что даст доступ к ним другим пользователям, или в Ваш домашний каталог в ~/.gimp/patterns, в этом случае этими шрифтами сможете пользоваться только Вы.
Предположим, мы хотим использовать изображение figure 5 в качестве "бумажной" подложки изображения.
Figure 5.
Мы можем сделать это вручную, путем копирования и вставки, но это долго и не очень точно: шаблоны надо уложить пиксел к пикселу! Лучше доверить это Gimp'у; и он справится с этим, если укладываемые изображения хранятся в подходящем формате, то-есть в .pat файле.
Если это не так, Вы можете поступить так:
- Загрузите кандидата на шаблон в Gimp
- Запишите его в один из указанных выше каталогов, обязательно в формате .pat так:
щелчок правой кнопкой на изображении> Save as> By extension> Pat > ~/.gimp/patterns/Tux1.pat> ok - Перед записью Gimp запросит имя шаблона, это не имя файла, а идентификатор; по умолчанию шаблон называется GIMP Pattern. Назовем его Tuxdor ("золотой Tux").
Выйдем из Gimp, поскольку новый шаблон станет доступным только после перезапуска, и перезапустим его.
В панели инструментов выберем File>Dialogs>Patterns. Появляется окно выбора шаблонов, в котором показаны все доступные шаблоны; если щелкнуть по образцу, он временно увеличится. Текущий шаблон выбирается щелчком по его образцу.
Найдем шаблон Tuxdor где-то ближе к концу списка, поскольку шаблоны располагаются по алфавиту, и выберем его для использования.
Создадим новую рабочую область File>New>Width 288 Height 286 (место для 4 шаблонов)
сделаем двойной щелчок на Fill with a colour or pattern (заливка цветом или шаблоном) и выберем Pattern Fill (заполнение шаблоном).
Щелкнем на пустом месте рабочей области и она заполнится "золотым Tux'ом":
Figure 6.
Тем не менее заполнение не вполне эстетически совершенно: "швы" между шаблонами видны. Это зависит от самого шаблона, который создавался без учета необходимости "сшивания" границ. Давайте исправим это. Вновь откроем оригинал figure 5. Щелкнем правой кнопкой мышки на изображении, а затем
>Filters> Map> Make Seamless (сделаем бесшовным), мы получим новое изображение.
Figure 7.
Сохраним его в том же месте под именем Tux2.pat, с идентификатором TuxTile. Выйдем из Gimp, перезапустим его и создадим новое изображение 432x392 пиксела. Заполним это новое изображение шаблоном TuxTile. Теперь у нас новое изображение без швов, но имеющее несколько "милитаристический" вид (конечно не это было целью). Тем не менее качество изображения гораздо лучше, чем в предыдущем случае.
Figure 8.
Но все же хотелось бы иметь более мягкое изображение, более размытое. Чтобы получить соответствующий шаблон:
- Вновь откроем оригинал figure 5
- Щелкнем правой кнопкой мышки на изображении> Filters > Map> Illusion> 8> OK
- мы получили новое изображение
Figure 9.
- Снова запишем его в том же месте под именем Tux3.pat, с идентификатором TuxIllus
- Выйдем из Gimp, перезапустим его и вновь создадим новое изображение 432x392
- Заполним новое изображение шаблоном TuxIllus
- Теперь у нас колония Tux'ов. Привлекательна ли она? Ну это дело вкуса!
Figure 10.
Предварительное заключение
Последнее изображение показывает, что можно сделать с этими шрифтами и шаблонами, отличными от тех, которые поставляются с Gimp. Текст создан с использованием Script-Fu logo; конечно, пришлось потрудиться, чтобы он так выглядел, но такого результата может достигнуть любой. Достаточно исследовать многочисленные возможности, предоставляемые программным обеспечением и получить от этого удовольствие.