Urxvt में फ़ॉन्ट रेंडरिंग मुद्दा - वर्णों के बीच बहुत अधिक स्थान


27

पहले शुरू आज मैं rxvt-unicode के साथ फ़ॉन्ट प्रतिपादन मुद्दों को प्राप्त कर रहा हूँ। विशेष रूप से कई फोंट के साथ मुझे पात्रों के बीच अतिरिक्त स्थान की बहुतायत मिलती है। अन्य फोंट में rxvt आकार बदलने से इनकार करते हैं।

यहाँ urxvt और xterm के बीच रिक्ति के मुद्दे का एक उदाहरण है।

फोंट संसाधन:

URxvt*font:     xft:Terminus:medium:size=10
xterm*faceName: xft:Terminus:medium:size=10

और रेंडरिंग

  • urxvt बुरे फोंट
  • टर्म अच्छा फोंट

मैंने हिंटिंग और एंटीएलियासिंग के सभी क्रमांकन की कोशिश की है। आकार बदलने या पिक्सेलाइज़ करने से urxvt में फ़ॉन्ट का आकार बदल जाता है, लेकिन इससे अतिरिक्त रिक्ति भी बढ़ जाती है।

क्या किसी के पास ऐसे विचार हैं जिन्हें मैं इसे ठीक करने की कोशिश कर सकता हूं?


1
मुझे नहीं लगता xtermकि वास्तव में उसी फ़ॉन्ट का उपयोग किया जा रहा है। Jऔर 0स्पष्ट रूप से भिन्न हैं। आप संसाधन फ़ाइल में गैर-मौजूद फ़ॉन्ट का उपयोग करके इसकी पुष्टि कर सकते हैं ( xterm*faceName: xft:Nosuchfont:medium:size=10)। यदि यह अभी भी वही दिखता है, तो यह स्पष्ट रूप से टर्मिनस नहीं है।
गोल्डिलॉक्स

@goldilocks ऐसा प्रतीत होता है कि आप सही हैं। Urxvt गलत फ़ॉन्ट चुन रहा है और इसे बहुत ही सरलता से प्रस्तुत कर रहा है।
केसी

1
मैंने इसे w / से पहले देखा है gvimजब एक सिस्टम पर अपने कॉन्फ़िगरेशन का उपयोग कर रहा हूं जहां मैं चाहता था कि फ़ॉन्ट स्थापित नहीं था। xftया कुछ गैर-मोनोस्पेस फ़ॉन्ट पर वापस आ जाता है और यही वे दिखाई देते हैं।
गोल्डिलॉक्स

2
@goldilocks यह पता चलता है कि एक अद्यतन के दौरान फिसल गया एक खराब फॉन्टकोनिग नियम समाप्त हो गया और उपलब्ध होने से सभी बिटमैप वाले फ़ॉन्ट को रोक रहा था। मैंने इसे देखा और मैं वापस सामान्य हो गया।
केसी

जवाबों:


15

Urxvt में बेसिक कर्निंग का विकल्प है letterSpace:। देखें man urxvt:

-लेट्स संख्या
संकलित तामझाम: समग्र अक्षर रिक्ति को नियंत्रित करने के लिए गणना वर्ण चौड़ाई को समायोजित करने के लिए राशि। नकारात्मक मान पत्र अंतराल को कस देंगे, सकारात्मक मान पत्र को अधिक बाहर निकाल देंगे। विषम फ़ॉन्ट मीट्रिक के आसपास काम करने के लिए उपयोगी; संसाधन लेटरस्पेस।

तो आप अपने लिए एक पंक्ति जोड़कर रिक्ति को समायोजित कर सकते हैं ~/.Xresources, जैसे:

URxvt.letterSpace: -1

