如何在 emacs auctex 数学模式中在 \hat (或 \tilde、\bar)后自动添加括号

如何在 emacs auctex 数学模式中在 \hat (或 \tilde、\bar)后自动添加括号

在量子力学中输入运算符时,会出现很多类似“\hat{...}”的内容。但在数学模式下,输入apostrophe+^只会给出\hat数学环境内部的结果。

我如何修改.emacs文件以实现在宏后自动添加一对括号并将光标放在括号内,例如\hat{cursor},正如 Ctrl++ frac给出的。顺便说一句C Ctrl,如果可以保留键绑定+会更好。MEnter\frac{cursor}{}`^

我试过建议邮报但没有任何运气。

多谢!

答案1

请注意我不是 emacs 专家,根据您链接的帖子,以下方法对我有用(我已将其绑定到 C-^,据我所知,它是未定义的,否则 C-| 和 C-~ 也是如此,但显然绑定是一个品味问题):

(defun LaTeX-insert-hat ()
  "Insert \\hat{} and position point between the braces."
  (interactive)
  (progn
    (insert "\\hat{}")
    (backward-char)))

(eval-after-load 'latex 
   '(define-key LaTeX-mode-map (kbd "C-^") 'LaTeX-insert-hat))

当然,lisp 会进入你的.emacs。对于任何其他操作员,你必须做出的改变是相当明显的。

如果您想要将函数绑定到启用 LaTeX-math-mode 时可用的撇号序列(这是 AUCTeX 之上的次要模式),那么请尝试使用上面的键绑定序列(例如,您的评论建议使用 M-^)

(eval-after-load 'latex 
                '(define-key LaTeX-math-mode-map (kbd "` M-^") 'LaTeX-insert-hat))

我个人认为我宁愿绑定到 M-6 而不是 M-^,因为必须先按反引号,然后按 shift-meta-6,这有点牵强。诀窍是确保键绑定是“免费的”。打开一个 latex 文件,将自己置于 LaTeX 数学模式 (Cc ~),然后按 Ch k。迷你缓冲区将要求您输入您想要描述的键,然后输入您喜欢的键序列。如果出现“未定义”,那么您就可以开始了!如果出现其他内容,那么您需要找到不同的序列。

yasnippet或者你当然可以看看;或者重新定义 LaTeX-math-hat,它是绑定到的 AUCTeX 函数[backtick]-^(在我的版本中没有添加括号)。

(我还应该补充一点:你是否考虑过electric-pair-mode:在那个次要模式下,如果你输入一个分隔符{,就会自动插入第二个分隔符,并将光标放在它们之间。有些人讨厌它:但它是一个更通用的解决方案,因为它适用于任何命令,尽管这会花费您一次额外的击键,但它仍然可以为您节省一次击键,并确保您不会得到不平衡的括号。)

相关内容