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

# 7. Использование шрифтов в формате type 1 с программой Groff

Теперь, когда новый шрифт может быть использован как с X11, так и в Ghostscript, как использовать его с программой groff? Во-первых, так как мы имеем дело со PostScript®-шрифтами формата type 1, то подходящим устройством groff является ps. Для каждого шрифта, который может использоваться программой groff, должен быть создан файл шрифта. Имя шрифта для groff является просто именем файла из каталога `/usr/share/groff_font/devps`. В нашем примере файлом шрифта может быть `/usr/share/groff_font/devps/SHOWBOAT`. Файл должен быть создан с помощью утилит, поставляемых с программой groff.

Первой утилитой является `afmtodit`. Обычно она не устанавливается, так что она должна быть получена из дистрибутива с исходными текстами. Я обнаружил, что нужно изменить первую строку файла, что я делал так:

    % cp /usr/src/gnu/usr.bin/groff/afmtodit/afmtodit.pl /tmp
    % ex /tmp/afmtodit.pl
    :1c
    #!/usr/bin/perl -P-
    .
    :wq

Эта утилита создаст файл шрифтов для groff из файла метрик (с окончанием `.afm`). Продолжая с нашим примером:

    Многие файлы .afm в формате Mac
    ... строки разделены символом ^M.  Нам нужно преобразовать их в
    разделитель ^J в стиле UNIX®
    % cd /tmp
    % cat /usr/local/share/fonts/type1/showboat.afm |
        tr '\015' '\012' >showboat.afm

    Теперь создаем файл шрифтов groff
    % cd /usr/share/groff_font/devps
    % /tmp/afmtodit.pl -d DESC -e text.enc /tmp/showboat.afm generate/textmap SHOWBOAT

Теперь к шрифту можно обращаться по имени SHOWBOAT.

Если в системе для управления принтерами используется программа Ghostscript, то больше ничего делать не нужно. Однако, если используются настоящие PostScript-принтеры, то для использования шрифта его нужно загрузить в принтер (если только в принтере шрифт showboat не встроен или не имеется на диске со шрифтами). Последний шаг заключается в создании загружаемого шрифта. Утилита `pfbtops` используется для создания шрифта в формате `.pfa`, а файл для `загрузки` изменяется для указания нового шрифта. Файл для `загрузки` должен ссылаться на внутреннее имя шрифта. Оно может быть легко определено из файла шрифтов groff, как это показывается здесь:

    Создание файла шрифта .pfa
    % pfbtops /usr/local/share/fonts/type1/showboat.pfb >showboat.pfa

Конечно, если файл `.pfa` уже имеется, для его использования создаем символическую ссылку на него.

    Получение внутреннего имени шрифта
    % fgrep internalname SHOWBOAT
    internalname Showboat

    Указываем утилите groff, что шрифт должен быть загружен
    % ex download
    :$a
    Showboat      showboat.pfa
    .
    :wq

Для тестирования шрифта:

    % cd /tmp
    % cat >example.t <<EOF
    .sp 5
    .ps 16
    This is an example of the Showboat font:
    .br
    .ps 48
    .vs (\n(.s+2)p
    .sp
    .ft SHOWBOAT
    ABCDEFGHI
    .br
    JKLMNOPQR
    .br
    STUVWXYZ
    .sp
    .ps 16
    .vs (\n(.s+2)p
    .fp 5 SHOWBOAT
    .ft R
    To use it for the first letter of a paragraph, it will look like:
    .sp 50p
    \s(48\f5H\s0\fRere is the first sentence of a paragraph that uses the
    showboat font as its first letter.
    Additional vertical space must be used to allow room for the larger
    letter.
    EOF
    % groff -Tps example.t >example.ps

    Для использования с ghostscript/ghostview
    % ghostview example.ps

    Для его печати
    % lpr -Ppostscript example.ps

Справочная информация: `/usr/src/gnu/usr.bin/groff/afmtodit/afmtodit.man`, groff_font(5), groff_char(7), pfbtops(1).

Пред. | Начало | След.
Использование шрифтов type 1 с пакетом Ghostscript |  | Преобразование файлов шрифтов TrueType в формат groff/PostScript для использования с groff

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

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