11.3. Instalación y configuración de tipos de letra

Instalar tipos de letra adicionales en SUSE LINUX resulta muy sencillo. Basta con copiar los tipos de letra en un directorio especificado en la ruta de tipos de letra de X11 (véase la Sección 11.3.2, “X11 core fonts”). Con el fin de que los tipos de letra también puedan utilizarse con el nuevo sistema de representación de tipos de letra xft, este directorio ha de ser además un subdirectorio de los directorios configurados en /etc/fonts/fonts.conf (véase la Sección 11.3.1, “Xft”).

Puede copiar los archivos de tipo de letra como usuario root en un directorio adecuado como por ejemplo /usr/X11R6/lib/X11/fonts/truetype, o bien utilizar el instalador de tipos de letra de KDE en el centro de control de KDE. El resultado es el mismo.

En lugar de copiar realmente los tipos de letra, también es posible crear enlaces simbólicos para, por ejemplo, poder utilizar tipos de letra con licencia disponibles en una partición Windows montada. Después de crear el enlace ha de ejecutar SuSEconfig --module fonts.

El comando SuSEconfig --module fonts activa el script /usr/sbin/fonts-config, el cual se ocupa de configurar los tipos de letra. Puede obtener información detallada sobre el funcionamiento de este script en la página del manual correspondiente (man fonts-config).

Independientemente del tipo de letra que quiera instalarse, el procedimiento siempre es el mismo. Ya se trate de tipos de letra TrueType/OpenType, de tipo 1 (PostScript) o mapas de bits, todos pueden instalarse en cualquier directorio. Únicamente los tipos de letra CID-keyed suponen una excepción, ver la Sección 11.3.3, “Tipos de letra CID-keyed”.

X.Org contiene dos sistemas de tipos de letra completamente distintos: el antiguo sistema X11 core font y el de nueva creación Xft/fontconfig. A continuación se describirán brevemente ambos sistemas.

11.3.1. Xft

Ya durante la planificación de Xft se prestó una especial atención al soporte de tipos de letra escalables (incluyendo antialiasing). Al contrario de lo que sucede con el sistema X11 core font, cuando se emplea Xft, los tipos de letra son representados por el programa que los utiliza y no por el servidor X. De este modo, el programa en cuestión accede directamente a los archivos de los tipos de letra y obtiene un control absoluto sobre todos los detalles, como por ejemplo la representación de los glifos. Por una parte, sólo así es posible lograr una representación correcta del texto en algunos idiomas. Por otra, el acceso directo a los archivos de tipo de letra resulta muy útil para insertar (embed) tipos de letra para su impresión y lograr así que el documento impreso reproduzca realmente la salida en pantalla.

En SUSE LINUX, los entornos de escritorio KDE y Gnome así como Mozilla y otras muchas aplicaciones utilizan por defecto el sistema Xft. Así pues, Xft ya es utilizado por un número considerablemente mayor de aplicaciones que el antiguo sistema X11 core font.

Xft se sirve de la librería Fontconfig para encontrar los tipos de letra y especificar de qué forma van a ser representados. El comportamiento de fontconfig se determina mediante un archivo de configuración válido en todo el sistema, /etc/fonts/fonts.conf, y otro específico para el usuario: ~/.fonts.conf. Ambos archivos de configuración de fontconfig deben empezar por

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>

y terminar en

</fontconfig>

Para añadir nuevos directorios en los que deban buscarse tipos de letra, puede insertar líneas como:

<dir>/usr/local/share/fonts/</dir>

No obstante, esto no suele ser necesario ya que el directorio de usuario ~/.fonts ya está incluido por defecto en /etc/fonts/fonts.conf. Así pues, si un usuario desea instalar tipos de letra adicionales para su uso personal, basta con que las copie en ~/.fonts.

También puede introducir reglas para definir el aspecto de los tipos de letra, por ejemplo:

<match target="font">
 <edit name="antialias" mode="assign">
  <bool>false</bool>
 </edit>
</match>

para desactivar el antialiasing para todos los tipos de letra, o bien:

<match target="font">
 <test name="family">
  <string>Luxi Mono</string>
  <string>Luxi Sans</string>
 </test>
 <edit name="antialias" mode="assign">
 <bool>false</bool>
 </edit>
</match>

para desactivarlo sólo para ciertos tipos de letra.

