Truetype फोंट का स्थान


19

मैं एक छोटी स्क्रिप्ट बनाना चाहूंगा जो उपयोगकर्ता के सिस्टम पर कुछ ट्रू टाइप फ़ॉन्ट स्थापित करता है। मेरे उबंटू मशीन पर truetype फोंट स्थित हैं /usr/share/fonts/truetype। हालाँकि, मुझे यकीन नहीं है कि यह स्थान सभी मशीनों पर समान है। क्या यह पता लगाने का कोई तरीका है कि किसी भी लिनक्स सिस्टम पर ट्रूइट्स के फोंट कहाँ संग्रहीत हैं?

अद्यतन
कुछ शोध के बाद मैंने पाया कि पथ usr/share/fonts/truetypeएक्सएमएल फ़ाइल में निर्दिष्ट है /etc/fonts/fonts.conf। यह एक XML फ़ाइल है, इसलिए मैं dir पाने के लिए XPath का उपयोग कर सकता हूं:

xpath -q -e 'fontconfig/dir[1]/text()[1]' /etc/fonts/fonts.conf

मैं नहीं जानता कि क्या यह फाइल सभी (या अधिकांश) लिनक्स सिस्टम पर मौजूद होगी।


fc-cache(1)मैन पेज भी देखें , जो आपको सिस्टम में नए फोंट जोड़ने की अनुमति देता है।
jww

जवाबों:


20

प्रत्येक फ़ॉन्ट जो किसी भी उपनिर्देशिका के तहत स्थित है /usr/share/fontsऔर ~/.fontsस्कैन किया जाता है और उस संग्रह में जोड़ा जाता है जिसे आप उपयोग करने में सक्षम हैं। तो जब तक आपका फॉन्ट उन दो डाइरेक्टरी में से एक के अंदर है, जो कि correclty स्थित है, वह स्थान लगभग हर बड़े लिनक्स डिस्ट्रो के लिए समान है।

अपडेट करें:

वैसे मैं पुष्टि कर सकता हूं कि fonts.confफाइल फेडोरा और उबंटू दोनों में मौजूद है (और उनके व्युत्पन्न: Xubuntu, Lubuntu, Linux Mint, Cinnammon, Peppermint OS, Fedora और इसके सभी स्पिन, कुछ का उल्लेख करने के लिए)।


1
फिर, मेरे पास क्यों फोंट हैं Firefoxऔर gnome-font-viewerजो उन स्थानों ( /usr/share/fontsऔर ~/.fonts) में मौजूद नहीं हैं ? मैं
एकाउंटेंट एन

आप FONTCONFIG_PATHपहले जांचना भी चाह सकते हैं । FONTCONFIG_PATHडिफ़ॉल्ट कॉन्फ़िगरेशन निर्देशिका को ओवरराइड करने के लिए उपयोग किया जाता है।
jww

4

फेडोरा में फ़ोल्डर पथ है /home/{user}/.local/share/fonts

आप यहाँ फ़ॉन्ट फ़ाइलों को कॉपी / पेस्ट कर सकते हैं।


1

सभी वितरण भिन्न होते हैं, आप एक डिफ़ॉल्ट पथ सेट करने के लिए बेहतर होते हैं और उपयोगकर्ता को डिफ़ॉल्ट और कस्टम एक के बीच चयन करने देते हैं।

संपादित करें:

मेरी राय में, आपके पास तीन समाधान हैं क्योंकि उसके लिए कोई पर्यावरण चर या कार्य नहीं है।

  1. डिफ़ॉल्ट पथ सेट करें और उपयोगकर्ता को डिफ़ॉल्ट और कस्टम के बीच चयन करने दें।
  2. जैसे dtrosset ने कहा, आप विभिन्न वितरण के लिए अपने फोंट के साथ पैकेज बना सकते हैं।
  3. यदि आप निर्धारित करने के लिए उपयोग कर सकते हैं / elif / अन्यथा और परीक्षण -E अलग फ़ॉन्ट सर्वर पथ मौजूद हैं। यदि कोई मौजूद नहीं है, तो डिफ़ॉल्ट पथ दिखाएं और उपयोगकर्ता को इसके और एक कस्टम के बीच चयन करने दें।

उदाहरण के लिए:

DEFAULT="$home/.fonts/"
UBUNTU_XFSTT="/usr/share/fonts/truetype/"
RHL52_XFS="/usr/X11R6/lib/X11/fonts/ttfonts/"
RHL6_XFSTT="/usr/X11R6/lib/X11/fonts/"
DEBIAN_XFSTT="/usr/share/fonts/truetype/"

#Test if directory exist
if test -e ${UBUNTU_XFSTT} ; then
    echo ${UBUNTU_XFSTT}
elif test -e ${RHL52_XFS} ; then
    echo ${RHL52_XFS}
elif test -e ${RHL6_XFSTT} ; then
    echo ${RHL6_XFSTT}
elif test -e ${DEBIAN_XFSTT} ; then
    echo ${DEBIAN_XFSTT}
else
    echo ${DEFAULT}
fi

PS यह केवल मेरी राय है ...


-1 हैक। यह एक समाधान नहीं है और यह केवल डेवलपर के लिए शोक का कारण बनेगा, StackedCroched, इस मामले में चूंकि हम प्रत्येक उपयोगकर्ता पर निर्भर नहीं कर सकते हैं कि उनकी ttf फाइलें कहां हैं। यहां तक ​​कि अगर डेवलपर को यह भी पता नहीं है कि फाइलें कहां हैं, तो हमें उपयोगकर्ता से कैसे उम्मीद करनी चाहिए?
नाइट्रोडिस्ट

आप FONTCONFIG_PATHपहले जांचना भी चाह सकते हैं । FONTCONFIG_PATHडिफ़ॉल्ट कॉन्फ़िगरेशन निर्देशिका को ओवरराइड करने के लिए उपयोग किया जाता है।
jww

0

शायद आप अपने फोंट के साथ एक पैकेज बनाने पर विचार कर सकते हैं। यह पैकेज विवरण फ़ाइलों और निर्माण नियमों को बनाने का एक सा काम है। लेकिन आप मुफ्त में अपडेट और अनइंस्टॉल करने की क्षमता हासिल करते हैं। उबंटू के लिए, आपको .deb फाइलें बनानी चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.