6.1.5.7.2.- Configurar las fuentes básicas de X

Las fuentes básicas (core font) son las que gestionan directamente X. Debemos hacer dos cosas a la hora de configurar las fuentes:

  1. Preparar un directorio de fuentes donde se guarden las fuentes.
  2. Añadir dicho directorio a la ruta de fuentes de X.

Preparando un directorio de fuentes

El primer paso que debemos hacer para instalar fuentes es preparar un directorio en donde las almacenaremos. XFree86 las guarda sus fuentes por defecto en subdirectorios de /usr/X11R6/lib/X11/fonts, pero en X.org-X11 esto cambia a /usr/share/fonts o /usr/share/X11/fonts. En ambos casos, si va a añadir fuentes descargadas desde internet o desde un CD-ROM de fuentes, se aconseja que guarde estas fuentes en algún otro sitio, como /opt/fonts o /usr/local/fonts. Se recomienda crear subdirectorios independientes para las fuentes de distintos formatos o de orígenes diferentes.

TrueTypeSi instalamos fuentes Type 1, Linux necesitará ficheros de fuentes con nombres terminados en .pfa o .pfb; estos ficheros son los que contienen los datos reales de las fuentes (estos tipos de ficheros almacenan los datos en formatos ligeramente distintos, pero ambos son equivalentes). Las fuentes TrueType vienen como ficheros .ttf siendo lo único necesario en Linux.

ejemplo_1_pfa

Ejemplo de archivo .pfa en Ubuntu 16.04

un_apunte

 Una vez copiada las fuentes a un directorio, deberá preparar un fichero de resumen que describa las fuentes. Este fichero se llama font.dir y comienza con una línea que especifica el número de fuentes que se describen.

directorio_fuentes_ubuntu

Directorio de las fuentes en Ubuntu 16.04

Afortunadamente, no tenemos que crear el fichero de fuentes manualmente; hay programas que lo hacen automáticamente. En XFree 4.3 y posteriores y en X.org-X11, el modo más sencillo de realizar esta tarea es utilizar mkfontscale y mkfontdir:

  • mkfontscale.- Lee todas las fuentes del directorio actual y crea un fichero llamado fonts.scale, parecido a fonts.file pero describiendo solo las fuentes escalables.
  • mkfontdir.- Combina el fichero fonts.scale con el fichero fonts.file, creando éste si no existe ya.

Podemos utilizar algunos programas existente en internet que realizan esta tarea. Uno de ellos es ttmkfdir, que crea un fichero fonts.dir con descripciones de las fuentes TrueType, mientras que typelinst realiza la misma tarea para las fuentes Type1. Es preferible tener el programa mkfontscale, puesto que puede gestionar ambos tipos de fuentes; si nuestro equipo dispone de una distribución antigua que carece de dicho programa o si éste no realiza una labor satisfactoria, puede probar con uno de estos programas alternativos.

Añadir fuentes a la ruta de fuentes de X

Cuando tengamos las fuentes configuradas en un directorio y creado el fichero fonts.dir que las describe, deberá añadir las fuentes a la ruta de fuentes de X. esto lo haremos editando la sección Files del fichero XF86Config o xorg.conf:

X_fichero_xorg

La cadena :unscaled de la primera entrada del ejemplo le indica a X que utilice las fuentes del mapa de bits de este directorio sólo si estas coinciden exactamente con el tamaño de fuente solicitada. Sin esta cadena, X intentará escalar las fuentes de mapa de bits de un directorio de fuentes (con resultados no deseados). Normalmente, los directorios de mapa de bits figuran dos veces en la lista: una cerca del comienzo y la otra cerca del final de la lista pero sin ésta. Esto resulta de una rápida visualización de las fuentes de mapa de bits coincidentes, seguida de las fuentes escalables coincidentes y de las fuentes de mapa de bits redimensionadas.

