बोल्ड होने पर फ़ॉन्ट ऊंचाई क्यों बदल जाती है?


9

इसपे इतना गुस्सा आ रहा है...

जब किसी पंक्ति के किसी भी पाठ में उसका चेहरा बदल जाता है ताकि पाठ बोल्ड हो जाए, तो एक पिक्सेल के द्वारा लाइन की ऊंचाई बढ़ जाती है (मुझे लगता है)। यह एक छवि के साथ सबसे अच्छा दिखाया गया है:

यहाँ छवि विवरण दर्ज करें

ऐसा क्यों है? मैं इसे कैसे रोकूं?


अनुरोध के अनुसार, प्लेटफ़ॉर्म पर जानकारी:

  • Amad64 पर डेबियन जीएनयू / लिनक्स फुट (अस्थिर)
  • Emacs XFCE 4.12 पर libgtk-3.so.0 (gtk 3.14.5) का उपयोग करता है

मैंने निम्नलिखित फोंट को 8pt, 9pt, 10pt और 11pt पर आज़माया है:

  • दीजवु सों मोनो
  • देजावु सं
  • देजावु सेरिफ़
  • Droid Sans मोनो
  • मुक्ति मोनो

समस्या केवल DejaVu Sans Mono और DejaVu Sans के साथ होती है, और केवल 9pt और 10pt पर। (ऊपर दी गई छवि DejaVu Sans Mono-9।)


2
आपको स्पेस लगाने से पहले डिफेनक्सम्पल के चेहरे की विशेषताओं को देखना चाहिए और फिर डिफ्यूज और उदाहरण के बीच एक स्पेस डालने के बाद प्रत्येक शब्द पर । यह वांछित बिंदु पर कर्सर रखकर और फिर टाइपिंग द्वारा किया जाता है C-u C-x =। आप शायद पाएंगे कि या तो डिफॉन को प्रभावित करने वाले चेहरे या उदाहरण को प्रभावित करने वाले चेहरे में अलग-अलग विशेषताएं हैं जो आपके द्वारा देखे गए व्यवहार के लिए जिम्मेदार हैं - उदाहरण के लिए, अग्रभूमि के सिर्फ मूल रंग के अलावा। चेहरे की विशेषताओं को उपयोगकर्ता द्वारा अनुकूलित किया जा सकता है।
कानून व्यवस्था

क्या आप अपने ऑपरेटिंग सिस्टम और विंडो मैनेजर को अपने सवाल में जोड़ सकते हैं, और आपके एमएसीएस जीयूआई (जीटीके 2, जीटीके 3, आदि) का उपयोग करने के बारे में कुछ जानकारी?
20

@ सूची: धन्यवाद आदमी। अंतरिक्ष के साथ, इसमें फॉन्ट-लॉक-फंक्शन-नाम-फेस लगाया गया है, जिसकी अनिर्दिष्ट ऊंचाई है (इसलिए मैं डिफ़ॉल्ट को मानता हूं?)। अंतरिक्ष के बिना, कोई चेहरा लागू नहीं होता है (इसलिए, फिर से, मैं डिफ़ॉल्ट मान लेता हूं?) डिफ़ॉल्ट को मेरे विषय में :height 90(9%) पर सेट किया गया है ।
edam

@lawlist: कुछ और जांच .... विषय में, अगर मैं हटाने / जोड़ें / निकालें / जोड़ने :weight boldसे font-lock-function-name-face(और विषय के पुनः निष्पादित custom-theme-set-facesआदेश), मैं की ऊंचाई देख सकते हैं defun1px द्वारा लाइन परिवर्तन! यह निश्चित रूप से बोल्ड विशेषता है जो इसे पैदा कर रहा है, मुझे लगता है।
edam

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

जवाबों:


2

फ़ॉन्ट ऊंचाई उस बिंदु आकार में DejaVu में बदल जाती है क्योंकि दो सामान्य और बोल्ड फ़ॉन्ट के बीच फ़ॉन्ट ऊंचाई की जानकारी अलग-अलग होती है जब इसे समान होना चाहिए।

DejaVu Sans मोनो 10 फ़ॉन्ट जो मैं उपयोग करता हूं वह सामान्य और बोल्ड भार के बीच फ़ॉन्ट ऊंचाई को नहीं बदलता है। मैंने अपने .emacs में इसे सेट किया है(set-frame-font "DejaVu Sans Mono-10")

तो आपके पास तुलना करने के लिए कुछ है, "DejaVu Sans 10" फ़ॉन्ट के लिए जानकारी (फ़ॉन्ट-इमैकन 25 पर जानकारी):

