6

我将 Emacs 与 AucTeX 结合使用(运行 Ubuntu 10.04,如果这很重要)。

$...$如果点在任何数学环境中(即在 a 、 a $$...$$、等中),有谁知道是否有办法自动启用 LaTeX-math-mode (AucTeX 的次要模式begin{equation}...\end{equation})?

我想有一个相对简单的答案,因为语法突出显示使用相同的标准来着色数学内容,但我找不到任何东西。

4

2 回答 2

6

如果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

于 2010-08-12T10:53:22.920 回答
4

LaTeX-math-mode“一种特殊的次要模式,用于输入带有许多数学符号的文本。” (对于那些不知道如何操作的人,您可以按例如 `A 并获得 \forall。)所以我想如果您没有进入数学,也不要担心将其打开。

因此,信息页面建议:

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

恕我直言,唯一的缺点是您必须按两次前缀:` 才能获得 `,至少这适用于在 中自定义的标准前缀 ` LaTeX-math-abbrev-prefix

于 2010-08-12T09:46:05.890 回答