जापानी फोंट के साथ ऑर्ग मोड टेबल में कॉलम संरेखित करें


12

मैं उसी मूल-मोड तालिका में जापानी और अंग्रेजी को कैसे मिला सकता हूं (जो निश्चित-चौड़ाई वाले फ़ॉन्ट का उपयोग करता है)? कुछ इस तरह:

| मिमी मिमी | |
| う ウ は う シ は | |
| フ フ ハ | フ フ ハ |

संरेखित नहीं करेंगे। एमएसीएस जापानी अक्षरों को केवल एक के रूप में गिनता है, जब वास्तव में वे 10% से अधिक बड़े होते हैं।

क्या पिक्सेल में कॉलम की चौड़ाई निर्धारित की जा सकती है? मुझे पता है कि <10> चौड़ाई निर्धारित करेगा, लेकिन यह मदद नहीं करता है, क्योंकि यह निश्चित-चौड़ाई वाले अक्षरों के संदर्भ में गिना जाता है।

समस्या मूल रूप से है कि कैसे इमैक कॉलम संरेखित करता है (फ़ॉन्ट चौड़ाई का उपयोग करके)।


क्या आपने C-c C-cकिसी कक्ष में रहते हुए तालिकाओं को संरेखित करने का प्रयास किया है? मैंने अभी-अभी ऑर्ग-मोड बफर में आपका उदाहरण चिपकाया, हिट किया C-c C-c, और सब कुछ अच्छी तरह से संरेखित किया।
इलेथन

यह शायद कुछ ऐसा है जिसे ओआरजी-मोड में जोड़ा जाना चाहिए। Gnu.org/software/emacs/manual/html_node/elisp/…:align-to में वर्णित प्रदर्शन संपत्ति का उपयोग करके इसे प्राप्त करना संभव हो सकता है ।
लेग्सोशिया

@ इथन: हाँ, कुछ उदाहरण पश्चिमी फोंट, चेहरे के आकार और कुछ जापानी पाठ के एक निश्चित संयोजन के साथ काम करते हैं। Emacs ऊपर दिए गए उदाहरणों को संरेखित करने की कोशिश करता है और कभी-कभी यह सही हो जाता है। हालांकि, यह सिर्फ भाग्य का सवाल है। सामान्य तौर पर, इमैक इसके लिए अंधा होता है।
Quora Feans

क्या आपको इसके लिए एक मोनोस्पॉन्टेड फ़ॉन्ट की आवश्यकता नहीं है? जिस स्थिति में stackoverflow.com/q/3758139/4050592 का उपयोग करना चाहिए, बशर्ते आपके पास एक मोनोसैप्ड जापानी फ़ॉन्ट हो, जिसका आप उपयोग कर सकते हैं।
एंड्रयू स्वान

जवाबों:


5

यह आपके द्वारा उपयोग किए जा रहे फोंट पर निर्भर करता है। और मुझे नहीं लगता कि Elisp में पिक्सेल स्तर की संरेखण क्षमता है।

संगठन string-widthइसके बजाय स्ट्रिंग की चौड़ाई की गणना करता है lengthstring-widthASCII के लिए 1 और आधी चौड़ाई के CJK चार्ट के लिए 1 या पूर्ण चौड़ाई के लिए 2 रिटर्न देता है। निम्नलिखित कोड का मूल्यांकन आपको दिखाएगा कि:

(string-width "m")
1
(string-width "ハ")
1
(string-width "は")
2

अब, भले ही ऑर्ग मोड को स्टिंग प्रॉपर्टी से सही उत्तर मिला, और स्ट्रिंग्स के चारों ओर पैड जोड़े गए, यह एमएसीएस डिस्प्ले इंजन का काम है जहां उन बिट्स स्क्रीन पर जाते हैं।

एमएसीएस डिस्प्ले इंजन को अंतर्निहित ओएस से फ़ॉन्ट जानकारी मिलती है। जटिल समस्या को सरल बनाने के लिए, mमान लीजिए कि, आपके कॉन्फ़िगरेशन के साथ, चौड़ाई 5 पिक्सेल है और "は" है 10. इस मामले में वे पूरी तरह से संरेखित होंगे क्योंकि ऑर्ग मोड की धारणा ("は" दो बार की चौड़ाई लेती है " m ") आपकी स्क्रीन पर वास्तविक पिक्सेल के साथ मेल खाता है।

इसके बजाय, यदि आपके फोंट विन्यास में "m" के लिए 7 पिक्सेल और "," के लिए 10 पिक्सेल हैं, तो चीजें मेल नहीं खाएंगी। और कुछ भी नहीं है Org मोड और न ही डिस्प्ले इंजन कर सकता है। उन्होंने वही किया जो उन्होंने बताया, आपके कॉन्फ़िगरेशन से, करने के लिए।

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