Configure fontconfig para ignorar mapas de bits en fuentes escalables

12

Tengo instaladas las fuentes C de Microsoft, y son maravillosas. Sin embargo, Calibri aparece como una fuente de mapa de bits en muchos de los tamaños que aparece. ¿Cómo le digo a fontconfig que prohíba que Calibri (y Cambria, etc.) se representen desde los mapas de bits incrustados? Ya lo tengo 70-no-bitmaps.confen mi /etc/fonts/conf.d/directorio.

Las fuentes en cuestión se pueden extraer del Visor de PowerPoint .

Paul Fisher
fuente
AFAIK esas fuentes no son de libre distribución? (Por lo tanto, no puedo probarlos). ¿Pero está seguro de que usan mapas de bits y no solo deshabilitan el antialias?
JanC
@ JanC De hecho, las fuentes utilizan mapas de bits previamente procesados.
Paul Fisher

Respuestas:

19

/etc/fonts/conf.d/70-no-bitmaps.confsolo rechaza las fuentes de mapa de bits, no deshabilitan los mapas de bits incrustados, que es el caso aquí. No sé por qué no pusieron la configuración para deshabilitar los mapas de bits incrustados en el mismo archivo conf. De todos modos, ponga lo siguiente en su ~/.config/fontconfig/conf.d/20-no-embedded.conf(o, para versiones anteriores de Ubuntu, en ~/.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>

Esto deshabilitará el mapa de bits incrustado para todas las fuentes. Si desea deshabilitar solo para fuentes seleccionadas, agregue el <test>elemento:

<test name="family" compare="contains">
  <string>Calibri</string>
  <string>Cambria</string>
</test>

antes <edit ....

syockit
fuente
¿Debería colocarse en /etc/fonts/conf.d, o mejor en /etc/fonts/conf.avail y enlazarse a conf.d, como todos los demás archivos de configuración? ¿Está reservado para los archivos de configuración proporcionados por la distribución de ubuntu? ¿Importa?
knb
1
@knb por defecto en la configuración de ubuntu / debian, fontconfig también cargará cualquier cosa ~/.fonts.conf.d/. Por lo tanto, le sugiero que lo coloque allí para evitar mucking con las configuraciones del sistema. A menos que desee que esté disponible para todos los usuarios, puede ponerlo /etc/fonts/conf.do ponerlo availy vincularlo conf.dpara usarlo cuando lo necesite (puede eliminar el vínculo simbólico cuando tenga ganas de encenderlo, viceversa)
syockit
3
Con las versiones actuales de fontconfig, el nombre del archivo debe ser ~/.fonts.conf.d/20-no-embedded.confque no se cargará si no tiene el prefijo de un número. Ejecute, por ejemplo, FC_DEBUG=1024 geditpara ver si su configuración está cargada si no parece tener ningún efecto.
pascal
@pascal +1 para FC_DEBUG. Y no, el número antes del nombre no era necesario en 10.04 LTS, solo con nombrarlo .fonts.configera suficiente. ¿A qué versión de fontconfig te refieres?
LAFK dice Reinstate a Monica
1

En el ejemplo que da, tiene el atributo "<string>" mencionado dos veces en la estrofa "<test>". Esto provoca una advertencia en Ubuntu 13.10 y 14.04. Para eliminar la advertencia, la estrofa en el archivo debería verse así:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <match target="font">
    <test name="family" compare="contains">
       <string>Calibri</string>
    </test>
    <test name="family" compare="contains">
       <string>Cambria</string>
    </test>
    <edit name="embeddedbitmap" mode="assign">
      <bool>false</bool>
    </edit>
  </match>
</fontconfig>
Paul Lemmons
fuente