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.