AUCTEX/emacs 中是否有生成以下转义括号的快捷方式:

AUCTEX/emacs 中是否有生成以下转义括号的快捷方式:

AUCTEX/emacs 中是否有生成以下转义括号的快捷方式:

“内联数学环境”的简写

\(  <cursor here>  \)

这样就将光标置于这个“微环境”的中间

这样我就可以在句子中间写数学。

我已尝试过备忘单和宏,但仍无法让光标停留在中间。

欢迎提供替代方案/提示(我是一名本科生,正在业余时间学习 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

第二: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)

相关内容