【问题标题】:Emacs/Auctex: Automatically enabling/disabling LaTeX-Math-modeEmacs/Auctex:自动启用/禁用 LaTeX-Math-mode
【发布时间】:2010-08-12 06:24:36
【问题描述】:

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

如果点在任何数学环境中(即在$...$$$...$$begin{equation}...\end{equation} ,等等)?

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

【问题讨论】:

    标签: emacs auctex


    【解决方案1】:

    如果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-hf1,则显示帮助。

    【讨论】:

      【解决方案2】:

      LaTeX-math-mode“一种特殊的次要模式,用于输入带有许多数学符号的文本。”(对于那些不知道如何操作的人,您可以按例如 `A 并得到 \forall。)所以我想把它留在上面没有什么坏处,即使你没有进入数学。

      信息页面因此建议:

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

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

      【讨论】:

        猜你喜欢
        • 2013-10-20
        • 2013-07-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-19
        • 2012-09-13
        • 2013-11-06
        • 1970-01-01
        相关资源
        最近更新 更多