Skonfiguruj fontconfig, aby ignorował bitmapy w czcionkach skalowalnych

12

Mam zainstalowane Microsoft C-Fonts i są wspaniałe. Jednak Calibri pojawia się jako czcionka bitmapowa w wielu rozmiarach, w których się pojawia. Jak powiedzieć fontconfig, aby zabronił renderowania Calibri (i Cambria itp.) Z osadzonych map bitowych? Mam już 70-no-bitmaps.confw swoim /etc/fonts/conf.d/katalogu.

Czcionki, o których mowa, można wyodrębnić z przeglądarki PowerPoint Viewer .

Paul Fisher
źródło
AFAIK te czcionki nie są swobodnie dystrybuowane? (Więc nie mogę ich przetestować.) Ale czy jesteś pewien, że używają map bitowych i nie wyłączają tylko antyaliasowania?
JanC
@JanC Czcionki rzeczywiście używają wstępnie renderowanych map bitowych.
Paul Fisher

Odpowiedzi:

19

/etc/fonts/conf.d/70-no-bitmaps.confodrzuca tylko czcionki bitmapowe, nie wyłącza osadzonych bitmap, co ma miejsce w tym przypadku. Nie wiem, dlaczego nie umieścili ustawienia wyłączania osadzonych bitmap w tym samym pliku conf. W każdym razie umieść w swoim ~/.config/fontconfig/conf.d/20-no-embedded.conf(lub, w przypadku starszych wersji Ubuntu, następujące ~/.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>

Spowoduje to wyłączenie osadzonej mapy bitowej dla wszystkich czcionek. Jeśli chcesz wyłączyć tylko dla wybranych czcionek, dodaj <test>element:

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

przed <edit ....

syockit
źródło
Czy należy to umieścić w /etc/fonts/conf.d, czy lepiej w /etc/fonts/conf.avail i dowiązać symbolicznie do conf.d, jak wszystkie inne pliki konfiguracyjne? Czy jest to zarezerwowane dla plików konfiguracyjnych dostarczanych przez dystrybucję ubuntu? Czy to ma znaczenie?
gałka
1
@knb domyślnie ustawienia ubuntu / debian, fontconfig załaduje również wszystko ~/.fonts.conf.d/. Sugeruję więc, abyś umieścił go tam, aby uniknąć pomijania konfiguracji systemu. O ile nie chcesz udostępnić go wszystkim użytkownikom, możesz go umieścić /etc/fonts/conf.dlub umieścić availi dowiązać symbolicznie, conf.daby użyć go, gdy jest to potrzebne (możesz usunąć dowiązanie symboliczne, gdy masz ochotę go włączyć, i na odwrót)
syockit
3
W przypadku bieżącej wersji fontconfig nazwa pliku musi być taka, ~/.fonts.conf.d/20-no-embedded.confże nie zostanie załadowana, jeśli nie będzie poprzedzona liczbą. Uruchom na przykład, FC_DEBUG=1024 geditaby sprawdzić, czy twoja konfiguracja jest w ogóle załadowana, jeśli wydaje się, że nie ma żadnego efektu.
pascal
@pascal +1 dla FC_DEBUG. I nie, numer przed nazwą nie był konieczny w 10.04 LTS, wystarczyło nadać mu nazwę .fonts.config. Do jakiej wersji fontconfig odnosisz się?
LAFK mówi o przywróceniu Moniki
1

W podanym przykładzie masz atrybut „<ciąg>” wymieniony dwukrotnie w zwrotce „<test>”. Powoduje to ostrzeżenie dla Ubuntu 13.10 i 14.04. Aby wyeliminować ostrzeżenie, sekcja w pliku powinna wyglądać następująco:

<?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
źródło