重新定义AUCTeX字体并编译键绑定

时间:2013-01-31 15:24:21

标签: emacs elisp auctex

我想将字体绑定(例如C-c C-f C-b)修改为更快的内容,例如C-b。 为了实现所涉及的功能,我尝试使用C-h k,但我无法正确终止键序列:事实上,当我键入C-c C-f时,它会触发TeX-font命令的帮助页面。

其次,我想覆盖C-c C-c中的确认。我不明白如何使用OVERRIDE-CONFIRM参数,尤其是如何将所有内容与新绑定相关联,比如F1,没有确认。

感谢您的帮助。

2 个答案:

答案 0 :(得分:4)

auctex字体键绑定特别难以整理,因为您使用的命令使用带有“c”代码字母的interactive函数。因此,C-c C-f调用函数TeX-font,并将您键入的下一个字母作为要传递给此函数的参数收集。所以C-c C-f绑定到一个函数,但就像一个前缀。有关完整说明,请参阅链接的手册页。

这意味着作为评论提供的通常建议不足以获得您想要的内容。您需要调用的关键代码是TeX-font。获取正确的参数需要深入挖掘源代码。我在.emacs中使用以下函数:

(defun TeX-typewriter()
  (interactive)
  (TeX-font nil ?\C-t))

(defun TeX-bold()
  (interactive)
  (TeX-font nil ?\C-b))

(defun TeX-emphasis()
  (interactive)
  (TeX-font nil ?\C-e))

(defun TeX-smallcaps()
  (interactive)
  (TeX-font nil ?\C-c))

定义了这些函数后,我在LaTeX-mode-hook中应用了键绑定:

(defun my-LaTeX-hook ()
  (local-set-key "\C-ci" 'TeX-italics)
  (local-set-key "\C-cb" 'TeX-bold)
  (local-set-key "\C-ct" 'TeX-typewriter)
  (local-set-key "\C-ce" 'TeX-emphasis)
  (local-set-key "\C-cs" 'TeX-smallcaps))

(add-hook 'LaTeX-mode-hook 'my-LaTeX-hook)

这会将TeX-bold绑定到C-c b,但您可以在此处使用您喜欢的任何内容(例如C-b)。

答案 1 :(得分:0)

用我的"权力"我无法在Tyler代码中修复一点错误。在这里,我部分重写了它,我也为问题的第二部分提供了解决方案。

重新定义AUCTeX字体键绑定

假设我们要设置这些字体绑定(但您可以随意修改它们):

Italic      "\C-ci" 
Bold        "\C-cb" 
Typewriter  "\C-ct" 
Emphasis    "\C-ce" 
Smallcaps   "\C-cs" 

将这些行添加到您的init.el,或者您的Emacs初始文件的名称:

(defun TeX-italic()
  (interactive)
  (TeX-font nil ?\C-i))

(defun TeX-bold()
  (interactive)
  (TeX-font nil ?\C-b))

(defun TeX-typewriter()
  (interactive)
  (TeX-font nil ?\C-t))

(defun TeX-emphasis()
  (interactive)
  (TeX-font nil ?\C-e))

(defun TeX-smallcaps()
  (interactive)
  (TeX-font nil ?\C-c))

(defun latex-font-hook ()
  (local-set-key "\C-ci" 'TeX-italic)
  (local-set-key "\C-cb" 'TeX-bold)
  (local-set-key "\C-ct" 'TeX-typewriter)
  (local-set-key "\C-ce" 'TeX-emphasis)
  (local-set-key "\C-cs" 'TeX-smallcaps))

(add-hook 'LaTeX-mode-hook 'latex-font-hook)

如果您对此处使用的密钥不满意,请根据需要更改local-set-key的第一个参数,例如设置(local-set-key "\C-b" 'TeX-bold)以绑定到Control-b。

重新定义AUCTeX编译键绑定

要修改C-c C-c键绑定并可能改进绑定的编译功能(TeX-command-master),请参阅我的帖子Build & view

相关问题