La mayoría de aplicaciones utilizan por defecto los nombres de tipo de letra sans-serif (o su equivalente sans), serif o monospace. Aquí no se trata de nombres de tipos de letra realmente existentes sino de nombres alias que se asignan a un tipo de letra en función del idioma seleccionado.

Todos los usuarios pueden añadir fácilmente reglas a su archivo ~/.fonts.conf con el fin de que estos nombres alias sean resueltos con determinados tipos de letra:

<alias>
 <family>sans-serif</family>
 <prefer>
  <family>FreeSans</family>
 </prefer>
</alias>
<alias>
 <family>serif</family>
 <prefer>
  <family>FreeSerif</family>
 </prefer>
</alias>
<alias>
 <family>monospace</family>
 <prefer>
  <family>FreeMono</family>
 </prefer>
</alias>

Debido a que prácticamente todas las aplicaciones utilizan estos nombres alias por defecto, las reglas son válidas para casi todo el sistema. De esta forma y con muy poco esfuerzo, puede utilizar sus tipos de letra preferidos casi siempre sin tener que configurar la opción de tipos de letra en cada programa por separado.

El comando fc-list le permite averiguar qué tipos de letra están instalados y disponibles. Así por ejemplo, el comando fc-list "" proporciona una lista de todos los tipos de letra. Si desea averiguar qué tipos de letra escalables (:outline=true) con todos los glifos necesarios para el hebreo (:lang=he) están disponibles así como su denominación (family), estilo (style), su peso o grosor (weight) y el nombre del archivo que contiene el tipo de letra, puede utilizar por ejemplo el siguiente comando:

    fc-list ":lang=he:outline=true" family style weight file

La salida de este comando podría ser la siguiente:

    
/usr/X11R6/lib/X11/fonts/truetype/FreeSansBold.ttf: FreeSans:style=Bold:weight=200
/usr/X11R6/lib/X11/fonts/truetype/FreeMonoBoldOblique.ttf: FreeMono:style=BoldOblique:weight=200
/usr/X11R6/lib/X11/fonts/truetype/FreeSerif.ttf: FreeSerif:style=Medium:weight=80
/usr/X11R6/lib/X11/fonts/truetype/FreeSerifBoldItalic.ttf: FreeSerif:style=BoldItalic:weight=200
/usr/X11R6/lib/X11/fonts/truetype/FreeSansOblique.ttf: FreeSans:style=Oblique:weight=80
/usr/X11R6/lib/X11/fonts/truetype/FreeSerifItalic.ttf: FreeSerif:style=Italic:weight=80
/usr/X11R6/lib/X11/fonts/truetype/FreeMonoOblique.ttf: FreeMono:style=Oblique:weight=80
/usr/X11R6/lib/X11/fonts/truetype/FreeMono.ttf: FreeMono:style=Medium:weight=80
/usr/X11R6/lib/X11/fonts/truetype/FreeSans.ttf: FreeSans:style=Medium:weight=80
/usr/X11R6/lib/X11/fonts/truetype/FreeSerifBold.ttf: FreeSerif:style=Bold:weight=200
/usr/X11R6/lib/X11/fonts/truetype/FreeSansBoldOblique.ttf: FreeSans:style=BoldOblique:weight=200
/usr/X11R6/lib/X11/fonts/truetype/FreeMonoBold.ttf: FreeMono:style=Bold:weight=200

Los parámetros más importantes que pueden ser consultados con el comando fc-list son los siguientes:

Tabla 11.3. Parámetros de fc-list

Parámetro

Significado y valor posible

family

Nombre de la familia de tipo de letra, por ejemplo FreeSans.

foundry

Fabricante del tipo de letra, por ejemplo urw.

style

Estilo del tipo de letra, por ejemplo Medium, Regular, Bold, Italic, Heavy...

lang

Idioma(s) que soporta el tipo de letra. Por ejemplo es para el español, ja para el japonés, zh-TW para el chino tradicional, zh-CN para el chino simplificado, etc.

weight

El grosor, por ejemplo 80 para no negrita y 200 para negrita.

slant

El grado de inclinación, normalmente 0 para no cursiva y 100 para cursiva.

file

Nombre del archivo en el que se encuentra el tipo de letra.

outline

true si se trata de un tipo de letra con contorno, false en caso contrario.

scalable

