Fontconfig
La biblioteca fontconfig (media-libs/fontconfig) está pensada para ofrecer una selección y configuracion uniforme de tipografías entre todas las aplicaciones GUI. Aunque es algo común que el entorno de escritorio ofrezca sus propias tipografías y utilidades de configuración, fontconfig es la librería que funciona por debajo.
Instalación
Cuando se necesite fontconfig seguramente ya estará instalada. En caso contrario, asegúrese de configurar el subsistema gráfico (esto es, X o Wayland) y el entorno de escritorio de forma adecuada.
Ajustes USE
fontconfig no admite ningún ajuste USE.
USE flags for media-libs/fontconfig A library for configuring and customizing font access
doc
|
Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally |
nls
|
Add Native Language Support (using gettext - GNU locale utilities) |
test
|
Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently) |
Configuración
¡Los cambios realizados a los archivos de fontconfig se reflejarán únicamente en aquéllas aplicaciones que se hayan arrancado después del cambio!
Generico
fontconfig utiliza archivos XML en el direcotrio /etc/fonts/ para generar su configuración interna. Por defecto analiza /etc/fonts/fonts.conf (¡Los usuaios no deben editar este archivo!) el cual define algunos valores por defecto seguros y normalmente contiene código para analizar también el contenido de /etc/fonts/conf.d/. Además está el directorio /etc/fonts/conf.avail/ que contiene algunos ficheros de configuración que cubren algún aspecto de fontconfig. Es una decisión personal crear enlaces simbólicos de los ficheros necesarios a /etc/fonts/conf.d/. Estos ficheros se lanzan en un orden de acuerdo a su nombre. Debido a esto sus nombres comienzan con un número de dos dígitos en el que el primer dígito (las decenas) a lo que afecta el fichero (lo que se llama clase).
Específico de Gentoo
Gentoo incluye un módulo eselect (eselect fontconfig) que hace exactamente lo descrito de forma genérica, gestiona los enlaces simbólicos de ficheros en /etc/fonts/conf.avail/ añadiéndolos o eliminándolos del directorio /etc/fonts/conf.d/. Por razones obvias el cambio de la configuración que afecta a todo el sistema requiere los permisos apropiados.
Las siguientes subsecciones explica cómo tratar con el módulo eselect de fontconfig.
Listar los ficheros disponibles
La orden list muestra los ficheros de fontconfig disponibles y marca los habilitados con un asterisco (*
).
root #
eselect fontconfig list
Archivos .conf disponibles en fontconfig (* está habilitado): [1] 10-autohint.conf * [2] 10-no-sub-pixel.conf [3] 10-sub-pixel-bgr.conf [4] 10-sub-pixel-rgb.conf [5] 10-sub-pixel-vbgr.conf [6] 10-sub-pixel-vrgb.conf [7] 10-unhinted.conf [8] 11-lcdfilter-default.conf [9] 11-lcdfilter-legacy.conf ...
Distintos sistemas tiene distintos ficheros en fonts.avail de modo que la salida será diferente. Nunca se debe utilizar un número de la lista de otra tipografía a ciegas (como entradas de blogs o artículos de wikis).
Habilitar un archivo
Los ficheros se pueden habilitar bien usando el nombre del archivo, bien usando el número entre corchetes. Ambas hacen lo mismo:
root #
eselect fontconfig enable 10-sub-pixel-rgb.conf
root #
eselect fontconfig enable 4
Deshabilitar un archivo
Los archivos se pueden deshabilitar del mismo modo:
root #
eselect fontconfig disable 10-sub-pixel-rgb.conf
root #
eselect fontconfig disable 4
Configuración personalizada para todo el sistema
Para crear un fichero de fontconfig personalizado que afecte a todo el sistema, se debe habilitar 51-local.conf y crear /etc/fonts/local.conf (esto es un fichero XML).
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<alias>
<family>sans-serif</family>
<prefer>
<family>Ubuntu</family>
<family>TakaoPGothic</family>
<family>Droid Sans</family>
</prefer>
<default><family>DejaVu Sans</family></default>
</alias>
</fontconfig>
Para ser claros, esto indica que cuando se trata de tipografías sin serfia, preferimos utilizar las tipografías Ubuntu, TakaoPGothic o Droid Sans (en ese orden) antes que DejaVu Sans (que se puede utiizar como la opción por defecto cuando sea necesario). Obviamente se pueden elegir otras alternativas.
Configuración para una cuenta de usuario
Para crear ficheros fontconfig para una cuenta de usuario, se debe habilitar 50-user.conf (que podría estar ya habilitado por defecto), y hacer que los usuarios finales utilicen el fichero ~/.config/fontconfig/fonts.conf. Este fichero tiene el mismo formato XML que local.conf.
Esta es una forma de cómo un entorno de escritorio podría intentar afectar al renderizado de las tipografías. Es recomendable deshabilitarlo cuando se configure para estar seguro de que lo que se muestra es realmente resultado de una configuración para tolo el sistema. Al deshabilitarlo también hace que el renderizado de la tipografía sea más uniforme al cambiar de una cuenta de usuario a otra.
El fichero utilizado anteriormente ~/.fonts.conf es ahora obsoleto en favor de la localización basada en $XDG_CONFIG_HOME. Esta variable apunta por defecto a ~/.config.
Comprobar la configuración
Se debe comprobar el reemplazo de la tipografía por defecto, por ejemplo Arial, para ello se puede teclear:
user $
fc-match Arial
Antialiasing, hinting y renderizado subpíxel
Se pueden ajustar también los aspectos de renderización. En las siguientes secciones, se ajustan las características Anti-aliasing, Hinting y Sub-pixel rendering.
Característica | Descripción |
---|---|
Anti-aliasing | está activado por defecto y hace que la tipografía tenga un aspecto más suave. |
Hinting | es un intento de alcanzar un bajo número de píxeles por unidad de área de las pantallas actuales. Un ajuste correcto hace que los caracteres tengan un aspecto más crujiente pero debido a que las métricas de las tipografías no se cambian (y no deberían cambiar) afecta a cómo se muestra todo el texto renderizado. |
Renderizado de Sub-pixel | se basa en el hecho de que la matriz LCD tiene tres primarios para triplicar de forma efectiva al resolución del texto pero puede hacer que los caracteres no aparezcan completamente negros. Para combatir esto, lcdfilter se puede utilizar con renderizado de subpixel (está disponible para fontconfig actuales) pero puede hacer que los caracteres aparezcan demasiado difuminados. Al final esto depende completamente de cómo le gusta a las personas ver su texto. |
Forzar el hinting
El comportamiento por defecto de fontconfig en lo que a hinting se refiere no dispone de mucha documentación, sin embargo, se puede realizar de forma subóptima deterministamente definiendo un ajuste por defecto para todo el sistema.
- En primer lugar se debe habilitar /etc/fonts/local.conf
- Editar el archivo local.conf para incluir hinting completo por defecto
Este extracto de local.conf habilita completamente el hinting:
<match target="font">
<edit mode="assign" name="hintstyle">
<const>hintfull</const>
</edit>
</match>
La mayoría de las tipografías tienen mejor aspecto usando hinting completo, sin embargo otras necesitan ligeras o más raras opciones de hinting a configurar. Algunas tipografías por alguna razón u otra siempre aparecerán con un aspecto antiestético.
Utilizar renderizado subpíxel
Es importante determinar la disposición subpíxel de la matriz LCD. Normalmente es RGB (10-sub-pixel-rgb.conf), sin embargo, la única forma de asegurarse es consultar la especificación de la pantalla o utilizar este test de disposición subpíxel para determinarlo.
Una vez se haya determinado, habilite el archivo 10-sub-pixel-<matrix type>.conf apropiado.
root #
eselect fontconfig enable 10-sub-pixel-rgb.conf
Se recomienda que si lcdfilter está disponible, se utilice con subpíxel para el renderizado. Se presenta en distintas formas pero el uso por defecto (11-lcdfilter-default.conf) debería ser apropiado para todas las tipografías comunes.
root #
eselect fontconfig enable 11-lcdfilter-default.conf
Acerca de autohinter
La labor de autohinter pretende ser la eliminación automática de cualquier información existente sobre hinting. Hasta hace poco tiempo era la opción por defecto debido a que TrueType2 estaba patentada pero ahora que esas patentes han expirado hay pocas razones para utilizarlo. Desde un punto de vista técnico esto es mejor que una información incompleta o ningún tipo de información sobre hinting, sin embargo será fuertemente subóptimo para tipografías con información válida sobre hinting. Normalmente las tipografías del sistema son del segundo tipo por lo que no se debe utilizar autohinter.
Autohinter no es compatible con el renderizado de subpíxel. ¡No los utilice al mismo tiempo!
Elegir tipografías
Elegir la tipografía adecuada puede ser más difícil que decidir el tipo de hinting adecuado. Por una razón u otra, las tipografías no se verán nunca perfectamente, sin embargo, es realmente posible conseguir que se vean mejora que, digamos, la configuración por defecto de las tipografías en Windows 7.
Many fonts don't provide glyphs for every assigned Unicode codepoint, due to the size of Unicode. If a font doesn't provide a glyph for a given codepoint, the character might be represented by a substitute character (such as a rectangle containing the hexadecimal value of the code point), or by a glyph from a different font (the "fallback font"), depending on the application.
A continuación se muestran algunas recomendaciones para tipografías bien conocidas en Gentoo:
Famila de tipografía | Pros | Contras |
---|---|---|
Liberation media-fonts/liberation-fonts |
Las tipografías de Red Hat que son compatibles en métrica con las Corefonts MS TrueType tiene un aspecto decente y actual. Esta es la recomendación del equipo de tipografías de Gentoo para las tipografías Latinas por defecto. Cubre cerca de 2.600 puntos de código. | Únicamente latinas, griegas, cirílicas y hebreas. Pocos glifos tienen un problema de legibilidad. |
Linux Libertine media-fonts/libertine |
Muy similar a la Liberation, cubre cerca de 2.700 puntos de código. Linux Libertine es únicamente una tipografía con gracias proporcional, sin embargo el paquete también contiene tipografías palo seco y mono extensivas. Se puede usar como una opción por defecto para algunos glifos que no están presentes en la Liberation. | Únicamente latina, griega, cirílica y hebrea. Las tipografías palo seco y mono están limitadas. |
Noto media-fonts/noto |
La tipografía de Google pretende dar soporte a todos los idiomas del mundo (osea a unos 60.000 puntos de código). Combina bien con Liberation o Droid. Las tipografías de Adobe Source Han Sans se incluyen para CJK. Está recomendada como una opción por defecto para muchos glifos que no se cubren en Liberation. | Descarga pesada. |
DejaVu media-fonts/dejavu |
Muchos estilos y cubre muchos puntos de código (cerca de 6.100 para palo seco) | Excepcionalmente ancha, incluso la condensada es más ancha que una monoespacio de la misma altura. La segunda a tener en cuenta tras Verdana (una tipografía de Microsoft) en ancho. La tipografía palo seco es mediocre. |
Droid media-fonts/droid |
Cubre muchos puntos de código y tipos de escrituras. | Muy seca, ancho incluso para glifos estrechos. Claramente diseñada teniendo en cuenta las pequeñas pantallas de los dispositivos móviles. |
Gentium Plus media-fonts/sil-gentium |
Fácilmente distinguible, puede gustar a las personas que prefieran las tipografías estrechas. | Unicamente con gracias. Como otras tipografías SIL, el ajuste a la pantalla es cuestionable. |
Ubuntu media-fonts/ubuntu-font-family |
Utilizada en Used in Ubuntu (obviamente). Una familia de tipografías distitiva con un estilo que puede que no guste a mucha gente. El aspecto general es bueno y cubre un buen número de puntos de código. | Únicamente la tipografía palo seco está realmente trabajada, las versiones estrecha y monoespacio necesitan aún trabajo. No se conoce una tipografía con gracias que pudiera acompañarla. |
URW media-fonts/urw-fonts |
Compatible en métrica con las tipografías populares de Adobe (¿Entre otras?). | Parece necesitar una ligera adaptación a la pantalla. |
MS TrueType corefonts media-fonts/corefonts |
Incluye la mayoría de tipografías utilizadas en documentos y en la Web. | Microsoft ya no las distribuye actualmente por lo que las tipografías disponibles actualmente son de hace muchos años y no reflejan el estado actual (sin mencionar las últimas versiones). Obviamente no incluye tipografías introducidas más recientemente. Requiere un ajuste total a la pantalla. |
Unifont media-fonts/unifont |
Cubre una gran cantidad de puntos de código. | Además de ser fea como un demonio, también tiene algunos problemas para cumplir requisitos básicos para considerarla una tipografía. ¿Es palo seco? ¿Tiene gracias?. Por favor, no utilizarla nunca. |
Recursos externos
- Artículos detallados de from Arch Linux wiki sobre:
- Documentación oficial de fontconfig documentation para usuarios
- Artículo de Wikipedia sobre hinting de tipografías