Настройка программ

Генерация метрик шрифтов AFM AFM

Шрифтовые метрики AFM не нужны для того, чтобы выводить содержимое существующих файлов, но они нужны для создания новых. Эти файлы метрик могут быть созданы при помощи программы /usr/lib/ghostscript/5.50/printafm.ps, входящей в пакет ghostscript, но, я нашел программу ttf2afm, входящую в пакет tetex-bin, которая значительно проще в использовании.

Нижеприведенный скрипт создаст afm-файлы для всех шрифтов TrueType в текущем каталоге:

#!/bin/sh

set -e

for i in *.TTF
do
    /usr/bin/ttf2afm $i > ${i%TTF}afm
done

for i in *.ttf
do
    /usr/bin/ttf2afm $i > ${i%ttf}afm
done

Одна небольшая проблема, возникающая с ttf2afm - это то, что некоторые программы предполагают, что afm-файлы начинаются с тэга StartFontMetrics, но файлы, созданные ttf2afm начинаются с комментария. Эта "проблема" легко исправляется при помощи текстового редактора.

Создание файлов font.map

Теперь у нас есть afm-файлы, и нам надо указать системе, где их найти. Обычно это делается при помощи файла font.map.

Я так и не смог обнаружить документацию по формату этого файла, в отличие от fonts.dir, fonts.scale, и fonts.alias, создаваемых mkfontdir. Однако минимальный формат достаточно прост:

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

Работа с изображениями: GIMP

GIMP - это программа рисования и обработки изображений Gnu. Мне не пришлось вносить никаких изменений в систему, чтобы использовать шрифты TrueType в gimp.

Преобразование ASCII в PostScript: enscript

Enscript - это программа, преобразующая ASCII в PostScript. Для этих же целей существуют программы a2ps и mpage.. Enscript позволяет производить повороты на 90 градусов, добавлять водяные знаки, заголовки и окрашивание текста, базирующееся на применении ключевых слов. Она не форматирует текст, поэтому чаще всего используется для печати исходных текстов программ.

Чтобы использовать шрифты TrueType в enscript, сделайте следующее:

Более подробно читайте документацию enscript.

После того как я внес эти изменения, у меня не было проблем с использованием шрифтов TrueType.

Форматирование и обработка текста: groff

Groff - это передний план системы форматирования документов groff/troff Gnu. Возможности Groff можно оценить, просмотрев руководство пользователя (man).

user shell
$ zcat /usr/man/man1/groff.1.gz | groff -man | lpr

Огромное количество документации в Unix использует форматирование при помощи troff и макросов ms (и, иногда, me). Пакет xbooks в Debian, например, содержит 43 файла, использующих troff с макросами ms. Можно очень красиво распечатать эти документы, используя groff.

Groff - это очень мощная система, но, в любом случае, это внук (или правнук) программ, использовавшихся в 60-х годах на печатных прессах. Поддержка шрифтов в groff полностью отражает суть этой наследственности. Groff, в отличие от своих предков, использует PostScript в качестве формата вывода по умолчанию, поэтому наши предыдущие изменения, внесенные в ghostscript, займутся решением наших проблем -- groff не должен заниматься чтением файлов со шрифтами TrueType. Ему также не нужны точные метрики шрифтов, и в этом разделе мы только опишем восстановление необходимых groff файлов:

Файлы описания PostScript Groff
/usr/share/groff/font/devps/DESC
    Файл описания устройств
/usr/share/groff/font/devps/text.enc
    Таблицы кодировок используемые для шрифтов
/usr/share/groff/font/devps/generate/textmap
    Стандартная таблица преобразования
/usr/share/groff/font/devps/generate/Makefile
    Стандартный makefile

Теперь надо отредактировать Makefile,

/usr/share/groff/font/devps/generate/Makefile
- afmdir=/usr/local/afm
+ afmdir=/usr/share/fonts/truetype

Измените названия шрифтов на их TrueType-эквиваленты (например, если мы используем бесплатные шрифты Microsoft TrueType, мы бы заменили Helvetica на Arial), и измените раздел TEXTFONTS, и подобные ему, вставив только те, которые нам необходимы.

Также вам надо отредактировать файл /usr/share/groff/font/devps/generate/afmname, чтобы использовать имена шрифтов TrueType и afm-файлов, и убрать флаг "-e" у awk.

После этого можно перестроить таблицы groff командой

user shell
$ cd /usr/share/groff/font/devps
$ make -f generate/Makefile

Как всегда, лучший способ проверить сделанные изменения - использовать нестандартно выглядящий шрифт. Например, вы можете использовать шрифт Mistral из бесплатных шрифтов Microsoft Truetype для печати TR.

(Я жду благодарностей от всех, кто перенастроит свою систему так, что она будет печатать man-ы староанглийским шрифтом не ранее следующего 1 апреля!)

Набор и форматирование текстов: TeX

TeX - это вторая очень распространенная система набора и форматирования текста во многих системах GNU/Linux.

Шрифты TeX могут быть созданы при помощи mktexmf, но я имею очень скудную информацию по конкретным деталям процесса. Более подробное описание читайте в следующих версиях.