नोट: यह आपके पहले स्क्रीनशॉट से बताना मुश्किल है, लेकिन ऐसा लगता है कि Urxvt डिफ़ॉल्ट फ़ॉन्ट पर वापस गिर रहा है क्योंकि यह टर्मिनस को ढूंढ या लोड नहीं कर सकता है, इसलिए विस्तृत रिक्ति। टर्मिनस एक बिटमैप फ़ॉन्ट है (जो डिफ़ॉल्ट रूप से अक्षम है), इसलिए आपको xfontselअपनी परिभाषा में सही फ़ॉन्ट स्ट्रिंग की प्रतिलिपि बनाने के लिए उपयोग करना चाहिए ।

एक्स लॉजिकल फॉन्ट पर आर्क विकी पेज देखें कि यह सिस्टम कैसे काम करता है, इसके विस्तृत विवरण के लिए।


3
मेरे पास यह मुद्दा भी था और मैंने पाया कि urxvt -letsp -2यह मेरे लिए आवश्यक था। उपयोग करना -1बेहतर था, लेकिन मुझे शुरू में यह महसूस नहीं हुआ कि चूंकि यह पर्याप्त नहीं था।
एडम काट्ज़

इसके अलावा आप इसके fc-match <font-name>बजाय इसका उपयोग कर सकते हैं xfontselयदि यह स्थापित नहीं है ( फ़ॉन्ट-नाम आपकी URxvt*fontपंक्ति के फ़ॉन्ट नाम में दी गई अभिव्यक्ति है )। यदि यह अभिव्यक्ति से मेल खाते मूल्य के साथ दिखाता है, तो फ़ॉन्ट सही ढंग से लोड किया जाएगा। उदाहरण के लिए, यदि fc-match "Noto Mono"देता है DejaVuSans.ttf: "DejaVu Sans" "Book"तो इसे एक गलत फ़ॉन्ट अभिव्यक्ति माना जा सकता है।
अविनाश आर

6

यह पता चला है कि मेरे सिस्टम पर एक नियम को सक्षम किया गया था जिसने टर्मिनस जैसे बिटमैप मैप्स को अवरुद्ध कर दिया था।

यह नियम (मेरे सिस्टम पर) में था /etc/fonts/conf.d/70-no-bitmap-fontsऔर इसमें शामिल था:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!-- Reject bitmap fonts -->
 <selectfont>
  <rejectfont>
   <pattern>
     <patelt name="scalable"><bool>false</bool></patelt>
   </pattern>
  </rejectfont>
 </selectfont>
</fontconfig>

मैंने इसे conf.dनिर्देशिका से हटा दिया है और मेरे फोंट एक बार फिर से ठीक से प्रस्तुत कर रहे हैं urxvt


3

कृपया ध्यान दें कि पत्र रिक्ति के संबंध में एक बग रिपोर्ट है

मेरे पास ऐसे ही मुद्दे थे। बग चर्चा का सिफारिशों के बाद, मैं सेट Xft.rgba: noneऔर Xft.hintstyle: hintfullमें ~/.Xdefaults(के बजाय Xft.rgba: rgbऔर Xft.hintstyle: hintslight)। यह मेरे लिए तय है - मैं फ़ॉन्ट के रूप में Ubuntu मोनो का उपयोग किया, यद्यपि।


3

मेरा समाधान सरल था:

URxvt*font:     xft:mono:medium:size=10
xterm*faceName: xft:mono:medium:size=10

अब यह पूरी तरह से काम करता है।


0

यह वास्तविक फ़ॉन्ट फ़ाइल (मेरे मामले में मोनोस्पेस) से उत्पन्न हो सकती है, जो urxvt में किसी भी चीज़ से अधिक होने की संभावना है। यदि फ़ॉन्ट (ग़लती से) कुछ ग्लिफ़ को बहुत व्यापक घोषित करता है, तो urxvt ग्रिड को भी चौड़ा करने के लिए मजबूर होता है।

मेरे मामले में, "ओके" फ़ॉन्ट मुझे मिला वह था बिटस्ट्रीम वेरा सैंस मोनो।

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