¿Cómo puedo arreglar las ligaduras de las fuentes TTF (tt, ti, fi, ff, etc.) en Firefox?

24

Con ciertas fuentes de Windows hay un problema de visualización en el que el kerning de ligadura parece voltearse y poner las dos letras en negrita. Aquí hay una captura de pantalla de un correo electrónico usando Helvetica en Firefox:

ingrese la descripción de la imagen aquí

Como puede ver, parece ser algo sobre la forma en que los personajes se cruzan (t y f) se conectan entre sí y con letras similares i.

He tenido este problema durante mucho tiempo (en múltiples sistemas) y me pregunté si alguien ha visto alguna vez problemas similares apareciendo y encontró una manera de solucionarlos.

Nota: Creo que esto solo afecta a Firefox. Chrome y LibreOffice están bien.

Oli
fuente

Respuestas:

27

Aldeby ofrece otra solución que funcionará con todas las aplicaciones, incluida Libre Office :

Edite o cree el archivo ~/.fonts.confy pegue este código en él:

<match target="font" >
<edit name="embeddedbitmap" mode="assign">
<bool>false</bool>
</edit>
</match>

Asegúrese de mantener la estructura XML.

Cierre sesión y vuelva a iniciarla, y Calibri (y posiblemente algunas otras fuentes) se verán mucho mejor (en realidad, incluso mejor que con las otras respuestas dadas aquí, porque las sustituciones de mapas de bits feos están completamente deshabilitadas).

Calimo
fuente
3
Esta es una mejor solución que las anteriores, ya que es una solución global, y eliminar las ligaduras es muy difícil. Las ligaduras están ahí para hacer que el texto sea más agradable de leer, y desactivarlas para evitar un problema de configuración no es lo ideal.
scruss
Cualquiera que sea un poco TOC o anal retentivo como para preocuparse por formatear adecuadamente el contenido de este archivo XML (por supuesto, ustedes, Linux, nunca se preocuparían por esas cosas ;-)):<?xml version="1.0"?><!DOCTYPE fontconfig SYSTEM "fonts.dtd"><fontconfig><match target="font"><edit name="embeddedbitmap" mode="assign"><bool>false</bool></edit></match></fontconfig>
Adam Plocher
El enlace a Aldeby ahora conduce a un sitio de estafa de phishing
charsi
1
@charsi gracias, lo reemplacé con un enlace al Archivo Web.
Calimo
Ni siquiera tuve que cerrar sesión y volver a iniciar sesión. Simplemente actualizar la página (en Firefox) y reiniciar la aplicación (LibreOffice) fue suficiente.
Marc.2377
9

¡Desactivar las ligaduras (ver la fonts.confrespuesta de Calimo ) es la dirección incorrecta!Puede eliminar esas ligaduras "en negrita" con alias excesivo en fuentes como Calibri , pero también elimina parte de la belleza de la tipografía. Eso es bastante similar a reducir la fuente hasta que no puedas notar la diferencia.

Resolví esto para mi sistema eliminando la fuente Calibri, instalando Carlito , que es " métrico compatible con Calibri" y está empaquetado con "una entrada de mapeo a fontconfig (local.conf)", y actualizando mi caché de fuentes:

$ rm ~/.fonts/microsoft/CALIBRI*
$ sudo apt install fonts-crosextra-carlito
$ fc-cache

Luego puede verificar que Carlito represente a Calibri:

$ fc-match Calibri
Carlito-Regular.ttf: "Carlito" "Regular"

(Si esto no funciona, es posible que necesite algo como sudo rm /usr/share/fonts/truetype/msttcorefonts/calibri* aunque el caso y la ubicación exacta pueden diferir).

Antes de eliminar Calibri de Microsoft, guardé un documento de prueba en LibreOffice que usaba Calibri y tomé una captura de pantalla. Después de hacer eso, salí de LibreOffice, lo abrí nuevamente y luego cargué mi documento de prueba. El nombre de la fuente "Calibri" estaba en cursiva para indicar que fue sustituido por. Tomé una captura de pantalla de esta versión sustituida y la pegué debajo del original:

Pruebas de Calibri

El texto anterior es un par de capturas de pantalla de 13pt Calibri, con Calibri de Microsoft por encima de Carlito, junto con fontconfig. No hay negrita, no hay formato, "par kerning" habilitado, como se muestra en LibreOffice 5.0.5.1.

Carlito está bastante cerca de Calibri, las ligaduras se procesan correctamente y, en general, es mucho más bonito.

Puede hacer lo mismo con Caladea para Cambria con fonts-crosextra-caladeay puede usar las fuentes Croscore de Google Arimo, Tinos y Cousine para Arial , Times New Roman y Courier New con fonts-croscore. Obtenga más información en las fuentes sustitutas Calibri y Cambria de Debian wiki de .

¿Pero qué hay de Helvetica?

Esta pregunta se refiere a la fuente Helvetica , que es la fuente sans-serif preferida de Apple . Microsoft prefirió Arial antes de cambiar a Calibri. El mapeo predeterminado de Linux varía según la distribución, pero normalmente es Nimbus Sans L o Liberation Sans , p. Ej.

$ fc-match Helvetica
n019003l.pfb: "Nimbus Sans L" "Regular"

Si ejecuta eso y obtiene Arial, esa es una buena razón para tener el problema de la ligadura descrito anteriormente: Arial no es una gran fuente.

