Cómo instalar fonts en Debian

Herr Groucho groucho en nys.com.ar
Vie Ago 10 01:58:15 ART 2007


Tenía una necesidad simple: instalar un archivo .ttf de un font con un 
montón de símbolos fonéticos y una gran cobertura de Unicode.
Cómo lo hago? Idealmente, se debería hacer como en Windows: basta con 
poner el archivo .ttf en un directorio especial y sin hacer nada el 
font está disponible en todos lados.

Pero ese objetivo no parece estar cerca, dada la ensalada que el 
manejo de fonts en un sistema GNU/Linux, donde no hay una registro 
central de fonts, conviven muchísimos formatos diferentes, hay varias 
implementaciones de renderers, puede o no haber servidores, y cada 
aplicación de de todo eso sólo vé lo que le guste ver, con lo cual no 
hay una manera universalmente eficaz de instalar un font y que 
funcione...

Buscando con Google aparecen miles de procedimientos diferentes para 
instalar un font, cada uno con diferente alcance: usando las 
herramientas provista por ciertos entornos de escritorio (y el font 
sólo es visible dentro de X, o peor, sólo en los programas del 
entorno de escritorio), toqueteando la configuración de X de formas 
ad-hoc, creando directorios y configuraciones locales, con un montón 
de pasos manuales para generar hints y métricas y no sé cuánta otra 
mierda a partir de la información embebida dentro de los fonts, de 
manera que no sé por qué me tienen que hacer a mí extraerla.

En fin, no encontraba ninguna explicación de un método que fuese 
completamente abarcativo, autocontenido, homogéneo, automatizado, 
estandarizado y fácil de usar, hasta que por que por millonésima vez 
en la vida decidí darle otra mirada a defoma a ver si lograba 
entender cómo usarlo...

Y lo logré!

El manejo de fuentes en Debian con defoma tiene los atributos 
característicos de tantos otros sistemas hechos por Debian: 
sobrediseño, modularidad esquizofrénica y flexibilidad barroca, todo 
lo cual se combina para ofrecer justo lo que andaba buscando: algo 
abarcativo, estandarizado, homogéneo, elegante, ya previsto en la 
distribución, etc.: algo The Debian Way!

Con defoma, las aplicaciones que pueden utilizar fonts (X, Latex, 
etc.) tienen que ofrecer un script/módulo a ser invocado por defoma 
en los momentos adecuados, y ese script tiene que implementar la 
realización de una serie de operaciones abstractas solicitadas por 
defoma, como hacer disponible o dejar de hacer disponible un font.
Hay otro conjunto de módulos para acceder a cada formato de font 
(type1, truetype, etc.) y un montón de otras cosas, todas las cuales 
se manejan con 2 o 3 invocaciones desde la línea de comandos.

He aquí el procedimiento que seguí para instalar MS Arial Unicode:

1) Copio el archivo al directorio previsto para fonts localmente 
instalados: /usr/local/share/fonts
2) Extraigo del archivo todos los datos que defoma va a querer saber y 
los guardo en un archivo que luego le puedo pasar a defoma así no me 
pregunta pelotudeces:
   # cd /usr/local/share/fonts
   # defoma-hints truetype *.ttf >/tmp/hints
Esto se puede hacer como ven para procesar varios fonts en lote.
3) "Registro" el font con defoma, o sea: lo instalo, porque defoma 
luego va a disparar los scripts esos que mencioné al principio para 
hacer disponible el font en cada aplicación que se haya registrado 
con defoma como capaz de manejar fonts en el formato que tenga el 
font que se esté instalando:
   # defoma-font register-all /tmp/hints
Acá estoy pasando los datos de potencialmente varios fonts (por cómo 
creé el archivo) a defoma, pero también hay comandos para registrar 1 
solo font por ejemplo.

Y listo, eso es todo, el font queda andando.
Específicamente en el caso de X esto ocurre porque 
en /etc/X11/xorg.conf ya hay puesta una línea para que el servidor X 
tome fonts desde un cierto directorio manejado por defoma.

Y algún día entenderé la relación entre fontmanager, defoma y el resto 
de las cosas...

-- 
Herr Groucho

ID Jabber: groucho en lugmen.org.ar
Señal distintiva: LU5MJR - 144,550 MHz FM.
Clave pública GPG: hkp://pks.lugmen.org.ar
Fingerprint GPG: B7BD 0FC7 D9A2 66F3 4EFC  45EE 7DE2 3932 597B 6354


Más información sobre la lista de distribución lug-list