입력 방법에 문자를 추가하려면 어떻게합니까?


14

종종 TeX입력 방법을 사용하여 와 같은 유니 코드 문자를 입력 λ하면 매우 편리합니다. 그러나 입력하려는 일부 문자는 다양한 아래 첨자 (예 :) , 스크립트 문자 (예 𝒞:) 및 기타 다양한 기호 (예 : ) 와 같이 지원되지 않습니다 .

사용자 정의 입력 문자열 (예 : _ifor )을 사용 하여 이러한 문자 중 일부를 지원하도록 TeX 입력 방법을 어떻게 확장 할 수 있습니까?


1
이 EmacsWiki 기사는 그것을 보여주기 위해 보여줍니다 : emacswiki.org/emacs/TeXInputMethod
Augusto

1
또한 ac-math github.com/vitoshka/ac-math/blob/master/ac-math.el 의이 파일을 새롭고 훨씬 더 완벽한 TeX-esque 입력 방법으로 쉽게 변경할 수 있습니다.
Augusto

1
두 링크 모두 유용하게 보입니다. 이 질문이 답변 된 것으로 표시 될 수 있도록 실제 답변 (이상적으로 인용 된 관련 비트 포함)에 넣을 수 있습니까? 감사!
Tikhon Jelvis

답변:


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는 유니 코드 수학 문자의 목록과 해당 텍 매크로 이름을 포함, 쉽게 새롭고 훨씬 더 완전한 텍 - 억양 입력 방식으로 변경 될 수있다 (I도 입력 할 수 있습니다 \gamma\dotGET γ에 .)


부록 새로운 패키지 수학 기호 목록 (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를 입력하면 𝒞, \ lParen은 ⦅등을 생성합니다.


1
입력 방법에 추가하는 것이 작동하지 않는 것 같습니다 ( invalid Quail map nil). 이제 수학 기호 목록을 사용하여 사용자 정의 입력 방법으로 전환했는데 잘 작동합니다.
leftaroundabout

1

insert-char유니 코드 문자를 삽입 하는 데 사용 했습니다. 그러나 나는 그 명령에 대한 기본 완성에 감사하지 않았다. 여기에 완성되는 것이 있습니다 helm:

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

그리고 여기에 내가 삽입 할 수 람다의 종류 : λ, Λ, ƛ, ƛ. 명령을에 바인딩 f2 u했으므로 삽입 순서는 다음과 같습니다.

f2 u lambda RET

f2 u M-p C-n RET

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

...


2
유용한 트릭처럼 보이지만 실제로 내 질문에 대답하지는 않습니다. 입력 방법이 기존 워크 플로에 매우 적합하기 때문에 특히 입력 방법 을 수정하거나 확장하고 싶습니다.
Tikhon Jelvis
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.