AUCTex:以 '\[' 开头的数学模式在某些情况下无法用美元符号关闭*

AUCTex:以 '\[' 开头的数学模式在某些情况下无法用美元符号关闭*

我有以下代码:

\[
  \begin{cases*}
    1& if 
  \end{cases*}
...

在 if 之后,我想输入一个美元符号,但收到错误消息“以 '\[' 开始的数学模式无法用美元符号关闭”。我不确定如何修复这个问题。

编辑:澄清

  • 我想输入一个美元符号来进入数学模式。请注意,cases*环境要求在符号后输入文本。
  • 提到的错误消息是 AUCTeX 错误(显示在缓冲区中*Messages*)——它不允许我在 Emacs 缓冲区中输入美元符号字符。

答案1

这种行为来自于TeX-insert-dollar函数描述为

(defun TeX-insert-dollar (&optional arg)
  "Insert dollar sign.

If current math mode was not entered with a dollar, refuse to
insert one.  Show matching dollar sign if this dollar sign ends
the TeX math mode and `blink-matching-paren' is non-nil.

When outside math mode, the behavior is controlled by the variable
`TeX-electric-math'.

With raw \\[universal-argument] prefix, insert exactly one dollar
sign.  With optional ARG, insert that many dollar signs."

从实现来看,似乎没有可能仅禁用拒绝插入这一特定行为$。你基本上有两个选择:

  1. 按照上面显示的文档并使用通用参数,即按下C-u $插入美元符号。

  2. $从模式相关映射中移除键,即

    (define-key TeX-mode-map "$" nil)
    

    这将映射$self-insert-command(或您的全局地图中的任何内容),但这样您也将失去由此带来的其他功能,TeX-insert-dollar例如TeX-electric-math

相关内容