Настройте fontconfig для игнорирования растровых изображений в масштабируемых шрифтах

У меня установлены Microsoft C-Fonts, и они замечательные. Тем не менее, Calibri выглядит как растровый шрифт во многих размерах, которые он появляется. Как я могу сказать fontconfig запретить рендеринг Calibri (и Cambria, и т. Д.) Из встроенных растровых изображений? у меня уже есть 70-no-bitmaps.conf в моем /etc/fonts/conf.d/ каталог.

Указанные шрифты можно извлечь из программы просмотра PowerPoint.

2 ответа

Решение

/etc/fonts/conf.d/70-no-bitmaps.conf только отклоняет растровые шрифты, они не отключают встроенные растровые изображения, как здесь. Я не знаю, почему они не установили параметр отключения встроенных растровых изображений в одном и том же файле конфигурации. В любом случае, поместите следующее в ~/.config/fontconfig/conf.d/20-no-embedded.conf (или, для более старых версий Ubuntu, в ~/.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>

Это отключит встроенное растровое изображение для всех шрифтов. Если вы хотите отключить только для выбранных шрифтов, добавьте <test> элемент:

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

до <edit ...,

В приведенном вами примере у вас есть атрибут, упомянутый дважды в разделе "". Это вызывает предупреждение в Ubuntu 13.10 и 14.04. Чтобы исключить предупреждение, раздел в файле должен выглядеть следующим образом:

<?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>
Другие вопросы по тегам