我正在使用 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 之后的行那里),但我无法让它们在我的设置上运行,因此我不知道如何实现它们。