我使用Emacs与AucTeX(运行Ubuntu 10.04,如果有的话)。Emacs/Auctex:自动启用/禁用LaTeX数学模式
有谁知道是否有一种方法来自动启用乳胶数学模式(AucTeX的次要模式),如果该点在任何数学环境(即在$...$
,一个$$...$$
,begin{equation}...\end{equation}
,等等) ?
我想有一个相对简单的答案,因为语法突出显示使用相同的标准着色数学的东西,但我找不到任何东西。
我使用Emacs与AucTeX(运行Ubuntu 10.04,如果有的话)。Emacs/Auctex:自动启用/禁用LaTeX数学模式
有谁知道是否有一种方法来自动启用乳胶数学模式(AucTeX的次要模式),如果该点在任何数学环境(即在$...$
,一个$$...$$
,begin{equation}...\end{equation}
,等等) ?
我想有一个相对简单的答案,因为语法突出显示使用相同的标准着色数学的东西,但我找不到任何东西。
如果andre-r的答案不满足您,下面是一些代码,它设置`
在文本模式下自插入,并在数学模式下充当数学模式前缀。 LaTeX-math-mode
必须是off。
(defun LaTeX-maybe-math()
"If in math mode, act as a prefix key for `LaTeX-math-keymap'.
Otherwise act as `self-insert-command'."
(interactive)
(if (texmathp)
(let* ((events (let ((overriding-local-map LaTeX-math-keymap))
(read-key-sequence "math: ")))
(binding (lookup-key LaTeX-math-keymap events)))
(call-interactively binding))
(call-interactively 'self-insert-command)))
(define-key LaTeX-mode-map "`" 'LaTeX-maybe-math)
以下改进留作练习:
使它成为一个次要的模式。
使其对于意外输入更加强大(我只测试了基本操作)。
如果用户按下未绑定的按键序列,则显示更好的错误消息。
如果用户按C-h
或f1
显示帮助。
LaTeX-math-mode
是“用于输入具有许多数学符号的文本的特殊次要模式”。(对于那些不知道如何操作的人,例如按“A”键即可)。所以我猜想,如果你不打算进入数学计算,那也不会伤害它。
信息页面,因此建议:
(add-hook 'LaTeX-mode-hook 'LaTeX-math-mode)
恕我直言,唯一的缺点是,你必须按两次前缀:``得到`,至少与标准前缀`在LaTeX-math-abbrev-prefix
定制工作。