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


12

У мене встановлені Microsoft C-Fonts, і вони чудові. Однак Calibri представляється шрифтом растрових зображень у великій кількості розмірів, які він відображає. Як я можу сказати fontconfig заборонити Calibri (та Cambria тощо) не відображатись із вбудованих растрових зображень? Я вже маю 70-no-bitmaps.confв своєму /etc/fonts/conf.d/каталозі.

Розглянуті шрифти можна витягнути з PowerPoint Viewer .


AFAIK ці шрифти не розповсюджуються вільно? (Тож я не можу їх перевірити.) Але ви впевнені, що вони використовують растрові карти, а не просто вимикають антиалійний аналіз?
JanC

@JanC Шрифти дійсно використовують попередньо створені растрові карти.
Пол Фішер

Відповіді:


19

/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 ....


Чи слід це ставити в /etc/fonts/conf.d, а краще в /etc/fonts/conf.avail і посилатись на conf.d, як і всі інші конфігураційні файли? Чи зарезервовано це для конфігураційних файлів, наданих дистрибутивом ubuntu? Це важливо?
кнб

1
@knb за замовчуванням налаштування ubuntu / debian, fontconfig також завантажує все ~/.fonts.conf.d/. Тому я пропоную вам помістити його туди, щоб уникнути спілкування з конфігураціями системи. Якщо ви не хочете зробити його доступним для всіх користувачів, ви можете розмістити його /etc/fonts/conf.dабо поставити в нього availі позначати символом, conf.dщоб використовувати його тоді, коли вам це потрібно (ви можете видалити символьне посилання, коли відчуєте, як увімкнути його, навпаки)
syockit

3
У поточних версіях fontconfig ім'я файлу повинно бути ~/.fonts.conf.d/20-no-embedded.confне завантаженим, якщо він не має префіксу цифрою. Наприклад, запустіть, FC_DEBUG=1024 geditщоб перевірити, чи завантажена ваша конфігурація, якщо вона, здається, не має ніякого ефекту.
pascal

@pascal +1 для FC_DEBUG. І ні, номер перед назвою не потрібен був 10.04 LTS, достатньо лише його імені .fonts.config. На яку версію fontconfig ви посилаєтесь?
LAFK каже, що повернеться до Моніки

1

У наведеному прикладі у вас є атрибут "<string>", згаданий двічі в строфі "<test>". Це викликає попередження про 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>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.