Preguntas y respuestas sobre las fuentes en Linux y X


¿Que son las FreeType? ¿Para qué sirven? ¿Y el Xft? ¿Que es el Xft2?
¿Cuál es la diferencia entre el XF86Config y el XftConfig? ¿Porqué tanto follón?
¿Porqué RedHat8 tiene la configuración de fuentes distintas? ¿Y el fontconfig? ¿Quién hace el antialiasing? ¿De donde vengo? ¿A donde voy?

La mayoría de esas preguntas están contestadas en el artículo…

¿Qué son las FreeType2?
Estas librerías, actualmente en la versión 2
(libfreetype6 en Debian), tienen por función principal
“dibujar” las fuentes con una buena calidad. Es
compatible con las mayoría de los formatos utilizados: Type1,
TrueType, CID, OpenType, etc.
También son capaces de hacer antialiasing, subpixeling
y ejecutar el código de hinting (está basado en
un lenguaje de pila con unas 200 operaciones) que se suele usar en
las TrueType para mejorar la calidad de las fuentes a distintas
resoluciones.
Para poder usar las FreeType en las X, hay que incluir el Load
“freetype” en el XF86Config.

¿Qué son las Xft?
Xft, o Xft1, es la implementación dentro del servidor X
para dibujar las fuentes. Es bastante reciente y aprovecha las
extensiones render del servidor para usar las aceleraciones
gráficas de las tarjetas a la hora de dibujar las fuentes.

Las Xft están implementadas sobre las FreeType2, de hecho
en Debian son necesarias para instalar las xlibs.

¿Para que sirve el fichero /etc/X11/XftConfig?

Es el fichero de configuración de las FreeType, y usado,
por supuesto, por las Xft. Más adelante veremos que en este
fichero no sólo de indica el “path” de las fuentes,
sino que se pueden definir alias para reemplazar unas fuentes por
otras.
¿Como hago “visibles” las fuentes al Xft?
Se hace con la palabra “dir” y luego el directori
donde están las fuentes. Por ejemplo de la siguiente forma:

dir “/usr/share/fonts/truetype”
dir “/usr/share/fonts/truetype/xfree86-nonfree”
dir “/usr/share/fonts/truetype/openoffice”

¿Porqué hay que especificar las fuentes en el
XF86Config y el XftConfig?
Si el mundo fuese perfecto (o todos los programas fuesen KDE:-),
se usarían siempre las Xft para las fuentes, por lo que no
haría falta indicar el “path” de las fuentes en dos
lugares distintos.

Como el mundo es imperfecto, hay que prevenirse y evitar problemas
indicando en ambos ficheros de configuración.

Por ejemplo el Gimp o el XMMS, y la mayoría de programas X
“antiguos”, no usan las Xft, por lo que las fuentes que
verán son las especificadas en el “path” de las X
(en XF86Config).

Por el contrario, los programas basados en Qt3 (como los KDE) usan
las Xft. Creo que todos los programas Gnome2 también usan las
Xft.

¿Que fuentes poner en el XF86Config y cuales en el
XftConfig?
En el XftConfig debemos poner todas aquellas fuentes que deseemos
ver con antialiasing. Si usamos antialiasing en el escritorio, pues
todas… al menos las que se pueden hacer antialiasing: TrueType y
Type1.
Como regla general, sólo pongo las TrueType (que son las de
mejor calidad para el antialiasing) en el XftConfig.

En el XF86Config pongo las mismas fuentes y todas las demás,
T
rueType o no que quiera usar en los programas no compatibles con
Xft.

¿Porqué en KDE algunas fuentes no me salen con
antialiasing, especialmente en las páginas que se especifica
en el <FONT
FACE=Helvetica…> o en algunos menús,
por ejemplo de OpenOffice?
Je! Tú también te has dado cuenta.

Porque las Xft, al menos con el KDE, si encuentran dicha familia
en otras fuentes, aunque no sean TrueType, las usa, aunque hayamos
indicado un alias (match any family == “Helvetica”
edit family += “Arial”;) en el XftConfig.
La solución es desinstalarlas (xfonts-100dpi o
xfonts-100dpi-transcoded para las Helvetica, Times,
Courier…) o quitarlas del “path”
(/usr/X11R6/lib/X11/fonts/100dpi/ en Debian).

¿Cómo indico en el XftConfig para que no se haga
antialiasing de las fuentes de tamaño pequeño?
Por ejemplo:

match any size < 12 edit antialias = false;
# Lo mismo pero para KDE (Konqueror/KHTML)
match any pixelsize > 2 any pixelsize < 14 edit antialias = false;

¿Y cómo indico que me reemplace fuentes? ¿Por
ejemplo “Arial” por “Helvetica” y “Times
New Roman” por “Times”?

match any family == “Times” edit family += “Times New Roman”;
match any family == “Helvetica” edit family += “Arial”;
match any family == “Courier” edit family += “Courier New”;

¿Como soluciono algunas fuentes que se ven muy mal en el
Konsole cuando tengo el antialiasing habilitado?
¿También te ha pasado? Yo especifico lo siguiente en
el XftConfig:

match any family == “mono” edit spacing = “mono”;
match any family == “fixed” edit family =+ “mono”;
match any family == “console” edit family =+ “mono”;

