5. Uso de tipos Type 1 con X11

X11 puede utilizar tanto el formato .pfa como el formato .pfb. Los tipos para X11 se encuentran en varios subdirectorios bajo /usr/X11R6/lib/X11/fonts. Cada tipo es una referencia cruzada entre su nombre X11 y el contenido del archivo fonts.dir en cada directorio.

Ya existe un directorio llamado Type1. La forma más sencilla de añadir un nuevo tipo es ponerla en ese directorio. Una forma aun mejor sería colocar todos los tipos que quiera añadir en un directorio separado y utilizar un enlace simbólico a los tipos adicionales. Esto permite identificar los tipos sin mezclarlos con los originales. Por ejemplo:

Crear un directorio para alojar los archivos de tipos.
% mkdir -p /usr/local/share/fonts/type1
% cd /usr/local/share/fonts/type1

Coloque los archivos .pfa, .pfb y .afm aquí
Puede incluir también los archivos README, así como la documentación
de los tipos
% cp /cdrom/fonts/atm/showboat/showboat.pfb .
% cp /cdrom/fonts/atm/showboat/showboat.afm .

Así se mantiene el índice para la referencia cruzada de los tipos
% echo showboat - InfoMagic CICA, Dec 1994, /fonts/atm/showboat >>INDEX

Para poder usar el nuevo tipo en X11 debe hacer que el archivo de tipo esté disponible y actualizar el nombre del tipo. Los nombres de los tipos de X11 tienen este aspecto:

-bitstream-charter-medium-r-normal-xxx-0-0-0-0-p-0-iso8859-1
     |        |      |    |   |     |  | | | | | |    \    \
     |        |      |    |   |     \  \ \ \ \ \ \     +----+- juego de caracteres
     |        |      |    |   \      \  \ \ \ \ \ +- ancho promedio
     |        |      |    |    \      \  \ \ \ \ +- espaciado
     |        |      |    \	\      \  \ \ \ +- resolución vertical.
     |        |      |     \	 \	\  \ \ +- resolución horizontal.
     |        |      |      \	  \	 \  \ +- puntos
     |        |      |       \     \	  \  +- píxeles
     |        |      |        \     \	   \
  tipo familia  densidad  inclinación anchura estilo adicional

Cada nuevo tipo necesita tener un nombre específico. Si en la documentación que acompaña al tipo encuentra la información requerida puede usarla como base para crear el nombre. Si no hay información puede hacerse una idea utilizando el comando strings(1) en el tipo. Por ejemplo:

% strings showboat.pfb | more
%!FontType1-1.0: Showboat 001.001
%%CreationDate: 1/15/91 5:16:03 PM
%%VMusage: 1024 45747
% Generated by Fontographer 3.1
% Showboat
 1991 by David Rakowski.  Alle Rechte Vorbehalten.
FontDirectory/Showboat known{/Showboat findfont dup/UniqueID known{dup
/UniqueID get 4962377 eq exch/FontType get 1 eq and}{pop false}ifelse
{save true}{false}ifelse}{false}ifelse
12 dict begin
/FontInfo 9 dict dup begin
 /version (001.001) readonly def
 /FullName (Showboat) readonly def
 /FamilyName (Showboat) readonly def
 /Weight (Medium) readonly def
 /ItalicAngle 0 def
 /isFixedPitch false def
 /UnderlinePosition -106 def
 /UnderlineThickness 16 def
 /Notice (Showboat
 1991 by David Rakowski.  Alle Rechte Vorbehalten.) readonly def
end readonly def
/FontName /Showboat def
--stdin--

Basándonos esta información podríamos usar un nombre como este:

-type1-Showboat-medium-r-normal-decorative-0-0-0-0-p-0-iso8859-1

Los componentes de nuestro nombre son:

Tipo

Vamos a nombrar todos los tipos nuevos como type1.

Familia

El nombre del tipo.

Densidad

Normal, negrita, media, seminegrita, etc. En la salida del comando strings(1) que acabamos de mostrar vemos que este tipo tiene una densidad media.

Inclinación

roman, cursiva, oblicua, etc. Dado que ItalicAngle es cero, se utilizará roman.

Anchura

Normal, ancha, condensada, extendida, etc. Hasta que pueda ser examinada, suponemos que será normal.

Estilo adicional

Generalmente se omite, pero esto indicará que el tipo contiene mayúsculas decorativas.

Espaciado

proporcional o monoespaciado. La opción Proportional se usa cuando isFixedPitch es false.

Todos estos nombres son arbitrarios, pero uno debe tratar de ser compatible con las convenciones existentes. El nombre hace referencia al tipo con posibles comodines del programa X11, por lo que el nombre elegido debe tener algún sentido. Simplemente puede comenzar a usar

…-normal-r-normal-…-p-…

como nombre, y luego usar xfontsel(1) para examinarla y ajustar el nombre en función de la apariencia del tipo.

Para completar nuestro ejemplo:

Haga que el tipo esté accesible para X11
% cd /usr/X11R6/lib/X11/fonts/Type1
% ln -s /usr/local/share/fonts/type1/showboat.pfb .

Edite fonts.dir y fonts.scale, agregando la línea que describe el tipo
e incrementando el número de tipos que se encuentran en la primera línea.
% ex fonts.dir
:1p
25
:1c
26
.
:$a
showboat.pfb -type1-showboat-medium-r-normal-decorative-0-0-0-0-p-0-iso8859-1
.
:wq

fonts.scale parece ser idéntico a fonts.dir…
% cp fonts.dir fonts.scale

Indique a X11 que las cosas han cambiado
% xset fp rehash

Examine el nuevo tipo
% xfontsel -pattern -type1-*

Referencias: xfontsel(1), xset(1), The X Windows System in a Nutshell, O'Reilly & Associates.

Puede descargar éste y muchos otros documentos desde ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/

Si tiene dudas sobre FreeBSD consulte la documentación antes de escribir a la lista <questions@FreeBSD.org>.

Envíe sus preguntas sobre la documentación a <doc@FreeBSD.org>.