Шрифты и FreeBSD: Пособие
Пред. |  | След.

# 8. Преобразование файлов шрифтов TrueType в формат groff/PostScript для использования с groff

Потенциально это требует некоторых усилий, просто потому что зависит некоторых утилит, которые в качестве части системы не устанавливаются. Это:

`ttf2pf`

  Утилита для преобразования TrueType в PostScript. Она позволяет преобразовать шрифт TrueType в метрику шрифта в текстовом формате (файл `.afm`).

  Доступна по адресу http://sunsite.icm.edu.pl/pub/GUST/contrib/BachoTeX98/ttf2pf/. Замечание: Эти файлы являются PostScript-программами и должны быть скачаны на диск щелчком на ссылке при нажатой клавише Shift. В противном случае для их просмотра ваш браузер может попытаться запустить программу ghostview.

  Интерес представляют следующие файлы:

  - `GS_TTF.PS`

  - `PF2AFM.PS`

  - `ttf2pf.ps`

  Смесь верхнего/нижнего регистров присутствует из-за того, что эти файлы предназначены и для DOS. `ttf2pf.ps` использует остальные с именами в верхнем регистре, так что при переименовании это нужно учитывать. (На самом деле `GS_TTF.PS` и `PFS2AFM.PS` предположительно являются частью дистрибутива Ghostscript, но их легко использовать как отдельные утилиты. В поставку FreeBSD они не включены.) Вы можете также установить их в каталог `/usr/local/share/groff_font/devps`(?).

`afmtodit`

  Создает файлы шрифтов для использования с программой groff из текстовых файлов с метриками шрифта. Она обычно располагается в каталоге `/usr/src/contrib/groff/afmtodit` и для ее использования требуется проделать некоторую работу.

  > Замечание: Если вы избегаете работать в дереве `/usr/src`, просто скопируйте содержимое вышеупомянутого каталога во временный рабочий каталог.

  Во рабочем каталоге вам нужно построить утилиту. Просто введите такую команду:

      # make -f Makefile.sub afmtodit

  Вам может также потребоваться скопировать `/usr/contrib/groff/devps/generate/textmap` в `/usr/share/groff_font/devps/generate`, если его только уже не существует.

Как только эти утилиты готовы, вы можете начать:

1. Создайте файл `.afm` по такой команде:

       % gs [-dNODISPLAY] [-q] -- ttf2pf.ps TTF_name [PS_font_name [AFM_name]]

   Здесь `TTF_name` обозначает ваш файл со шрифтом TrueType, `PS_font_name` является именем для файла `.pfa`, `AFM_name` задает имя для файла `.afm`. Если вы не укажете имена выходных файлов, для форматов `.pfa` или `.afm`, то по умолчанию будут использоваться имена, получаемые из имени файла со шрифтом TrueType.

   При этом также будет создан файл `.pfa`, текстовый файл с метриками PostScript-шрифта ((`.pfb` для двоичного представления). Это не не обязательно, но может быть (я думаю) полезным для сервера шрифтов.

   Например, для преобразования шрифта 30f9 Barcode с именами файлов по умолчанию, воспользуйтесь следующей командой:

       % gs -dNODISPLAY -- ttf2pf.ps 3of9.ttf
       Aladdin Ghostscript 5.10 (1997-11-23)
       Copyright (C) 1997 Aladdin Enterprises, Menlo Park, CA.  All rights reserved.
       This software comes with NO WARRANTY: see the file PUBLIC for details.
       Converting 3of9.ttf to 3of9.pfa and 3of9.afm.

   Если вы хотите, чтобы преобразованные шрифты сохранялись в файлы `A.pfa` and `B.afm`, то выдайте такую команду:

       % gs -dNODISPLAY -- ttf2pf.ps 3of9.ttf A B
       Aladdin Ghostscript 5.10 (1997-11-23)
       Copyright (C) 1997 Aladdin Enterprises, Menlo Park, CA.  All rights reserved.
       This software comes with NO WARRANTY: see the file PUBLIC for details.
       Converting 3of9.ttf to A.pfa and B.afm.

2. Создайте PostScript-файл для groff:

   Смените текущий каталог на `/usr/share/groff_font/devps` для облегчения запуска упоминаемых далее программ. Для этого вам может понадобиться иметь привилегии администратора системы. (Или, если вы избегаете здесь работать, обязательно посмотрите файлы `DESC`, `text.enc` и `generate/textmap` в этом каталоге.)

       % afmtodit -d DESC -e text.enc file.afm \
       	    generate/textmap PS_font_name

   Здесь `file.afm` является файлом `AFM_name`, созданным программой `ttf2pf.ps` выше, а `PS_font_name` является именем шрифта, используемым в той команде, так же, как и имя, которое будет использовать утилита groff(1) для ссылки на этот шрифт. Например, полагая, что вы использовали первую команду `tiff2pf.ps` выше, то шрифт 3of9 Barcode может быть создан при помощи такой команды:

       % afmtodit -d DESC -e text.enc 3of9.afm \
                        generate/textmap 3of9

   Проверьте, что полученный файл `PS_font_name` (к примеру, `3of9` из примера выше) расположен в каталоге `/usr/share/groff_font/devps`, скопировав или перенеся его сюда.

   Заметьте, что если `ttf2pf.ps` назначает имя шрифта, используя один из найденных в файле шрифта TrueType, а вы хотите использовать другое имя, то вы должны отредактировать файл `.afm` до запуска команды `afmtodit`. Это имя к тому же должно совпадать с тем, что используется в файле Fontmap, если вы собираетесь перенаправлять вывод groff(1) утилите gs(1).

Пред. | Начало | След.
Использование шрифтов в формате type 1 с программой Groff |  | Можно ли использовать шрифты в формате TrueType с другими программами?

Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите <doc@FreeBSD.org>.
По вопросам, связанным с русским переводом документации, пишите в рассылку <frdp@FreeBSD.org.ua>.
Информация по подписке на эту рассылку находится на сайте проекта перевода.