匹配 AUCTeX 中的分隔符 \{ 和 \}

匹配 AUCTeX 中的分隔符 \{ 和 \}

我正在使用 AUCTeX,并希望分隔符\{\}匹配我如何才能(永久地)实现这些分隔符的匹配?

我提供的链接表明我应该编辑语法表,但我无法确定哪一个,以及我究竟该如何编辑它。

为什么给定的分隔符不能自动匹配?由于它们在 LaTeX 中很常见,所以我认为它们会是这样的。(我在 AUCTeX 邮件列表中问了最后一个问题,但没有收到回复。)

根据 Tyler 的评论,我的问题在技术上是没有根据的。但是,我怀疑仍然有办法完成我想要完成的事情,所以我将保留这个问题,假设回答者知道我在做什么真的询问。

答案1

我也对此感到烦恼,因此我定义了一些宏来将括号/大括号/方括号括起来。

\newcommand*{\braces}[1]{ \{ #1 \} }
\newcommand*{\parens}[1]{\left( #1 \right)}
\newcommand*{\brackets}[1]{ \left[ #1 \right] }

这会将类似以下内容的内容变成$ x = \{ stuff \}$$ x = \braces{stuff}$

我发现我的源代码中的可读性更强一些,并且 emacs 正确匹配了开/闭括号(即使它们是嵌套的)。

答案2

\通过将以下形式添加到 Emacs 初始化文件来更改 TeX 模式缓冲区的字符语法类:

(add-hook 'TeX-mode-hook
      (lambda ()
        (modify-syntax-entry ?\\ ".")))

评估此格式后,\充当标点符号而不是转义符。但请注意潜在的副作用!

答案3

此功能(至少对于我来说,使用 Aquamacs 3.3)似乎是通过在 emacs 配置文件中添加以下行来启用的:

(add-hook 'LaTeX-mode-hook #'smartparens-mode)

当然前提是你已经安装了smartparens软件包(例如通过 MELPA)。(请参阅该包的 GitHub 页面

笔记:如果你还想自动平衡\[\]那么您可能还需要添加以下行.emacs 配置文件中的上述行:

(require 'smartparens-config)

还根据指示(参见第 104 行smartparens代码第 104 行这里

因此总计:

(require 'smartparens-config)
(add-hook 'LaTeX-mode-hook #'smartparens-mode)

这(添加两条线)甚至允许一个人自动平衡\left\right(参见第 130-145 行这里) 如果,$ ... $\[ ... \]配对你输入:

  • \l(自动完成/平衡至\left( \right)
  • \l[自动完成/平衡至\left[ \right]
  • \left\{自动完成/平衡至\left\{ \right\}
  • \left|自动完成/平衡至\left| \right|

还应该有更多这样的自动完成/平衡功能可供 LaTeX 使用smartparens(参见 145 之后的行那里),但我无法让它们在我的设置上运行,因此我不知道如何实现它们。

相关内容