notaSi su sección Files contiene líneas FontPath que hacen referencia a unix:/7100 o unix:/-1 pero que no listan los directorios convencionales, consulte con la sección sobre la configuración de un servidor de fuentes; su sistema está configurado para obtener sus fuentes básicas de un servidor de fuentes de X. Si se da este caso, se recomienda modificar la configuración de su servidor de fuentes en lugar de cambiar directamente las fuentes básicas de X, aunque puede añadir directorios de fuentes para hacer que X utilice el servidor de fuentes a la par que gestiona directamente sus nuevas fuentes. Si la configuración de su servidor de X carece de una sección Files, utilizará una ruta fija por defecto. Podemos añadir nuestra propia sección Files completa para agregar muevas rutas de fuentes.

 Para añadir un nuevo directorio de fuentes a la ruta de fuentes, duplicamos una de las líneas FontPath existente y cambiamos la especificación del directorio para que apunte a su nuevo directorio. El orden de estos directorios tiene mucho significado; al comparar los nombres de las fuentes, X prueba una vez con cada directorio, por lo que si existen dos directorios con el mismo nombre, tendrá prioridad la primera. Por lo tanto, si queremos que las nuevas fuentes invaliden las existentes, coloque el nuevo directorio al principio de la lista; si desea que tengan prioridad las fuentes existentes, añada su directorio al final de la lista.

Cuando haya añadido su directorio de fuentes a la ruta de fuentes de X, debería probar la configuración. El modo más fiable de hacerlo es cerrar X y reiniciarlo. Hay un método más rápido, aunque nos puede generar algún error consiste en añadir la ruta de fuentes a un sistema en ejecución utilizando el programa xset:

fuentes_X_1

 

El resultado es que deberíamos ser capaces de utilizar las nuevas fuentes (después de reiniciar todos los programas que debería utilizar las nuevas fuentes). Podemos hacer una prueba rápida con xfontsel,  que le permite escoger y mostrar una fuente básica de X, para que pueda cerciorarse de que la fuente está disponible y que se ve como esperaba.

fuentes_xfontsel

 

 Configurar un servidor de fuentes

Antes de que apareciera el XFree86 4.0, varias distribuciones de Linux comenzaron a utilizar los servidores de fuentes compatibles con TrueType para proporcionar dichas fuentes. Algunos sistemas poseen servidores de fuentes, pero esta práctica ya no está en uso.

Los servidores de fuentes son una manera cómoda de distribuir fuentes a varios ordenadores desde una ubicación central (actualmente disponemos en el mercado de «Nubes» portátiles que hacen de servidor de almacenamiento en nuestra propia nube). Esto nos puede ahorrar mucho tiempo si deseamos añadir fuentes en bastantes ordenadores; solamente tendremos que configurarla para utilizar el servidor y sólo tendrá que tocar la configuración de fuentes de éste. Para utilizar un servidor de fuentes, éste debe figurar en la ruta de fuentes de X.

fuentes_section

Si su sistema está configurado para utilizar un servidor de fuentes, no tendremos que modificar la configuración de X para añadir o borrar fuentes ya que solamente debemos modificar la configuración del servidor (aún podría modificar la configuración de fuentes de X directamente, pero por una cuestión de claridad, sería preferible gestionar todas las fuentes locales desde un fichero de configuración).

Para añadir fuentes a un servidor de fuentes primero debemos tener instaladas las fuentes del sistema, como vimos anteriormente. Después debería modificar el fichero de configuración del servidor de fuentes, /etc/X11/fs/config. En lugar de las series de líneas FontPath, como en el fichero de configuración de X, la configuración del servidor de fuentes lista la ruta de fuentes empleando la palabra clave catalogue con lista delimitada por comas:

fuente_catalogue

La lista catalogue puede abarcar una línea o varias líneas pero separadas por comas, la última línea no tiene coma por eso de ser la última, podemos añadir sus nuevos directorios de fuentes en cualquier lugar de la lista.

