7. Usando Fontes Type 1 com Groff

Agora que a nova fonte pode ser utilizada tanto pelo X11 quanto pelo Ghostscript, como podemos utilizar a nova fonte com o groff? Primeiro de tudo, como estamos usando fontes Type 1 PostScript®, o dispositivo groff que é aplicável é o device ps. Um arquivo de fonte deve ser criado para cada fonte que o groff possa usar. Um nome de fonte groff é apenas um arquivo no /usr/share/groff_font/devps. Com o nosso exemplo, o arquivo da fonte poderia ser /usr/share/groff_font/devps/SHOWBOAT. O arquivo deve ser criado usando ferramentas providas pelo groff.

A primeira ferramenta é o afmtodit. Ela normalmente não está instalada, então deve ser baixada de uma fonte de distribuição. Eu percebi que teria que mudar a primeira linha do arquivo, então eu fiz:

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

Essa ferramenta irá criar o arquivo de fontes do groff a partir dos arquivos de métrica (.afm suffix.) Continuando com nosso exemplo:

Muitos arquivos .afm estão no formato do Mac, com ^M delimitando as linhas
Nós temos que convertê-los para o estilo UNIX® que delimita as linhas com ^J
% cd /tmp
% cat /usr/local/share/fonts/type1/showboat.afm |
	tr '\015' '\012' >showboat.afm

Agora crie um arquivo de fonte groff
% cd /usr/share/groff_font/devps
% /tmp/afmtodit.pl -d DESC -e text.enc /tmp/showboat.afm generate/textmap SHOWBOAT

A fonte agora pode ser referenciada pelo nome SHOWBOAT.

Se o Ghostscript é utilizado para impressão com driver simulado no sistema, então não precisa fazer mais nada. Entretanto, se as impressoras usam PostScript® real, então a fonte deve ser baixada pela impressora de maneira que a fonte a ser utilizada (a menos que a impressora tenha a fonte showboat embutida ou acessível a partir de um disco de fontes.) O passo final é criar uma fonte descarregável. A ferramenta pfbtops é usada para criar o formato .pfa da fonte, e o arquivo para download é modificado para referenciar a nova fonte. O arquivo para download deve referenciar o nome interno da fonte. Isso pode ser facilmente determinado de um arquivo de fonte groff conforme demonstrado:

Criando o arquivo de fonte .pfa
% pfbtops /usr/local/share/fonts/type1/showboat.pfb >showboat.pfa

Claro que, se o arquivo.pfa já existe, apenas crie um link simbólico para referenciá-lo.

Obtendo o nome interno da fonte
% fgrep internalname SHOWBOAT
internalname Showboat

Dizendo ao groff que tem que fazer o download da fonte
% ex download
:$a
Showboat      showboat.pfa
.
:wq

Para testar a fonte:

% 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

Para usar ghostscript/ghostview
% ghostview example.ps

Para imprimí-la
% lpr -Ppostscript example.ps

Referências: /usr/src/gnu/usr.bin/groff/afmtodit/afmtodit.man, groff_font(5), groff_char(7), pfbtops(1).

All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/

Questions that are not answered by the documentation may be sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.