Helvetica tiene toda la cultura que lo rodea y no puedo encontrar una fuente que sea totalmente métrica compatible con Helvetica. Arial (y las fuentes métricamente compatibles con Arial, incluyendo Liberation Sans y su bifurcación, Arimo , tienen anchos de caracteres idénticos (lo que significa que son "en su mayoría" compatibles con métricas; el texto se ajustará de la misma manera que con Helvetica). Entre las fuentes gratuitas, Liberation Sans y Nimbus Sans parecen tener la estética más similar.

También está IBM Plex , una nueva fuente con mucho dinero detrás [ 1 ] [ 2 ] . Plex está diseñado para reemplazar a Helvetica (también tiene fuentes condensadas sin caracteres serif y monospace) en todos los materiales de IBM, aunque no es en absoluto métrica compatible con Helvetica u otras fuentes. Font Squirrel tiene una buena vista de muestras de las fuentes Plex .

Alias ​​Fontconfig

Para asignar un alias manual a Helvetica a otra fuente (y, por lo tanto, no es necesario eliminar Calibri y / o Arial, aunque en ese caso también debe asignar un alias manual), edite su ~/.config/fontconfig/fonts.confarchivo (para sistemas más antiguos, eso es ~/.fonts.conf. Para evitar confusiones, hago un enlace simbólico a este último al primero) como se señala en esta respuesta , agregando una nueva <alias>sección para Helvetica (esta usa Arimo. Asegúrese de tenerlo instalado):

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

  <alias>
    <family>Helvetica</family>
    <prefer><family>Arimo</family></prefer>
  </alias>

</fontconfig>
Adam Katz
fuente
1
Esta es una respuesta mucho mejor que la aceptada. Quiero señalar que hay un conveniente archivo de configuración
Xananax
la primera línea ahora debería ser sudo rm -R / usr / share / fonts / truetype / calibri
dez93_2000
Si el resultado de Helvetica de fc-match ES arial en Linux, ¿sabes cómo forzar Liberation Sans? ¿Solo eliminar Arial? Gracias
dez93_2000
@ dez93_2000 - eso es probablemente /usr/share/fonts/truetype/msttcorefonts/callibri*. Actualizaré mi respuesta para abordar el alias de fuente, ya que no cabe en un comentario.
Adam Katz
Inspeccioné cuidadosamente los resultados de la respuesta aceptada (usando la fuente Calibri), y no encontré ninguna diferencia en comparación con un buen procesador conocido. No faltaba absolutamente ninguna belleza.
Marc.2377
6

la respuesta de lgarzo solo funcionará en sitios web que tengan una clase "noligs" en el texto (la mayoría de los sitios web no).

Para deshabilitar globalmente las ligaduras en todos los sitios web, agregue la siguiente línea a su userChrome.css:

* { -moz-font-feature-settings: "liga" 0; }

La forma más fácil de hacerlo es crear un nuevo estilo con la extensión con estilo .

Calimo
fuente
+1 para la sugerencia con estilo. AFAIR He citado la documentación de Mozilla (ya que esperaba que el OP pudiera transformar eso como él deseaba :)) Mi intención era incluir la regla en el CSS de la página. (Sin embargo, no se puede verificar la fuente. Parece que no funciona en el cajero automático.)
lgarzo
1
Esa sintaxis solo era válida hasta Firefox 14, según stackoverflow.com/a/15161336/4464570 , y ahora el navegador ya no la reconoce. Edité tu publicación para actualizarla con la sintaxis actual.
Byte Commander
4

Algunos comentarios aparecieron en mi mente mientras miraba la imagen:

  • Las ligaduras parecen ser anti-alias , mientras que el resto del texto no lo es. Por lo tanto, se ve más grueso que el texto normal (aunque no puedo negar que también se ve en negrita).
  • AFAIK la fuente Helvetica es una fuente no estándar , es decir, no viene con instalaciones predeterminadas de Windows. ¿Lo tiene instalado o es una fuente diferente?

Creo que el problema se basa en que la fuente no admite ligaduras / kerning correctamente.

Puede deshabilitar las ligaduras en FF con la siguiente regla CSS:

/* disable common ligatures, usually on by default */
.noligs { -moz-font-feature-settings: "liga" 0; }

Fuente: Referencia CSS: Extensiones de Mozilla

lgarzo
fuente
Esa sintaxis solo era válida hasta Firefox 14, según stackoverflow.com/a/15161336/4464570 , y ahora el navegador ya no la reconoce. Edité tu publicación para actualizarla con la sintaxis actual.
Byte Commander
1

Además de la respuesta de Calimo, los usuarios de Archlinux pueden encontrar ayuda https://wiki.archlinux.org/index.php/font_configuration - Deshabilitar fuentes de mapa de bits

Sugirió crear un archivo de configuración local ~ / .config / fontconfig / conf.d / 20-no-embedded.conf, pero elegí una opción para todo el sistema

sudo touch /etc/fonts/conf.d/20-no-embedded.conf
sudo chmod 777 /etc/fonts/conf.d/20-no-embedded.conf
nano 777 /etc/fonts/conf.d/20-no-embedded.conf

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <match target="font">
    <edit name="embeddedbitmap" mode="assign">
      <bool>false</bool>
    </edit>
  </match>
</fontconfig>

Luego solo reinicie la aplicación (en mi caso, Thunderbird)

Uzumaki D. Ichigo
fuente
Si justo debajo de la línea "<match target =" font ">" agrega: <test name = "family"> <string> Calibri </string> </test> O cualquiera que sea el nombre de la fuente (Helvetica), lo hará solo edite la configuración de fuente para esa fuente específica.
zeehio
El permiso debe ser 644, no 777, porque está poniendo un archivo (no un enlace simbólico) allí.
Marc.2377