(font-info "DejaVu Sans Mono-10")
["-unknown-DejaVu Sans Mono-normal-normal-normal-*-13-*-*-*-m-0-iso10646-1" 
"DejaVu Sans Mono:pixelsize=13:foundry=unknown:weight=normal:slant=normal:
width=normal:spacing=100:scalable=true" 13 17 0 0 0 8 13 4 8 8 
"/usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf" (opentype ((DFLT ...) )))]

EDIT बाद की जानकारी के आधार पर:

ऊपर दी गई फ़ॉन्ट जानकारी में, मैं 17 की फ़ॉन्ट ऊंचाई दिखाता हूं और आप 15 (सामान्य) या 16 (बोल्ड) की ऊंचाई रिपोर्ट करते हैं। Emacs 25 में उन 3 0 के बाद अतिरिक्त फ़ॉन्ट जानकारी है, विशेष रूप से फ़ॉन्ट वंश 4 है।

हालाँकि, मुझे DejVu Sans Mono और बोल्ड वेरिएंट के साथ Emacs 24 या 25 पर कोई समस्या नहीं है, लेकिन सबसे सरल बात यह है कि फ़ॉन्ट और आकार का उपयोग करना जो सामान्य और बोल्ड के बीच चौड़ाई (जैसा कि फॉन्ट-जानकारी द्वारा दिखाया गया है) नहीं बदलता है। या DejaVu के अलावा कुछ और।

यह किस कारण से हो रहा है, यह आपके पुस्तकालयों में से एक हो सकता है, (मेरा gtk libgtk-x11-2.0.so.0 है), लेकिन मुझे संदेह है कि यह विशेष पुस्तकालय होगा। यह भी संदेह है कि यह ttf फ़ाइल या पैकेज है। अधिक संभावना freetype रेंडरिंग है (मेरे पास libfreetype.so.6 है)। चूंकि DejaVu को अन्य फोंट के रूप में बढ़ाया जाता है, जो आपके लिए काम करते हैं, DejaVu के तरीके से गुदगुदी की गई एक गणना त्रुटि बताती है कि ये कुछ आकारों में क्यों काम करते हैं लेकिन अन्य नहीं।

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

यदि आप emacs संकलित करते हैं तो वहां कुछ हो सकता है।


यह काम नहीं किया ... (मैं DejaVu Sans Mono-9BTW का उपयोग कर रहा था )। मैं ऊपर दिए गए विवरण को अपडेट करूंगा ...
edam

मोड लाइन फ़ॉन्ट समान है। मोनो 10 एक ही व्यवहार प्रदर्शित करता है, लेकिन 8 और 11pr नहीं! यह फ़ॉन्ट रेंडरिंग के साथ कुछ करने के लिए मिला है और एक अलग लाइन की ऊंचाई सामान्य और बोल्ड के लिए वापस आ रही है। क्या Emacs Fontconfig का उपयोग करता है?
ईडीएम

1
Emacs Fontconfig का उपयोग नहीं करता है और आमतौर पर यह अद्वितीय है जब यह ग्लिफ़ चयन की बात आती है।
वामासा

(font-info "DejaVu Sans Mono-10")मुझे देता है ["-unknown-DejaVu Sans Mono-normal-normal-normal-*-13-*-*-*-m-0-iso10646-1" "DejaVu Sans Mono:pixelsize=13:foundry=unknown:weight=normal:slant=normal:width=normal:spacing=100:scalable=true" 13 15 0 0 0]। मैंने भी fonts-dejavu-coreस्थापित किया है, और भी ttf-dejavu-core। वे दोनों एक DejaVuSansMono.ttf(अलग-अलग निर्देशिकाओं में प्रदान करते हैं , लेकिन वे समान फाइलें हैं, इसलिए मैं यह नहीं देखता कि यह मामला)। मैं Height: 98चेहरे से भी प्राप्त करता हूं (जब डज़ावु सैंस मोनो -10 का उपयोग करता हूं, जो उपरोक्त समस्या को प्रदर्शित करता है)। मैं किसी भी अधिक सुझाव के लिए खुला हूँ! :)
एडं

ध्यान दें कि आपके कुछ फ़ॉन्ट जानकारी पैरामीटर अलग हैं। मेरे पास "13 17 ..." है जबकि आपके पास "13 15 .." है। और यदि आपको सहायता के लिए फ़ंक्शन फ़ॉन्ट-जानकारी मिलती है, तो आप देखेंगे कि पहला अंतर 17 (मुझे) बनाम 15 (आप) ऊंचाई है। इसलिए ऊंचाई को 17 तक बदलने की कोशिश करें।
चट्टानी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.