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).

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

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

Обновлено: 12.03.2015