我正在将Emacs与AucTeX结合使用(运行Ubuntu 10.04,如果这很重要的话)。
有没有人知道是否有办法自动启用LaTeX-math-mode(AucTeX的次要模式),如果该点在任何数学环境中(即$...$
,$$...$$
,begin{equation}...\end{equation}
,等等)?
我想有一个相对简单的答案,因为语法高亮使用相同的标准来着色数学,但我找不到任何东西。
答案 0 :(得分:5)
如果andre-r的答案不能满足您的要求,这里有一些代码可以将`
设置为在文本模式下自我插入,并在数学模式下充当数学模式前缀。 LaTeX-math-mode
必须关闭。
(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
,则显示帮助。
答案 1 :(得分:3)
LaTeX-math-mode
是“用于输入带有许多数学符号的文本的特殊次要模式。”(对于那些不知道如何的人,你按下例如'A并得到\ forall。 )所以我想,如果你不输入数学,那么留下它也没有坏处。
因此,信息页面建议:
(add-hook 'LaTeX-mode-hook 'LaTeX-math-mode)
恕我直言,唯一的缺点是你必须按两次前缀:``得到`,至少可以使用LaTeX-math-abbrev-prefix
中定制的标准前缀`。