5.5. Uso de tipos en X11

Escrito por Murray Stokely.

5.5.1. Tipos Type1

Los tipos que X11 incluye por omisión no son precisamente ideales para las aplicaciones típicas. Los tipos grandes para presentaciones aparecen dentados y con un aspecto poco profesional, mientras que los tipos pequeños en Netscape® son prácticamente ilegibles. Sin embargo hay varios tipos de letra libres Type1 de alta calidad (PostScript®) que se pueden usar con X11. Por ejemplo los tipos URW (x11-fonts/urwfonts) incluyen una versión de alta calidad de los tipos estándar Type 1 (Times Roman®, (Helvetica®, (Palatino®, y muchas otras). Las Freefonts (x11-fonts/freefonts ) incluyen muchas más pero la mayoría están pensadas para usarse con software gráfico como el Gimp y no son lo bastante completos para usarse como tipos de pantalla. Además X11 se puede configurar para usar tipos TrueType® con un esfuerzo mínimo. Para más detalles sobre esto consulte la página del manual X(7) o la sección de tipos TrueType.

Para instalar los tipos Type1 desde los ports ejecute las siguientes órdenes:

# cd /usr/ports/x11-fonts/urwfonts
# make install clean

Proceda del mismo modo con los FreeFonts o cualesquiera otras. Para que el servidor X las detecte añada la siguiente línea al fichero de configuración de X (/etc/X11/xorg.conf:

FontPath "/usr/X11R6/lib/X11/fonts/URW/"

o bien desde una emulación de terminal durante una sesión X ejecute

% xset fp+ /usr/X11R6/lib/X11/fonts/URW
% xset fp rehash

Esto funcionará hasta que la sesión X se cierre a menos que lo añada a su fichero de inicio (~/.xinitrc en el caso de una sesión startx normal o ~/.xsession si hace login desde un gestor gráfico como XDM). Una tercera forma sería usando el nuevo fichero /usr/X11R6/etc/fonts/local.conf: consulte la sección de anti-aliasing.

5.5.2. Tipos TrueType®

Xorg se diseñó pensando en que utilizara tipos TrueType. Hay dos módulos diferentes que pueden habilitar esta opción. El módulo freetype se usa en en este ejemplo porque es más consistente con el resto de «back-ends» de representación. Para habilitar el módulo freetype debe añadir la siguiente línea a la sección "Module" del fichero /etc/X11/xorg.conf.

Load "freetype"

Ahora haga un directorio para los tipos TrueType (por ejemplo /usr/X11R6/lib/X11/fonts/TrueType) y copie todos los tipos TrueType en este directorio. Recuerde que los tipos TrueType no se pueden coger directamente de un Macintosh®; tienen que estar en formato UNIX®/MS-DOS®/Windows® para usarlas con X11. Una vez que los ficheros se hayan copiado en este directorio use ttmkfdir para crear un fichero fonts.dir, para que el representador de tipos de X sepa que se han instalado estos ficheros nuevos. ttmkfdir forma parte de la Colección de Ports de FreeBSD: x11-fonts/ttmkfdir.

# cd /usr/local/lib/X11/fonts/TrueType
# ttmkfdir -o fonts.dir

Ahora añada el directorio TrueType a la ruta de tipos. Esto es igual que lo anteriormente descrito sobre los tipos Type1. Ejecute:

% xset fp+ /usr/local/lib/X11/fonts/TrueType
% xset fp rehash

o añada una línea FontPath en su /etc/X11/xorg.conf.

Esto es todo. Ahora Netscape, Gimp, StarOffice y el resto de aplicaciones X debieran reconocer los tipos TrueType instalados. Los tipos muy pequeños (como el texto en una pantalla con alta resolución viendo una página web) y los tipos muy grandes (Dentro de StarOffice) se verán muchísimo mejor ahora.

5.5.3. Tipos Anti-Aliasing

Actualizado por Joe Marcus Clarke.

Los «tipos anti-aliasing» han estado en X11 desde XFree86 4.0.2. Aunque la configuración de los tipos era incómoda antes de XFree86 4.3.0. A partir de XFree86 4.3.0 todos los tipos de X11 que se encuentren en /usr/local/lib/X11/fonts/ y ~/.fonts/ están disponibles automáticamente para aplicaciones que soporten Xft. No todas las aplicaciones soportan Xft pero muchas ya tienen soporte Xft. Ejemplos de aplicaciones que lo soportan son Qt 2.3 o superior (el «toolkit» del escritorio KDE), GTK+ 2.0 o superior (el «toolkit» del escritorio GNOME ) y Mozilla 1.2 o superior.

Para controlar qué tipos «anti-aliasing» o configurar las propiedades «anti-aliasing» crée (o edite, si ya existe) el fichero /usr/local/etc/fonts/local.conf. Se pueden modificar diversas opciones avanzadas del sistema de tipos Xft usando este fichero; esta sección describe solo algunas posibilidades simples. Para más detalles consulte fonts-conf(5).

Este fichero tiene que estar en formato XML. Preste especial atención a las mayúsculas y minúsculas y asegúrese de que las etiquetas están cerradas correctamente. El fichero empieza con la típica cabecera XML seguida de una definición DOCTYPE y después la etiqueta <fontconfig>:


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

Como se ha dicho antes todos los tipos en /usr/local/lib/X11/fonts/ y en ~/.fonts/ están ya disponibles para las aplicaciones que soporten Xft. Si usted desea añadir otro directorio además de estos dos árboles de directorios añada una línea similar a esta en el fichero /usr/local/etc/fonts/local.conf:

<dir>/ruta/de/mis/tipos</dir>

Después de añadir los nuevos tipos, y en especial los nuevos directorios de tipos, debe ejecutar la siguiente orden para reconstruir la caché de tipos:

# fc-cache -f

Los «tipos anti-aliasing» hacen los bordes ligeramente borrosos, lo que hace que el texto muy pequeño sea más legible y elimina los escalones del texto grande pero puede causar fatiga visual aplicada al texto normal. Para excluir los tipos de menos de 14 puntos del «anti-aliasing» incluya las siguientes líneas:

        <match target="font">
            <test name="size" compare="less">
                <double>14</double>
            </test>
            <edit name="antialias" mode="assign">
                <bool>false</bool>
            </edit>
        </match>
        <match target="font">
            <test name="pixelsize" compare="less" qual="any">
                <double>14</double>
            </test>
            <edit mode="assign" name="antialias">
                <bool>false</bool>
            </edit>
        </match>

El espacio entre algunos tipos también podría ser inapropiado con «anti-aliasing», por ejemplo en el caso de KDE. Una posible solución para esto es forzar que el espacio entre los tipos sea 100. Añada las siguientes líneas:

       <match target="pattern" name="family">
             <test qual="any" name="family">
                 <string>fixed</string>
             </test>
             <edit name="family" mode="assign">
                 <string>mono</string>
             </edit>
          </match>
          <match target="pattern" name="family">
              <test qual="any" name="family">
                  <string>console</string>
              </test>
              <edit name="family" mode="assign">
                  <string>mono</string>
              </edit>
          </match>

(Esto selecciona los otros nombres comunes para «tipos fixed» como "mono"); añada también lo siguiente:

         <match target="pattern" name="family">
             <test qual="any" name="family">
                 <string>mono</string>
             </test>
             <edit name="spacing" mode="assign">
                 <int>100</int>
             </edit>
         </match>     

Algunos tipos, como Helvetica, podrían tener problemas con «anti-aliasing». Normalmente esto se manifiesta en tipos que parecen cortados verticalmente por la mitad. En el peor de los casos podría causar que el funcionamiento de aplicaciones como Mozilla se interrumpiese. Para evitar esto puede añadir lo siguiente a local.conf:

         <match target="pattern" name="family">
             <test qual="any" name="family">
                 <string>Helvetica</string>
             </test>
             <edit name="family" mode="assign">
                 <string>sans-serif</string>
             </edit>
         </match>       

Una vez que haya terminado de editar local.conf asegúrese de que el fichero termina con la etiqueta </fontconfig>. Si no lo hace los cambios que haya hecho serán ignorados.

Los tipos por omisión que vienen con X11 no son los ideales para «anti-aliasing». Puede encontrar otros mucho mejores en el port x11-fonts/bitstream-vera. Este port instalará el fichero /usr/local/etc/fonts/local.conf si aun no se ha creado. Si el fichero existe el port creara el fichero /usr/local/etc/fonts/local.conf-vera. Combine el contenido de este fichero con /usr/local/etc/fonts/local.conf y los tipos Bitstream reemplazarán automáticamente los tipos por defecto por X11 Serif, Sans Serif y Monospaced.

Por si esto fuera poco los usuarios pueden añadir sus propios ajustes mediante sus ficheros personales .fonts.conf. Los usuarios que deseen hacerlo deberán crear un fichero ~/.fonts.conf. Este fichero tiene que estar también en formato XML.

Un último punto: con pantallas LCD sería deseable un muestreo de subpixel, que consiste en configurar los componentes (separados horizontalmente) rojo, verde y azul para mejorar la resolución horizontal; los resultados pueden ser impresionantes. Para habilitarlo añada la siguiente línea a local.conf:


        <match target="font">
            <test qual="all" name="rgba">
                <const>unknown</const>
            </test>
            <edit name="rgba" mode="assign">
                <const>rgb</const>
            </edit>
        </match>
     

Nota: Dependiendo del tipo de pantalla rgb podría ser bgr o vrgb o vbgr: experimente y elija cuál de ellos funciona mejor.

Una vez concluido el proceso «anti-aliasing» se debería activar la próxima vez que arranque X, aunque los programas necesitan saber como utilizarlo. En este momento el «toolkit» Qt es capaz de hacerlo, así que KDE entero puede usar «tipos anti-aliasing». GTK+ y GNOME también pueden usar «tipos anti-aliasing» mediante el «applet» «Font» (consulte Sección 5.7.1.3 para más detalle). Por omisión Mozilla 1.2 y versiones siguientes usarán automáticamente «tipos anti-aliasing». Para deshabilitarlos recompile Mozilla usando el parámetro -DWITHOUT_XFT.

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>.