Auctex:如何使用电子对自动关闭数学模式美元

Auctex:如何使用电子对自动关闭数学模式美元

我使用 electric-pair 模式使括号自动闭合,这样当我输入({[,闭合括号也会自动输入到缓冲区中,光标会放在它们之间。但是,我似乎无法让它以相同的方式处理。也许这与绑定到 的$事实有关,并且可能 electric-pair 不会以与 相同的方式处理。我试过按照这些思路操作,但我无法获得我想要的行为。TeX-insert-dollar$$(

答案1

最后它比我想象的要简单。

(electric-pair-mode)
(add-hook 'LaTeX-mode-hook
          '(lambda ()
            (define-key LaTeX-mode-map (kbd "$") 'self-insert-command)))

这只是删除了TeX-insert-dollar绑定$并以某种方式(electric-pair-mode)接管并意识到这$是该上下文中的括号。

答案2

为了在 LaTeX 模式下插入内容,我在 .emacs 中使用以下代码:

(defun brf-TeX-Inserting (sta stb stc num)
  " after entering stb insert stc and go back with the cursor by num positions.
    With prefix nothings gets replaced. If the previous char was sta nothing will be 
    replaces as well." 
  (if (null current-prefix-arg)
      (progn
        (if (= (preceding-char) sta )
            (insert stb)
          (progn (insert stc) (backward-char num))))
    (insert stb)))

(defun brf-TeX-dollarm () (interactive) (brf-TeX-Inserting ?\\ "$"  "$$" 1))

(add-hook 'LaTeX-mode-hook
   (function (lambda ()
       (local-set-key (kbd "$")      'brf-TeX-dollarm))))

然后键入$插入对$$并将光标放在中间。

答案3

我用cdlatex-mode它来(EmacsWiki埃利斯)。它还有许多其他功能使输入更加容易(例如,在任何环境下自动插入成对的\begin{environment}和,成对的和,输入获取等,以及每次输入或时插入成对的(将光标放在里面) 。需要一段时间才能习惯它的实用性,但一旦熟悉它就会非常方便。\end{environment}\left\right`a\alpha{}_^

答案4

我正在使用这个。它的优点是您可以标记某些内容,然后输入 $ 也会将其括在美元符号中。但是它没有输入另一个 $ 应覆盖自动创建的结束 $ 的功能。

(defun D-active-mark ()
    (and transient-mark-mode mark-active))


(defun  LaTeX-insert-dollar(arg)
  (interactive "P")
  (if (D-active-mark)
      (progn
    (if (< (point) (mark))
        (exchange-point-and-mark))
    (insert "$")
    (save-excursion
      (goto-char (mark))
      (insert "$")))
    (insert "$")
    (save-excursion
      (if arg (forward-sexp (prefix-numeric-value arg)))
      (insert "$"))))

(add-hook 'LaTeX-mode-hook
          '(lambda ()
            (define-key LaTeX-mode-map "$" 'LaTeX-insert-dollar) ))

相关内容