Cuando hayamos guardados sus cambios, debemos reiniciar el servidor de fuentes. Normalmente esto se hace mediante scripts de inicio de SysV (que ya vimos en: Los scripts de inicio SysV):

fonts_restart

Llegados a este punto, debemos reiniciar X o escribir xset fp rehash para hacer que X vuelva a examinar su ruta de fuentes, incluyendo las fuentes distribuidas a través del servidor de fuentes.

Actualmente se proponen un sistema de fuentes completamente diferente; Xft. Podemos añadir las mismas fuentes como fuentes básicas de X y como fuentes de Xft, aunque la configuración de Xft precisa que esto se haga de otra manera.

Configurar las fuentes de Xft

Las fuentes básicas junto con las fuentes distribuidas mediante un servidor de fuentes tienen algunos inconvenientes importantes:

  • La visualización entre la pantalla y la impresora no resulta fácil ya que las hace poco adecuadas desde un punto de vista del procesamiento de texto o para otras aplicaciones que generen salida impresa.
  • Están basadas en el servidor, esto significa que las aplicaciones a veces no sean capaces de acceder directamente a los ficheros de las fuente, porque estas pueden estar almacenadas en un ordenador distinto al de la aplicación.
  • Proporciona un soporte limitado o nulo al interespaciado (kerning) y otras características tipográficas avanzadas. Una vez más, supone un problema para los procesadores de textos y otros programas que deban generar salida impresa.
  • No incluyen el suavizado de fuentes (o anti-aliasing). Esta tecnología utiliza píxeles grises (en lugar de blancos o negros) junto con curvas para crear la ilusión de una mayor resolución que la que produce cuando se visualiza.

Estos problemas están muy enquistados en el sistema de fuentes básico de X, por lo que los desarrolladores han decidido saltárselo. Como resultado tenemos el sistema de fuentes Xft, que se basa en bibliotecas FreeType (www.freetype.org), una biblioteca de código abierto que renderiza fuentes TrueType y Type 1. El sistema Xft  está basado en el cliente, eso significa que las aplicaciones acceden a los ficheros de fuentes del ordenador en el que se están ejecutando. También Xft admite el suavizado de fuentes y otras funciones avanzadas, resultando una gran mejora a nivel global para el soporte de fuentes. Sin embargo, el precio es que Linux ahora tiene dos sistemas de fuentes:

  1. Fuentes básicas de X
  2. Fuentes de Xft

Por suerte, podemos compartir los mismos directorios de fuentes para ambos sistemas. Si tenemos preparado un sistema de fuentes como describimos anteriormente, se puede añadir a Xft. Cargue el fichero /etc/fonts/local.conf en un editor de texto. Busque en el editor las líneas que tengan la siguiente forma:

<dir>/fuente/directorio</dir>

Si aparecen líneas como ésta, duplique una de ellas y cambie el duplicado para que apunte a su nuevo directorio de fuentes. Si no existieran líneas de este tipo, crearemos una justo antes de la línea </fontconfig>. Miraremos de que no insertamos la especificación del nuevo directorio de fuentes dentro de un bloque de comentarios que comienza con <!-- y terminan con -->.

 fuentes_truco

Una vez que se ha realizado el cambio, escriba fc-cache como root. Este comando hace que Xft recorra sus directorios de fuentes y cree ficheros de índices. Estos ficheros se asemejan a font.dir, pero con diferentes detalles. Si cometemos un error al dar este paso podrá seguir accediendo a estas fuentes, pero la lista de fuentes estarán contenidas en la caché de los ficheros de Xft privada de los usuarios. Generar estos ficheros requiere algún tiempo, lo que repercutirá en el rendimiento.

Cuando vayamos a probar sus fuentes Xft, utilice cualquier programa que trabaje con Xft, como es el caso de la mayoría de los programas modernos de Linux basados en X, por lo que bastará con que abra un editor de texto GUI, procesador de texto, navegador Web u otra herramienta que nos permita ajustar las fuentes.