繁体   English   中英

Emacs / Auctex:自动启用/禁用LaTeX-Math模式

[英]Emacs/Auctex: Automatically enabling/disabling LaTeX-Math-mode

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

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

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

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

以下改进留作练习:

  • 使它成为次要模式。

  • 使其对意外输入更加稳健(我只测试了基本操作)。

  • 如果用户按下未绑定的键序列,则显示更好的错误消息。

  • 如果用户按Chf1则显示帮助。

LaTeX-math-mode“用于输入带有许多数学符号的文本的特殊次要模式”。 (对于那些不知道怎么做的人,你按下例如'A并得到\\ forall。)所以我想如果你没有输入数学也没有伤害它。

因此,信息页面建议:

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

恕我直言,唯一的缺点是你必须按两次前缀:``得到`,至少可以使用在LaTeX-math-abbrev-prefix定制的标准前缀`。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM