Configurer fontconfig pour ignorer les bitmaps dans les polices évolutives

12

J'ai installé les polices C de Microsoft et elles sont merveilleuses. Cependant, Calibri apparaît comme une police bitmap dans la plupart des tailles qu'il apparaît. Comment puis-je dire à fontconfig d'interdire à Calibri (et Cambria, etc.) d'être restitué à partir des bitmaps intégrés? J'ai déjà 70-no-bitmaps.confdans mon /etc/fonts/conf.d/annuaire.

Les polices en question peuvent être extraites de la visionneuse PowerPoint .

Paul Fisher
la source
AFAIK ces polices ne sont pas librement distribuables? (Je ne peux donc pas les tester.) Mais êtes-vous sûr qu'ils utilisent des bitmaps et ne désactivent pas simplement l'anti-crénelage?
JanC
@JanC Les polices utilisent en effet des bitmaps pré-rendus.
Paul Fisher

Réponses:

19

/etc/fonts/conf.d/70-no-bitmaps.confrejette uniquement les polices bitmap, elles ne désactivent pas les bitmaps incorporés, ce qui est le cas ici. Je ne sais pas pourquoi ils n'ont pas mis le paramètre pour désactiver les bitmaps incorporés dans le même fichier conf. Quoi qu'il en soit, mettez ce qui suit dans votre ~/.config/fontconfig/conf.d/20-no-embedded.conf(ou, pour les anciennes versions d'Ubuntu, dans ~/.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>

Cela désactivera le bitmap intégré pour toutes les polices. Si vous souhaitez désactiver uniquement pour certaines polices, ajoutez un <test>élément:

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

avant <edit ....

syockit
la source
Doit-il être placé dans /etc/fonts/conf.d, ou mieux dans /etc/fonts/conf.avail et lié symboliquement à conf.d, comme tous les autres fichiers de configuration? Est-ce réservé aux fichiers de configuration fournis par la distribution ubuntu? Est-ce que ça importe?
knb
1
@knb par défaut les paramètres ubuntu / debian, fontconfig chargera ~/.fonts.conf.d/également tout. Donc, je vous suggère de le mettre là pour éviter de bloquer avec les configurations du système. À moins que vous ne vouliez le mettre à la disposition de tous les utilisateurs, vous pouvez le mettre /etc/fonts/conf.dou le mettre en availlien symbolique conf.dpour l'utiliser lorsque vous en avez besoin (vous pouvez supprimer le lien symbolique lorsque vous avez envie de l'activer, vice versa)
syockit
3
Avec les versions actuelles de fontconfig, le nom du fichier doit être ~/.fonts.conf.d/20-no-embedded.confqu'il ne sera pas chargé s'il n'est pas préfixé par un nombre. Exécutez par exemple FC_DEBUG=1024 geditpour voir si votre configuration est chargée du tout si elle ne semble pas avoir d'effet.
pascal
@pascal +1 pour FC_DEBUG. Et non, le numéro avant le nom n'était pas nécessaire sur 10.04 LTS, le simple fait de le nommer .fonts.configétait suffisant. À quelle version de fontconfig vous vous référez?
LAFK dit Réintégrer Monica le
1

Dans l'exemple que vous donnez, l'attribut "<string>" est mentionné deux fois dans la strophe "<test>". Cela provoque un avertissement sur Ubuntu 13.10 et 14.04. Pour éliminer l'avertissement, la strophe du fichier doit ressembler à ceci:

<?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
la source