ユニコードシンボルの高速挿入?


8

現在、TeX入力メソッドを使用してUnicode文字(主に数学記号)を挿入しています。これは面倒です。なぜなら、各キャラクターについて、私は以下をしなければならないからです:

  1. TeX入力方法に切り替える C-\
  2. タイプラテックス式\Bbb{R}または\Leftrightarrow

ユニコード文字の比較的小さなサブセット(10〜20)があり、常に挿入しています。

Q:少数(2-4)のキーストロークでUnicode文字を挿入する方法はありますか?



1
毎回TeX入力メソッドに切り替える必要がないことは、おそらく言及する価値があります。オンのままにしておくことができます。唯一の欠点は、あなたが文字通りのバックスラッシュたいとき\\入力する必要がある
非推奨

回答:


6

を使用abbrev-modeして、目的のUnicode文字に「拡張」する文字列を作成できます。たとえば、次のabbrev表はギリシャ語のアルファベットの最初の3つの小文字の略語を定義しています。

(define-abbrev-table 'unicode-table
  '(("ualpha" "α")
    ("ubeta"  "β")
    ("ugamma" "γ"))
    "Unicode characters I use all the time.")

次にtext-mode、Unicodeテーブルを継承するように(または他の任意のモード)に指示できます。

(define-abbrev-table 'text-mode-abbrev-table
  nil
  "Text mode abbrev table."
  :parents (list unicode-table))

テキストモードでバッファに移動します。をオンにしabbrev-modeます。入力ualphaと非単語の文字(スペース、ピリオド、など)、およびそれがαに拡大観察します。


6

elisp関数global-set-keyとを使用して、独自のキーシーケンスを定義できますlocal-set-key。そのため、ユーザー定義のキーシーケンスにはC-c、1文字を使用することをお勧めします。(それ以外の場合は、他のemacs-lispライブラリによってバインドされたキーシーケンスを上書きする可能性があります。後で、キーシーケンスのライブラリバージョンが非常に役立つことがわかったときに問題が発生します。)

これらのシーケンスをメジャーモードとは無関係に使用する場合は、グローバルにバインドできます。

たとえば、次のように追加できます

(global-set-key (kbd "C-c a") "⇔")

あなたの設定ファイルに~/.emacs

または、メジャーモードに応じてこれらのキーを使用できます。

例は次のとおりです。

(defun my-latex-hook-function () (local-set-key (kbd "C-c a") "⇔"))
(add-hook 'TeX-mode-hook 'my-latex-hook-function)

これはで動作しauctexます。あなたはネイティブを使用している場合、tex-modeまたはlatex-modeそれはあなたが交換する必要があることかもしれませんTeX-mode-hooktex-mode-hook


にもinsert-charバインドされていることに注意してくださいC-x 8 RET。これにより、コードがわかっている場合は、utf8文字を入力できます。コードがわからない場合は、説明で入力できますが、面倒です。


company-math-Modeac-math-modeなど、latexシンボルの入力でユーザーをサポートする特別なモードもあります。

どちらも補完モードです。companyマウスメニューで機能し、ac(オートコンプリート)は- tabキーで機能します。

しかし、これらのパッケージの現在のステータスについてはわかりません。これらのモードを試したい場合は、melpaごとにインストールできます。


FWIW:ユーザーは、好きなキーシーケンスを使用できます。で始まるキーシーケンスの利点は、C-cEmacsまたは使用するライブラリによって提供されるキーバインディングと競合しないことを確認できることです。
2016

@Drewはい、私はそれを知っています。ライブラリのキーシーケンスとの競合の潜在的なリスクが私の推奨の理由です。
トビアス

はい、わかりました。私のコメントは、「Ccとユーザー定義のキーシーケンスには1文字を使用するための規則に従う必要があるとは異なる印象を与える可能性がある回答の読者のためにありましたユーザー定義のキーを使用するための規則はありません Ccプラス文字。私は同意するに違いない-私はこれを読者に明確にしたかっただけだ。あなたがいることを言っていた場合にお勧めします(理由を言ってボーナスポイント)は、Ccのプラス文字を使用することを、私はコメントしなかったでしょう。HTH。
ドリュー