true si se trata de un tipo de letra escalable, false en caso contrario.

bitmap

true si se trata de un mapa de bit, false en caso contrario.

pixelsize

Tamaño del tipo de letra en píxeles. En el contexto de fc-list sólo tiene importancia para los mapas de bits.

11.3.2. X11 core fonts

Hoy en día, el sistema X11 core font no sólo soporta mapas de bits sino también tipos de letra escalables como las de tipo 1, TrueType/OpenType y CID-keyed. Los tipos de letra Unicode se soportan también desde hace mucho tiempo. Originalmente, el sistema X11 core font fue desarrollado en 1987 para X11R1 con el fin de procesar tipos de letra de mapas de bit monocromos. Incluso hoy puede observarse que todas las extensiones mencionadas en las líneas superiores han sido añadidas posteriormente.

Por ejemplo, los tipos de letra escalables se soportan exclusivamente sin antialiasing y sin representación de subpíxeles, y el proceso de carga de tipos de letra escalables de grandes dimensiones con glifos para muchos idiomas puede resultar muy lento. Asimismo, el uso de tipos de letra Unicode es en ocasiones también muy lento y consume más memoria.

El sistema X11 Core Font presenta muchos inconvenientes. Se puede argumentar que ha caído en desuso y que no tiene sentido continuar ampliándolo. Aunque debe seguir estando presente por razones de compatibilidad con versiones anteriores, se recomienda utilizar en la medida de lo posible el sistema Xft y fontconfig, mucho más moderno.

Como premisa para su funcionamiento, el servidor X debe conocer tanto los tipos de letras que se encuentran disponibles como su ubicación en el sistema. De ello se ocupa la variable FontPath, la cual engloba la ruta a todos los directorios de tipos de letra válidos del sistema. En cada uno de estos directorios existe un archivo llamado fonts.dir que contiene una lista de los tipos de letra disponibles en ese directorio. La variable FontPath, que es generada por el servidor X durante el inicio, busca un archivo fonts.dir válido en todas las entradas FontPath del archivo de configuración /etc/X11/xorg.conf. Dichas entradas se encuentran en la sección Files. Puede visualizar el valor actual de FontPath con el comando xset q. xset también le permite cambiar esta ruta mientras el sistema está en funcionamiento. Puede añadir una nueva ruta con xset +fp <ruta> y eliminarla con xset -fp <ruta>.

Una vez que el servidor X está en funcionamiento, es posible activar tipos de letra recién instalados en directorios ya integrados por medio del comando xset fp rehash. Este comando es ejecutado por SuSEconfig --module fonts.

Debido a que el comando xset necesita acceder al servidor X activo, este proceso sólo puede funcionar si SuSEconfig --module fonts se activa desde una shell con acceso al servidor X en ejecución. Para ello, el método más sencillo consiste en registrarse en una consola como root introduciendo el comando su y la contraseña de root. sux transmite los permisos de acceso del usuario que ha iniciado el servidor X a la root shell. Puede utilizar el comando xlsfonts para comprobar si los tipos de letra han sido instalados correctamente y si están disponibles por medio del sistema X11 core font. Este comando produce una lista de todos los tipos de letra disponibles.

SUSE LINUX utiliza por defecto locales UTF-8, por lo que normalmente será preferible emplear tipos de letra Unicode. Reconocerá a estos en la lista emitida por xlsfonts porque sus nombres terminan en iso10646-1. Así pues, para ver una lista de todos los tipos de letra Unicode disponibles, puede servirse del comando xlsfonts | grep iso10646-1. La gran mayoría de los tipos de letra Unicode disponibles en SUSE LINUX incluyen al menos todos los glifos necesarios para las lenguas europeas para las que anteriormente se utilizaba la codificación iso-8859-*.

11.3.3. Tipos de letra CID-keyed

Al contrario de lo que sucede con otros tipos de letra, en el caso de CID-keyed sí que importa en qué directorio se instala. Este ha de ser siempre /usr/share/ghostscript/Resource/CIDFont. Aunque el directorio carezca de importancia para Xft/fontconfig, Ghostscript y el sistema X11 core font requieren que se trate de este directorio en concreto.

[Tip]Sugerencia

Puede obtener información adicional sobre los tipos de letra en X11 en la URL http://www.xfree86.org/current/fonts.html.


SUSE LINUX Manual de administración 9.3