AUCTEX/emacs に、次のようなエスケープ括弧を生成するショートカットはありますか?

AUCTEX/emacs に、次のようなエスケープ括弧を生成するショートカットはありますか?

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)

関連情報