让 Emacs 忽略“不匹配”的 \index 括号

让 Emacs 忽略“不匹配”的 \index 括号

我正在使用 Emacs 和 AUCTeX 以及 RefTeX 索引 LaTeX 文档。在文档中匹配分隔符(或发现不匹配的分隔符)变得更加困难的一件事是 Emacs(或者可能是 AUCTeX 或 RefTeX——我不确定哪个是罪魁祸首)容易误解命令中的|(|)页面范围说明符\index

例如,当我输入类似 的内容时\index{ferrets|(},一旦我输入 ,}迷你缓冲区中就会出现虚假的“括号不匹配”警告。从此时起,与文档匹配的所有分隔符都会被搞砸。例如,请看以下代码片段:

\somecommand{
   \index{ferrets|(}
}

当我输入最后一个字符时},Emacs 错误地告诉我匹配的左括号位于\index,而不是\somecommand

\index有什么方法可以让我教会 Emacs(或 AUCTeX 或 RefTeX)为了括号匹配而忽略命令的内容?

答案1

一种可能性是告诉 AUCTeXindex是一个逐字宏。这实际上不是真的,但逐字宏会忽略括号配对。将以下代码添加到您的 init 文件中并重新启动 Emacs:

(eval-after-load "latex"
  '(add-to-list 'LaTeX-verbatim-macros-with-braces "index"))

相关内容