Fontconfig

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Fontconfig and the translation is 100% complete.

Other languages:
English • ‎español • ‎français • ‎日本語 • ‎한국어 • ‎polski • ‎русский • ‎中文(中国大陆)‎
Resources

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.

Cannot load package information. Is the atom media-libs/fontconfig correct?

Configuración

Nota
¡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
  ...
Advertencia
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).

ARCHIVO /etc/fonts/local.confArchivo ejemplo que configura el orden de uso de tipografía preferida a sans serif cuando no se encuentran otras
<?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.

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

  1. En primer lugar se debe habilitar /etc/fonts/local.conf
  2. Editar el archivo local.conf para incluir hinting completo por defecto

Este extracto de local.conf habilita completamente el hinting:

ARCHIVO /etc/fonts/local.confConfigurar el hinting completo
<match target="font">
  <edit mode="assign" name="hintstyle">
    <const>hintfull</const>
  </edit>
</match>
Nota
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
Advertencia
El ajuste USE bindist en media-libs/freetype deshabilita el renderizado subpíxel completamente debido a problemas potenciales de patente. Para utilizar renderizado de subpíxel, se debe deshabilitar el ajuste USE para este paquete (es decir, -bindist).

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.

Advertencia
Autohinter no es compatible con el renderizado de subpíxel. ¡No los utilice al mismo tiempo!

Infinality

Infinality es un (de algún modo controvertido) conjunto de parches para FreeType y ficheros anexos de fontconfig. El objetivo de Infinality es ofrecer alta calidad en el renderizado de tipografías incluyendo la emulación de estilos de tipografías de otros sistemas operativos.

Nota
Como es normal con software que está en desarrollo, es recomendable utilizar siempre la última versión disponible a menos que aparezcan problemas con ella.

Habilitar Infinality

Habilite el ajuste USE 'infinality' editando make.conf bien manualmente, bien utilizando la herramienta euse.

root #euse -E infinality

A continuación reconstruya los programas afectados.

root #emerge --ask -uvDU @world

A menos que los mensajes que se muestran después de la reconstrucción digan lo contrario, habilite 52-infinality.conf.

root #eselect fontconfig enable 52-infinality.conf

Configurar Infinality

Se puede configurar Infinality de varias formas, incluyendo configuraciones personalizadas, sin embargo, la forma más fácil es utilizar perfiles ya realizados que se incluyen en media-libs/fontconfig-infinality que, junto con los módulos de eselect se deberían haber instalado como dependencias cuando se utiliza el ajuste USE infinality.

Una configuración rápida y razonable

root #eselect infinality set infinality
root #eselect lcdfilter set infinality
Nota
Como de costumbre, los cambios en fontconfig afectan únicamente a las aplicaciones que se arrancan una vez se han realizado los cambios.

También se recomienda deshabilitar los ajustes de fontconfig excepto 52-infinality.conf ya que interfieren con el renderizado de los estilos de infinality:

root #eselect fontconfig disable <número>

Determinados ajustes fontconfig no interfieren en cómo se renderizan las tipografías, en cambio determinan las tipografías por defecto para los distintos tipo (como Monospace, sans-serif, etc.). Estos ajustes (por ejemplo las configuraciones en 62-croscore-*.conf) se pueden dejar habilitados.

Explicación

Infinality ofrece variables de entorno FreeType environment que se pueden utilizar para configurar características incluidas en los parches así como ficheros fontconfig para utilizarse con estos cambios. El conjuto de ficheros de fontconfig se administran en Gentoo a través de la orden eselect infinality mientras que el comportamiento de FreeType se define utilizando eselect lcdfilter.

Estos módulos de eselect funcionan como de costumbre:

  • Listar los conjuntos de ficheros de fontconfig disponibles.
root #eselect infinality list
  • Listar los conjuntos de variables FreeType disponibles.
root #eselect lcdfilter list
  • Por supuesto, ambos conjuntos deberían coincidir, excepto cuando hay múltiples coincidencias como se muestra abajo.
root #eselect infinality set win7
root #eselect lcdfilter set windows-7-light

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.

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