入力メソッドに文字を追加するにはどうすればよいですか?


14

私はよくTeX入力メソッドを使用して、などのUnicode文字を入力しますλ。これは非常に便利です。しかし、私がタイプしたい文字のいくつかの様々な添字のようにサポートされていません(と言う)、スクリプト文字(のような𝒞)および他の様々なシンボル(のようにして)。

どのように私は、カスタムの入力文字列(つまり、これらの文字の一部をサポートするために、TeXの入力方法を拡張することができます_i)?


1
このEmacsWikiの記事は、それを行うためのショーを示しています:emacswiki.org/emacs/TeXInputMethod
Augusto

1
また、ac-math github.com / vitoshka / ac-math / blob / master / ac-math.elからのこのファイルは、新しい完全なTeX風の入力メソッドに簡単に変更できます。
アウグスト14

1
これらのリンクはどちらも便利に見えます。この質問に回答済みのマークを付けることができるように、実際の回答に入れてください(ここに引用されている関連ビットを使用してください)。ありがとう!
ティコンジャービス14

回答:


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風の入力メソッドに簡単に変更できることに注意してください(\gamma\dotγ )


補遺 新しいパッケージの使用数学記号・リストは以下のように、1つの総合的な数学的な入力方法を定義することができます(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)。math-symbol-listsを使用するカスタム入力メソッドに切り替えましたが、うまく機能します。
左回り

1

insert-charUnicode文字を挿入するために使用していました。しかし、そのコマンドのデフォルトの補完には感謝しませんでした。だからここで完了するもの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
これは便利なトリックのように見えますが、実際には私の質問には答えません。インプットメソッドは既存のワークフローに非常によく適合するため、特に修正または拡張したいと思います。
ティコンジャービス14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.