Sustitución de fuentes con ~ / .fonts.conf

18

Estoy tratando de usar ~ / .fonts.conf para reemplazar Helvetica con Droid Sans, aquí está el contenido del archivo:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <match target="pattern">
    <test qual="any" name="family"><string>Helvetica</string></test>
    <edit name="family" mode="assign"><string>Droid Sans</string></edit>
  </match>
</fontconfig>

pero pase lo que pase, nada parece suceder. Intenté ejecutar fc-cache, me registré /etc/fonts/conf.dy encontré 50-user.confque parece llamar explícitamente a configuraciones específicas del usuario.

¿Qué me estoy perdiendo?

Gracias

EDITAR: después de la investigación descubrí que otras reglas en /etc/fonts/conf.dsobrescribir la configuración del usuario, por lo que vincular user.confa 00-user.confayudó. Aún así, es solo un éxito parcial, ya que puedo especificar qué fuentes se deben sustituir, pero se ignora el sustituto de mi elección: en otras palabras, puedo Helveticainvalidar y el sistema vuelve a la siguiente fuente (es decir, en el navegador, toma la siguiente fuente especificada en la hoja de estilo, si no hay ninguna presente, muestra sans-serif estándar).

Matteo Riva
fuente
Vine aquí porque estaba a punto de lograr algo similar. Esperemos que alguien tenga una respuesta ...
Ludwig Weinzierl
Sigo buscando una respuesta.
Capi Etheriel

Respuestas:

16

Creo que faltaba el atributo de enlace en su configuración. (ver también fonts-conf ). Dependiendo de su otra configuración, un enlace de "igual" o "fuerte" probablemente podría funcionar, mientras que "débil" podría no darle lo que desea.

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <match target="pattern">
    <test qual="any" name="family"><string>Helvetica</string></test>
    <edit name="family" mode="assign" binding="same"><string>Droid Sans</string></edit>
  </match>
</fontconfig>
frenkx
fuente
1
Trabajó para mi. Parece que agregar el bindingatributo hizo la diferencia. Estoy usando fontconfig-2.8.0.
MaoPU
Esto funcionó para mí
miloshadzic
3

Creo que el mecanismo de alias funcionaría para esto:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <alias>
    <family>Helvetica</family>
    <prefer>Droid Sans</prefer>
  </alias>
</fontconfig>
Geoff Reedy
fuente
1
¿<alias> no es solo para sustituir fuentes no instaladas?
MaoPU
@MaoPU: Pensé lo mismo, pero después de leer la documentación, me hizo creer que ese comportamiento está configurado. <accept>tiene prioridad cuando la fuente no está instalada, <prefer>tiene prioridad independientemente de si la fuente está instalada.
JM Becker
/ \ No, en realidad no lo hace, a menos que el .confarchivo que contiene esta regla se lea primero.
Marc.2377
Hmm, dicho eso , ¡ funciona si binding="strong"se usa junto con el <alias>elemento!
Marc.2377
0

¿"Fc-list" realmente muestra "Helvetica"? ¿Qué dice fc-match? En mi caja (F-12) obtengo:

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

Quizás también deba agregar la fuente con alias a su sustitución.

vasquez
fuente
0

Me encontré con un problema similar al intentar alias Helvetica como familia sans-serif. Para cualquiera que tenga el mismo problema, mire la configuración del sistema en la /etc/fonts/conf.d/que contendrá enlaces a archivos de /etc/fonts/conf.avail. Tuve que eliminar muchos de esos alias para obtener un comportamiento determinista.

j605
fuente