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 '15' '12' >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 (
(.s+2)p
.sp
.ft SHOWBOAT
ABCDEFGHI
.br
JKLMNOPQR
.br
STUVWXYZ
.sp
.ps 16
.vs (
(.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(48f5Hs0fRere 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).

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

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

Обновлено: 12.03.2015