Bir giriş yöntemine nasıl karakter ekleyebilirim?


14

Ben sık sık TeXgibi λoldukça kullanışlı olan Unicode karakterleri yazmak için giriş yöntemini kullanın . Ancak, yazmak istediğim bazı karakterler çeşitli abonelikler (örneğin ), komut dosyası karakterleri (gibi 𝒞) ve diğer çeşitli simgeler ( ve gibi ) tarafından desteklenmiyor.

TeX giriş yöntemini bu karakterlerden bazılarını özel giriş dizesiyle (ör. _iİçin ) desteklemek için nasıl genişletebilirim ?


1
Bu EmacsWiki makalesi bunu göstermeyi gösteriyor: emacswiki.org/emacs/TeXInputMethod
Augusto

1
Ayrıca, ac-math github.com/vitoshka/ac-math/blob/master/ac-math.el adresindeki bu dosya kolayca yeni ve çok daha eksiksiz bir TeX-esque giriş yöntemine dönüştürülebilir.
Augusto

1
Bu bağlantıların her ikisi de yararlı görünüyor. Bu sorunun cevaplanmış olarak işaretlenebilmesi için gerçek bir cevaba koyabilir misiniz (ideal olarak burada belirtilen ilgili bitlerle)? Teşekkürler!
Tikhon Jelvis

Yanıtlar:


12

Bu EmacsWiki makalesinde açıklandığı gibi , aşağıdakiler gibi bir giriş yöntemine malzeme ekleyebilirsiniz:

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

Ayrıca , sembollerim için bir önek olarak ;hantal yerine kullanmayı uygun buluyorum \, bu yüzden aşağıdakileri yapıyorum

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

Son olarak, ac-math.el dosyasının unicode matematik karakterlerinin bir listesini ve karşılık gelen TeX makro adlarını içerdiğini ve kolayca yeni ve çok daha eksiksiz bir TeX-esque giriş yöntemine dönüştürülebileceğini unutmayın ( \gamma\doteven .)


EK Yeni matematik sembol listelerini (MELPA'da mevcuttur) kullanarak kapsamlı bir matematiksel giriş yöntemi aşağıdaki gibi tanımlanabilir:

(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))

Giriş yöntemini etkinleştirmek için yazın C-u C-\ math RET. Ardından, \ mscrC yazmak 𝒞, \ lParen verimliliği ⦅vb. Verir.


1
Girdi-girdi-yöntem şey işe yaramıyor ( invalid Quail map nil). Şimdi matematik-sembol listeleri ile özel bir giriş yöntemine geçtim, güzel çalışıyor.
leftaroundabout

1

insert-charUnicode karakterleri eklemek için kullanıyordum . Ancak bu komut için varsayılan tamamlamayı takdir etmedim. İşte burada tamamlanmış olan helm:

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

Ve burada ben ekleyebileceğinizi lambdas türleri şunlardır: λ, Λ, ƛ, ƛ. Ben komutu bağlı f2 u, bu yüzden bu eklemek için sıra:

f2 u lambda RET

f2 u M-p C-n RET

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

...


2
Yararlı bir numara gibi görünüyor, ama sorumu gerçekten cevaplamıyor. Özellikle bir giriş yöntemini değiştirmek veya genişletmek istiyorum çünkü mevcut iş akışıma çok iyi uyuyor.
Tikhon Jelvis
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.