मैं एक इनपुट विधि में वर्ण कैसे जोड़ सकता हूं?


14

मैं अक्सर TeXयूनिकोड वर्णों को टाइप करने के लिए इनपुट विधि का उपयोग करता हूं λ, जो काफी आसान है। हालाँकि, मैं जिन कुछ पात्रों को टाइप करना चाहता हूँ, वे विभिन्न सदस्यताओं (जैसे ), स्क्रिप्ट वर्णों (जैसे 𝒞) और अन्य विभिन्न प्रतीकों (जैसे और ) की तरह समर्थित नहीं हैं ।

मैं कस्टम इनपुट स्ट्रिंग (यानी के _iलिए ) के साथ इन वर्णों का समर्थन करने के लिए TeX इनपुट विधि का विस्तार कैसे कर सकता हूं ?


1
यह EmacsWiki लेख इसे करने के लिए शो दिखाता है: emacswiki.org/emacs/TeXInputMethod
Augusto

1
इसके अलावा, ac-math github.com/vitoshka/ac-math/blob/master/ac-math.el की इस फ़ाइल को आसानी से एक नए और बहुत अधिक पूर्ण TeX-esque इनपुट पद्धति में बदला जा सकता है।
अगस्तो

1
वे दोनों लिंक उपयोगी लगते हैं। क्या आप उन्हें एक वास्तविक उत्तर (आदर्श रूप से यहां उद्धृत प्रासंगिक बिट्स के साथ) में डाल सकते हैं ताकि इस प्रश्न को उत्तर के रूप में चिह्नित किया जा सके? धन्यवाद!
तिखन जेल्विस 21

जवाबों:


12

जैसा कि इस EmacsWiki लेख में बताया गया है , आप इस तरह से एक इनपुट विधि के लिए सामान संलग्न कर सकते हैं:

(let ((quail-current-package (assoc "TeX" quail-package-alist)))
  (quail-define-rules ((append . t))
                      ("_i" ?ᵢ)
                      ("^\\alpha" ?ᵅ)))

मुझे अपने प्रतीकों के लिए एक उपसर्ग के रूप ;में बोझिल के बजाय इसका उपयोग करना सुविधाजनक लगता है \, इसलिए मैं निम्नलिखित कार्य करता हूं

(let ((quail-current-package (assoc "TeX" quail-package-alist)))
   (quail-defrule ";" (quail-lookup-key "\\")))

अंत में, ध्यान दें कि फ़ाइल ac-math.el में यूनिकोड गणित वर्णों की सूची और संबंधित TeX मैक्रो नाम शामिल हैं, और आसानी से एक नए और बहुत अधिक पूर्ण TeX-esque इनपुट विधि में बदला जा सकता है (मैं भी \gamma\dotto प्राप्त करने के लिए टाइप कर सकता हूं) ।)


ADDENDUM नए पैकेज गणित-प्रतीक-सूचियों (MELPA पर उपलब्ध) का उपयोग करके एक व्यापक गणितीय इनपुट पद्धति को निम्नानुसार परिभाषित कर सकता है:

(package-initialize)
(require 'math-symbol-lists)
(quail-define-package "math" "UTF-8" "Ω" t)
(quail-define-rules ; whatever extra rules you want to define...
 ("\\from"    #X2190)
 ("\\to"      #X2192)
 ("\\lhd"     #X22B2)
 ("\\rhd"     #X22B3)
 ("\\unlhd"   #X22B4)
 ("\\unrhd"   #X22B5))
(mapc (lambda (x)
        (if (cddr x)
            (quail-defrule (cadr x) (car (cddr x)))))
      (append math-symbol-list-basic math-symbol-list-extended))

इनपुट विधि को सक्रिय करने के लिए, टाइप करें C-u C-\ math RET। फिर, टाइपिंग \ mscrC पैदावार typing, \ lParen पैदावार etc., आदि।


1
एप्लाइंग-टू-इनपुट-मेथड काम नहीं लगता है ( invalid Quail map nil)। मैंने अब गणित-प्रतीक-सूचियों के साथ एक कस्टम इनपुट पद्धति पर स्विच किया है, जो अच्छी तरह से काम करता है।
लेफ्टरनैबाउट

1

मैं insert-charयूनिकोड वर्ण सम्मिलित करने के लिए उपयोग कर रहा था । हालाँकि मैं उस आदेश के लिए डिफ़ॉल्ट पूर्ण होने की सराहना नहीं करता था। तो यहाँ एक है कि के साथ पूरा होता है helm:

(defun helm-insert-char ()
  (interactive)
  (helm :sources
      `((name . "Unicode char name")
        (candidates . ,(ucs-names))
        (action . insert))))

और यहाँ lambdas के प्रकार है कि मैं सम्मिलित कर सकते हैं कर रहे हैं: λ, Λ, ƛ, ƛ। मैंने कमांड को बाध्य किया है f2 u, इसलिए इन्हें सम्मिलित करने का क्रम था:

f2 u lambda RET

f2 u M-p C-n RET

f2 u M-p C-n C-n RET

...


2
यह एक उपयोगी चाल की तरह दिखता है, लेकिन यह वास्तव में मेरे सवाल का जवाब नहीं देता है। मैं विशेष रूप से एक इनपुट विधि को संशोधित या विस्तारित करना चाहता हूं क्योंकि यह मेरे मौजूदा वर्कफ़्लो में बहुत अच्छी तरह से फिट बैठता है।
तिखन जेल्विस 21
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.