Tengo un LCD ¿como habilito el antialias de subpixels que
me han dicho queda más bonito?
Agregando la siguiente línea al XftConfig:
match edit rgba=rgb;
Dependiendo de tu pantalla, puede ser rgb,.bgr, vrgb, o vbgr. Prueba
el que mejor te vaya (no te olvides de reinicias las X cada vez, pero
es muy raro que veas diferencias, al menos yo noto muy poca).

¿Qué son las Xft2?
Como ya habéis visto, es un verdadero follóny dolor
de cabeza configurar cada detalle, casi por duplicado y modificar los
ficheros para cada fuente nueva que se instala en otro directorio que
no estaba en el “path”, además de otros problemas
del protocolo para hacer antialiasing entre un clinete y servidor a
través de la red.

Por todo ello, en muy pocas palabras, se desarollaron las Xft1.1,
que hacían uso de las fontconfig para ocultar estos
problemas, pero no fue suficiente
Así nacieron las Xft2, que sí son totalmente
transparentes de los detalles de configuración. Por fin
tendremos un sistema de fuentes comparable o mejor al de Windows y
MacOS (RedHat 8.0 ya lo tiene).

¿Que es el fontconfig?
El fontconfig es un conjunto de programas bastante completo que
permite auto detectar nuevas fuentes, configurarlas interactivamente,
seleccionar mejor las fuentes dependiendo de los idiomas y locales…

Usa un fichero de configuración muy básico basado en
XML. La combinación de fontconfig y Xft2 hace que las
configuración de las fuentes en Linux/Unix deje de ser un
“pain in the ass” como era hasta ahora.

¿Que es lo que tenemos en Debian ahora mismo? ¿y en
Red Hat8?
En Debian todavía
tenemos
las Xft, de allí que tengamos que tocar el
XftConfig cada vez, pero ya se aproximan las Xft2. Por el contrario,
RedHat 8.0 ya las tiene implemetadas.

Finalmente, ¿qué es el xfs? ¿para qué
sirve?
El xfs es un servidor de fuentes de X, muy usado anteriormente,
cuando no teníamos las FreeType, para poder usar fuentes
TrueType.

Ahora no hace falta para nada, pero por esas cosas raras, RedHat
sigue instalando el xfs. Si lo tenéis, podéis seguir
las instrucciones de este artículo y desinstalar el xfs.

¿Cuál es tu configuración de fuentes en el
XFConfig y XftConfig?
XF86Config
Section “Files”
RgbPath “/usr/X11R6/lib/X11/rgb”
FontPath “/usr/share/fonts/truetype”
FontPath “/usr/share/fonts/truetype/openoffice”
FontPath “/usr/lib/X11/fonts/misc/:unscaled”
EndSection

XftConfig
dir “/usr/share/fonts/truetype”
dir “/usr/share/fonts/truetype/xfree86-nonfree”
dir “/usr/share/fonts/truetype/openoffice”

match edit rgba=rgb;

match any size < 12
edit antialias = false;

match any pixelsize > 2
any pixelsize < 14
edit antialias = false;

match any size > 10
all weight == “bold”
edit antialias = true;

match any family == “mono” edit spacing = “mono”;
match any family == “fixed” edit family =+ “mono”;
match any family == “console” edit family =+ “mono”;

match any family == “serif” edit family += “Times New Roman”;
match any family == “sans” edit family += “Arial”;

match any family == “Times” edit family += “Times New Roman”;
match any family == “Lucida” edit family += “Arial”;
match any family == “Helvetica” edit family += “Arial”;
match any family == “Geneva” edit family += “Arial”;
match any family == “Courier” edit family += “Courier New”;
#
# TrueType font aliases
#
match any family == “Comic Sans” edit family += “Comic Sans MS”;
match any family == “Comic Sans MS” edit family =+ “Comic Sans”;
match any family == “Trebuchet” edit family += “Trebuchet MS”;
match any family == “Trebuchet MS” edit family =+ “Trebuchet”;
match any family == “Monotype” edit family =+ “Monotype.com”;
match any family == “Andale Mono” edit family += “Monotype.com”;
match any family == “Monotype.com” edit family =+ “Andale Mono”;
match any family == “Andale Mono” edit family += “Monotype.com”;
match any family == “Monotype.com” edit family =+ “Andale Mono”;

#
# Check users config file
#
includeif “~/.xftconfig”

¿Donde hay más información?

Mi reloj ha quedado con una hora adelantada después del
cambio de horario. ¿Como lo arreglo?
Seguramente tenías la zona horaria mal.

Ejecuta tzconfig o tzsetup para cambiar
la zona (Europa/Madrid, por ejemplo, para España), luego pon
la hora correcta, si hace falta, con el date MMDDhhmmAA
(como usuario root).

¿Que tiene que ver la pregunta anterior con fuentes y X?
Absolutamente nada, pero como hoy hemos cambiado de zona horaria,
había varios que me lo preguntaban, y otros que ya pensaban
que les fallaba el ntpd. 🙂

Este post ha sido traido de forma automatica desde https://web.archive.org/web/20140625063149/http:/bulma.net/body.phtml?nIdNoticia=1572 por un robot nigromante, si crees que puede mejorarse, por favor, contactanos.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.