Làm cách nào để thêm ký tự vào phương thức nhập?


14

Tôi thường sử dụng TeXphương thức nhập để nhập các ký tự Unicode như thế λ, khá tiện dụng. Tuy nhiên, một số ký tự tôi muốn nhập không được hỗ trợ như các mục con khác nhau (giả sử ), các ký tự tập lệnh (như 𝒞) và các ký hiệu khác nhau (như ).

Làm cách nào tôi có thể mở rộng phương thức nhập TeX để hỗ trợ một số ký tự này bằng chuỗi đầu vào tùy chỉnh (nghĩa là _icho )?


1
Bài viết EmacsWiki này cho thấy hiển thị để làm điều đó: emacswiki.org/emacs/TeXInputMethod
Augusto

1
Ngoài ra, tệp này từ ac-math github.com/vitoshka/ac-math/blob/master/ac-math.el có thể dễ dàng thay đổi thành phương thức nhập TeX-esque mới và hoàn chỉnh hơn nhiều.
Augusto

1
Cả hai liên kết này đều hữu ích. Bạn có thể đặt chúng vào một câu trả lời thực tế (lý tưởng với các bit có liên quan được trích dẫn ở đây) để câu hỏi này có thể được đánh dấu là đã trả lời không? Cảm ơn!
Tikhon Jelvis

Câu trả lời:


12

Như đã giải thích trong bài viết EmacsWiki này , bạn có thể nối các công cụ vào một phương thức nhập liệu như thế này:

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

Tôi cũng thấy thuận tiện khi sử dụng ;thay vì rườm rà \làm tiền tố cho các biểu tượng của mình, vì vậy tôi làm như sau

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

Cuối cùng, lưu ý rằng tệp ac-math.el chứa danh sách các ký tự toán học unicode và tên macro TeX tương ứng và có thể dễ dàng thay đổi thành phương thức nhập TeX-esque mới và hoàn chỉnh hơn nhiều (tôi thậm chí có thể nhập \gamma\dotđể nhận .)


PHỤ LỤC Sử dụng gói mới math-biểu tượng-danh sách (có sẵn trên MELPA) người ta có thể định nghĩa một phương thức nhập liệu toán học toàn diện như sau:

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

Để kích hoạt phương thức nhập, gõ C-u C-\ math RET. Sau đó, gõ \ mscrC mang lại, \ lParen mang lại ⦅, v.v.


1
Điều phương thức nối thêm vào đầu vào dường như không hoạt động ( invalid Quail map nil). Bây giờ tôi đã chuyển sang một phương thức nhập tùy chỉnh với các danh sách ký hiệu toán học, hoạt động độc đáo.
leftaroundabout 8/11/2015

1

Tôi đã sử dụng insert-charđể chèn ký tự Unicode. Tuy nhiên tôi không đánh giá cao việc hoàn thành mặc định cho lệnh đó. Vì vậy, đây là một trong đó hoàn thành với helm:

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

Và đây là các loại lambdas mà tôi có thể chèn: λ, Λ, ƛ, ƛ. Tôi đã ràng buộc lệnh này f2 u, vì vậy trình tự để chèn chúng là:

f2 u lambda RET

f2 u M-p C-n RET

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

...


2
Trông giống như một mẹo hữu ích, nhưng nó không thực sự trả lời câu hỏi của tôi. Tôi đặc biệt muốn sửa đổi hoặc mở rộng một phương thức nhập vì nó rất phù hợp với quy trình làm việc hiện tại của tôi.
Tikhon Jelvis
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.