
AUCTEX/emacs に、次のようなエスケープ括弧を生成するショートカットはありますか?
「インライン数式環境」の略語
\( <cursor here> \)
カーソルはこの「ミニ環境」の真ん中に置かれます
文の途中で Math と書けるようにするためです。
チートシートとマクロを試しましたが、カーソルを中央に残すことができません。
代替案やヒントを歓迎します(私は空き時間に AUCTEX を学ぼうとしている大学生です)
答え1
AUCTeX では、関数を自分で定義しなくても、すぐに使えるオプションがいくつか用意されています。これらは両方ともマニュアルに記載されており、相互に排他的ではないため、両方を有効にして同時に使用できます。
初め:TeX-electric-math
(add-hook 'plain-TeX-mode-hook
(lambda () (set (make-local-variable 'TeX-electric-math)
(cons "$" "$"))))
(add-hook 'LaTeX-mode-hook
(lambda () (set (make-local-variable 'TeX-electric-math)
(cons "\\(" "\\)"))))
このコードを押すだけで$入場でき\(...\)
ますLaTeX-mode
2番目:LaTeX-electric-left-right-brace
(setq LaTeX-electric-left-right-brace t)
これを使用すると、入力する\(
とポイントの後に閉じ文字\)
が追加されます。
答え2
ペアリングのあらゆるニーズに、私は素晴らしいパッケージを使用していますスマート括弧必要なペアを含めるには、次の手順を実行します。
まず、インストール(Melpa などを使用)しsmartparenthesis
てからロードします。私はusepackage
これを使用しますが、パッケージの作成者が提案する方法は、単にこれを実行することです。
(require 'smartparens-config)
重要なコードはここにあります:
(sp-with-modes '(tex-mode plain-tex-mode latex-mode)
(sp-local-pair "\\\(" "\\\)"))
最初に最初の をエスケープすることに注意してください\
(つまり )。\\
次に開き括弧をエスケープします (つまり )。\(
これにより、完全なシーケンスは次のようになります。\\\(
閉じ括弧についても同様です。
お気に入りのLaTeX
ペアをすべて追加できます。これは私自身の完全な設定です(他の人から部分的にコピーしたものです)。
(sp-with-modes '(tex-mode
plain-tex-mode
latex-mode
)
;; math modes, yay. The :actions are provided automatically if
; these pairs do not have global definition.
(sp-local-pair "$" "$")
(sp-local-pair "\[" "\]")
(sp-local-pair "\{" "\}")
(sp-local-pair "‘" "’")
(sp-local-pair "“" "”")
(sp-local-pair "\\begin" "\\end")
;;; tex-mode latex-mode
(sp-local-tag "i" "\"<" "\">")
(sp-local-pair "\\[" nil :unless '(sp-point-before-word-p))
(sp-local-pair "$" nil :unless '(sp-point-before-word-p))
)
答え3
@Phil Hirschhornの優れた例を使用して、Alt-mを押したときに「エスケープ括弧」を挿入する関数を作成しました。
追加する
.emacs
M-m
有効にするために
(defun escape-parentheses ()
"we insert escape parenthesis for math-mode
and move the cursor to the center"
(interactive)
(progn
(insert "\\( \\)")
(backward-char 4)
)
)
(global-set-key "\em" 'escape-parentheses)