स्केलेबल फोंट में बिटमैप्स को अनदेखा करने के लिए fontconfig कॉन्फ़िगर करें


12

मेरे पास Microsoft C-फ़ॉन्ट्स स्थापित हैं, और वे अद्भुत हैं। हालाँकि, Calibri बहुत सारे आकारों में एक बिटमैप फ़ॉन्ट के रूप में दिखाई देता है। एम्बेडेड बिटमैप से प्रदान किए जाने से मैं कैलीबरी (और कंब्रिया, आदि) को कैसे मना करूं? मेरे पास पहले से ही 70-no-bitmaps.confमेरी /etc/fonts/conf.d/निर्देशिका है।

विचाराधीन फोंट को PowerPoint Viewer से निकाला जा सकता है


AFAIK उन फोंट स्वतंत्र रूप से वितरण योग्य नहीं हैं? (इसलिए मैं उनका परीक्षण नहीं कर सकता।) लेकिन क्या आप सुनिश्चित हैं कि वे बिटमैप का उपयोग करते हैं, और केवल एंटीअलियासिंग को अक्षम नहीं करते हैं?
जनक

@JanC फोंट वास्तव में पहले से रेंडर बिटमैप का उपयोग करते हैं।
पॉल फिशर

जवाबों:


19

/etc/fonts/conf.d/70-no-bitmaps.confकेवल बिटमैप फ़ॉन्ट को अस्वीकार करता है, वे एम्बेडेड बिटमैप को अक्षम नहीं करते हैं, जो कि यहां मामला है। मुझे नहीं पता कि उन्होंने उसी बिट फ़ाइल में एम्बेडेड बिटमैप को अक्षम करने के लिए सेटिंग क्यों नहीं रखी। वैसे भी, अपने ~/.config/fontconfig/conf.d/20-no-embedded.conf(या, उबंटू के पुराने संस्करणों के लिए, ~/.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 वितरण द्वारा प्रदान की गई विन्यास फाइल के लिए आरक्षित है? फर्क पड़ता है क्या?
knb

1
डिफ़ॉल्ट रूप से ubuntu / debian सेटिंग्स द्वारा @knb, ~/.fonts.conf.d/साथ ही कुछ भी लोड करेगा । इसलिए मेरा सुझाव है कि आप इसे सिस्टम कॉन्फिग्स के साथ मॉकिंग से बचने के लिए वहां रखें। जब तक आप इसे सभी उपयोगकर्ताओं के लिए उपलब्ध नहीं कराना चाहते हैं, तब आप इसे डाल सकते हैं /etc/fonts/conf.d, या इसे इसमें डाल सकते हैं availऔर conf.dज़रूरत पड़ने पर इसका उपयोग करने के लिए इसे सिमलिंक कर सकते हैं (जब आप इसे चालू करने का मन हो तो सिम्लिंक को हटा सकते हैं, इसके विपरीत)
syockit

3
Fontconfig के वर्तमान संस्करणों के साथ, फ़ाइल का नाम होना चाहिए ~/.fonts.conf.d/20-no-embedded.confयह लोड नहीं किया जाएगा यदि यह एक संख्या के साथ उपसर्ग नहीं है। उदाहरण के FC_DEBUG=1024 geditलिए यह देखने के लिए चलाएं कि कहीं आपका कॉन्फ़िगरेशन लोड तो नहीं हुआ है क्योंकि इसका कोई असर नहीं दिख रहा है।
पास्कल

FC_DEBUG के लिए @ पास्कल +1। और नहीं, नाम से पहले संख्या 10.04 एलटीएस पर आवश्यक नहीं थी, बस नाम होने के लिए .fonts.configपर्याप्त था। Fontconfig के किस संस्करण को आप देखें?
LAFK

1

आपके द्वारा दिए गए उदाहरण में आपके पास "<string>" विशेषता है जिसका उल्लेख "<परीक्षण>" श्लोक में दो बार किया गया है। यह 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 Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.