我有以下代码:
\[
\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."
从实现来看,似乎没有可能仅禁用拒绝插入这一特定行为$
。你基本上有两个选择:
按照上面显示的文档并使用通用参数,即按下C-u $插入美元符号。
$从模式相关映射中移除键,即
(define-key TeX-mode-map "$" nil)
这将映射$回
self-insert-command
(或您的全局地图中的任何内容),但这样您也将失去由此带来的其他功能,TeX-insert-dollar
例如TeX-electric-math
。