@Drewそれが私がリンクを追加した理由でした。リンクされたテキストはすべてを明確にします。さて、本文にもメモを追加しました。
トビアス

3

あなたは言う:ユニコード文字の比較的小さなサブセットがあります(私は10-20と推測しています)私は常に挿入しています。

その場合、@ Tobiasが示すように、それぞれに対して、(a)その文字を挿入するコマンド、または(b)その文字を含む単一文字の文字列(これは文字を挿入するためのキーボードマクロ)。

ライブラリucs-cmds.elは、そのようなコマンドを定義するのに役立ちます。結果のコマンドには、文字と同じ名前があります。マクロucsc-make-commandsを使用して、特定の種類の文字を挿入するコマンドのセット全体を定義できます。

たとえば、これをinitファイルに入れて、すべてのUnicode数学記号を挿入するコマンドを定義できます。

(require 'ucs-cmds)           ; Load the library
(ucsc-make-commands "^math")  ; Use the macro to create commands

これは、数学文字と同じ名前のコマンドを提供します。よく使用するものを使いやすいキーにバインドします。例えば:

(global-set-key (kbd "C-c S") 'mathematical-bold-capital-sigma)

(または、キーdefine-keyマップを使用して、Texモードでのみ、このようなコマンドにキーをバインドします。)

これだけ(ucsc-make-commands "^math")で、以下にリストされているすべての文字挿入コマンドを使用できます。

文字で始まる名前ではなくmath、数学で使用される他のUnicode文字もありますPARTIAL DIFFERENTIAL。これらの文字を挿入するコマンドも簡単に作成できます。(そして、名前が始まる文字mathは特別なフォントを使用する必要があるかもしれないことに注意してください-多くのフォントはそれらをサポートしていません。)

もちろん、^mathそのようなパターンに一致する文字のみを定義する場合は、よりも厳密な正規表現を使用できます。たとえば、これはすべての部分差分文字に対するコマンドを定義します。

(ucsc-make-commands "^math.*partial differential")

それはあなたにこれらのコマンドを与えます:

mathematical-bold-italic-partial-differential
mathematical-bold-partial-differential
mathematical-italic-partial-differential
mathematical-sans-serif-bold-italic-partial-differential
mathematical-sans-serif-bold-partial-differential

Unicode文字名は単語をスペース文字で区切り、名前は大文字であることに注意してください。対応する挿入コマンドでは、スペースではなくハイフンを使用し、大文字ではなく小文字を使用します。

たとえば、文字のシングルトン文字列にキーをバインドするだけでなく、挿入する文字にちなんでコマンドに名前を付ける利点の1つは、M-x使用頻度の低い文字を、補完を使用して名前で入力できることです。Unicode文字名のセット全体を補完する代わりに、定義した文字挿入コマンドの名前を補完します。


これらは、名前がで始まる文字を挿入するコマンドですmath。それらはあなたが評価することによって得られるものです(ucsc-make-commands "^math")

mathematical-bold-capital-a
mathematical-bold-capital-alpha
mathematical-bold-capital-b
mathematical-bold-capital-beta
mathematical-bold-capital-c
mathematical-bold-capital-chi
mathematical-bold-capital-d
mathematical-bold-capital-delta

...

mathematical-bold-digit-eight
mathematical-bold-digit-five
mathematical-bold-digit-four

...

mathematical-bold-epsilon-symbol
mathematical-bold-fraktur-capital-a
mathematical-bold-fraktur-capital-b

...

mathematical-bold-fraktur-small-a
mathematical-bold-fraktur-small-b

...

mathematical-bold-italic-capital-a
mathematical-bold-italic-capital-alpha
mathematical-bold-italic-capital-b
mathematical-bold-italic-capital-beta

...

mathematical-bold-italic-nabla
mathematical-bold-italic-partial-differential
mathematical-bold-italic-phi-symbol
mathematical-bold-italic-pi-symbol
mathematical-bold-italic-rho-symbol
mathematical-bold-italic-small-a
mathematical-bold-italic-small-alpha
mathematical-bold-italic-small-b
mathematical-bold-italic-small-beta

...

mathematical-bold-nabla
mathematical-bold-partial-differential
mathematical-bold-phi-symbol
mathematical-bold-pi-symbol
mathematical-bold-rho-symbol
mathematical-bold-script-capital-a
mathematical-bold-script-capital-b

...

mathematical-bold-script-small-a
mathematical-bold-script-small-b

...

mathematical-bold-small-a
mathematical-bold-small-alpha
mathematical-bold-small-b
mathematical-bold-small-beta

...

mathematical-double-struck-capital-a
mathematical-double-struck-capital-b

...

mathematical-double-struck-digit-eight
mathematical-double-struck-digit-five
mathematical-double-struck-digit-four
mathematical-double-struck-digit-nine
mathematical-double-struck-digit-one
mathematical-double-struck-digit-seven
mathematical-double-struck-digit-six
mathematical-double-struck-digit-three
mathematical-double-struck-digit-two
mathematical-double-struck-digit-zero
mathematical-double-struck-small-a
mathematical-double-struck-small-b

...

mathematical-falling-diagonal
mathematical-fraktur-capital-a
mathematical-fraktur-capital-b

...

mathematical-fraktur-small-a
mathematical-fraktur-small-b

...

mathematical-italic-capital-a
mathematical-italic-capital-alpha
mathematical-italic-capital-b
mathematical-italic-capital-beta

...

mathematical-italic-nabla
mathematical-italic-partial-differential
mathematical-italic-phi-symbol
mathematical-italic-pi-symbol
mathematical-italic-rho-symbol
mathematical-italic-small-a
mathematical-italic-small-alpha

...

mathematical-italic-small-dotless-i
mathematical-italic-small-dotless-j
mathematical-italic-small-e
mathematical-italic-small-epsilon

...

mathematical-italic-small-final-sigma

...

mathematical-left-angle-bracket
mathematical-left-double-angle-bracket
mathematical-left-flattened-parenthesis
mathematical-left-white-square-bracket
mathematical-left-white-tortoise-shell-bracket
mathematical-monospace-capital-a
mathematical-monospace-capital-b

...

mathematical-monospace-digit-eight
mathematical-monospace-digit-five
mathematical-monospace-digit-four

...

mathematical-monospace-small-a
mathematical-monospace-small-b

...

mathematical-right-angle-bracket
mathematical-right-double-angle-bracket
mathematical-right-flattened-parenthesis
mathematical-right-white-square-bracket
mathematical-right-white-tortoise-shell-bracket
mathematical-rising-diagonal
mathematical-sans-serif-bold-capital-a
mathematical-sans-serif-bold-capital-alpha
mathematical-sans-serif-bold-capital-b
mathematical-sans-serif-bold-capital-beta

...

mathematical-sans-serif-bold-digit-eight
mathematical-sans-serif-bold-digit-five
mathematical-sans-serif-bold-digit-four

...

mathematical-sans-serif-bold-italic-capital-a
mathematical-sans-serif-bold-italic-capital-alpha
mathematical-sans-serif-bold-italic-capital-b
mathematical-sans-serif-bold-italic-capital-beta

...

mathematical-sans-serif-bold-italic-nabla
mathematical-sans-serif-bold-italic-partial-differential

...

mathematical-sans-serif-bold-italic-small-a
mathematical-sans-serif-bold-italic-small-alpha
mathematical-sans-serif-bold-italic-small-b
mathematical-sans-serif-bold-italic-small-beta

...

mathematical-sans-serif-bold-italic-small-final-sigma

...

mathematical-sans-serif-bold-nabla
mathematical-sans-serif-bold-partial-differential

...

mathematical-sans-serif-bold-small-a
mathematical-sans-serif-bold-small-alpha
mathematical-sans-serif-bold-small-b
mathematical-sans-serif-bold-small-beta

...

mathematical-sans-serif-bold-small-final-sigma

...

mathematical-sans-serif-capital-a
mathematical-sans-serif-capital-b

...

mathematical-sans-serif-digit-eight
mathematical-sans-serif-digit-five
mathematical-sans-serif-digit-four

...

mathematical-sans-serif-italic-capital-a
mathematical-sans-serif-italic-capital-b

...

mathematical-sans-serif-italic-small-a
mathematical-sans-serif-italic-small-b

...

mathematical-sans-serif-small-a
mathematical-sans-serif-small-b

...

mathematical-script-capital-a

...

mathematical-script-small-a
mathematical-script-small-b

...

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.