2012-09-05 8 views
6

मेरे सभी कार्यों के लिए मैं Emacs में URW Chancery L फ़ॉन्ट का उपयोग करता हूं। लेकिन कुछ कार्यों के लिए, जैसे ऑर्ग-मोड टेबल, खोल या सूर्योदय-कमांडर, मैं मोनो-चौड़ाई फ़ॉन्ट सेट करना चाहता हूं। तो, मेरा सवाल, मैं इसे कैसे कर सकता हूं? मुझे इसके बारे में पता चला है set-default-font, जो मैं नहीं चाहता हूं।Emacs buffer-local font

उत्तर

0

यह स्निपेट केवल सी मोड में "Arial" फ़ॉन्ट परिवार सेट:

(defun set-my-font() 
    (overlay-put (make-overlay (point-min) (point-max) nil nil t) 
       'face '(:family "Monospace"))) 

(add-hook 'org-mode-hook 'set-my-font) 

वांछित मोड (रों) के साथ org-mode-hook के साथ बदलें, और यह रूप में अच्छी तरह काम करना चाहिए।

यह समाधान पूरे बफर पर ओवरले की फ़ॉन्ट परिवार संपत्ति सेट करके बफर-स्थानीय फ़ॉन्ट का निर्माण करता है। ओवरले की face संपत्ति केवल फ़ॉन्ट परिवार निर्दिष्ट करती है (Monospace), और Emacs redisplay अन्य टेक्स्ट गुणों के साथ इसे मर्ज करने के लिए पर्याप्त स्मार्ट है, जैसे कि font-lock द्वारा निर्दिष्ट रंग।

+0

मैंने आपके उदाहरण परिवार में 'मोनोस्पेस' के साथ प्रतिस्थापित किया, और आश्चर्यजनक रूप से, यह केवल सिरिलिक प्रतीकों के साथ मदद करता है। संगठन मोड में टेबल्स अभी भी लंबवत नहीं हैं। – KAction

+0

क्या आप मुझे ऑर्ग मोड टेबल कैसे प्राप्त कर सकते हैं? मैं एक ऑर्ग-मोड उपयोगकर्ता नहीं हूं, और मैंने कोशिश की छोटी सी चीजें ठीक काम करने लगती हैं। – user4815162342

+0

'org-mode' printf शीर्षलेख में, '|' से अलग, जैसे 'foo | bar | baz |'। फिर एंटर दबाएं, '|' डालें और टैब दबाएं। आपको गठबंधन कोशिकाएं मिलेंगी। खैर, दृष्टि से केवल monowidth के लिए आवंटित। – KAction

8

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

(face-remap-add-relative 'default '(:family "Monospace")) 

वर्तमान बफर का उपयोग मोनोस्पेस को करना चाहिए। तो ऊपर org-mode-hook को जोड़ना आपकी समस्या को हल कर सकता है।

+0

वही प्रभाव - केवल सिरिलिक को प्रभावित करता है। क्या एसओ में स्क्रैशॉट डालने का कोई तरीका है? – KAction

0

क्या आपने org-table को अनुकूलित करने का प्रयास किया था?

आप org-menu > Customize > Customize > org-table

साथ इसे संशोधित या स्वत: पूर्ण करने के लिए कमांड लाइन

M-x set-face-font RET org-table RET -PfEd-DejaVu Sans Mono-normal-normal-normal-*-*-*-*-*-m-0-iso10646-1

उपयोग टैब का उपयोग करें और अन्य उपलब्ध फोंट

अंत में देखते हैं आप भी सीधे आप संशोधित कर सकते हैं init.el कुछ

(custom-set-faces 
'(org-table ((t (:foreground "LightSkyBlue" :family "DejaVu Sans Mono")))))