Шрифтовые метрики 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 начинаются с комментария. Эта "проблема" легко исправляется при помощи текстового редактора.
Теперь у нас есть afm-файлы, и нам надо указать системе, где их найти. Обычно это делается при помощи файла font.map.
Я так и не смог обнаружить документацию по формату этого файла, в отличие от fonts.dir, fonts.scale, и fonts.alias, создаваемых mkfontdir. Однако минимальный формат достаточно прост:
Название шрифта без пробелов
Имя AFM - файла, без расширения
Алиасы реализуются набором нескольких строк, а расширение файла должно быть написано строчными буквами.
GIMP - это программа рисования и обработки изображений Gnu. Мне не пришлось вносить никаких изменений в систему, чтобы использовать шрифты TrueType в gimp.
Enscript - это программа, преобразующая ASCII в PostScript. Для этих же целей существуют программы a2ps и mpage.. Enscript позволяет производить повороты на 90 градусов, добавлять водяные знаки, заголовки и окрашивание текста, базирующееся на применении ключевых слов. Она не форматирует текст, поэтому чаще всего используется для печати исходных текстов программ.
Чтобы использовать шрифты TrueType в enscript, сделайте следующее:
Добавьте /usr/share/fonts/truetype к переменной AFMPath.
Укажите шрифт TrueType, либо напрямую, либо через алиасинг обычного шрифта.
Более подробно читайте документацию enscript.
После того как я внес эти изменения, у меня не было проблем с использованием шрифтов TrueType.
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 - это вторая очень распространенная система набора и форматирования текста во многих системах GNU/Linux.
Шрифты TeX могут быть созданы при помощи mktexmf, но я имею очень скудную информацию по конкретным деталям процесса. Более подробное описание читайте в следующих версиях.