让Emacs识别自定义数学分隔符,以便它可以相应地为脸部着色

Viv*_*ivi 2 emacs latex elisp auctex emacs-faces

我找到了一个代码,以更简单,更快捷的方式在LaTeX中输入方程式.而不是打字

\begin{equation}
\end{equation}
Run Code Online (Sandbox Code Playgroud)

我现在可以打字了

\be
\ee
Run Code Online (Sandbox Code Playgroud)

它很棒,我很满意.文档(第13页)中的代码是

\makeatletter
\newcommand{\be}{\begingroup
\setlength{\arraycolsep}{2pt}
\eqnarray%
\@ifstar{\nonumber}{}%
}
\newcommand{\ee}{\endeqnarray\endgroup}
\makeatother
Run Code Online (Sandbox Code Playgroud)

我的问题是我使用emacs,它不识别那些数学分隔符,因此它不会给脸部正确的数学颜色.我试图通过使用命令M-x customize-apropos来尝试找到我可以使用的东西来定制它,但我得到的最接近的是变量

  1. 'font-latex-math-environments',我不认为是我所追求的,因为从我所看到的我只能输入大括号内的命令的名称\begin{}\end{}

  2. 'font-latex-make-built-in-keywords',这需要我比我更多的知识,我甚至不知道它是否会起作用.

我想知道,因此,如何建立Emacs的这样,每当我用一对\be\ee它会给面对相同的颜色,因为我设置了数学.我想这将需要一个emacs lisp代码,这将是伟大的所以我可以修改它以包括其他的东西,如果是这样我希望.

任何人都可以帮我完成这项工作吗?

Tho*_*mas 7

这不是你的问题的真正答案,但如果只是为了保存用于编写equation环境的击键,你可能想尝试以下方法.

根据您提问的标签,我假设您正在使用AUCTeX模式.有了它,而不是打字

\begin{equation}

\end{equation}
Run Code Online (Sandbox Code Playgroud)

每次,使用以下快捷方式让AUCTeX以交互方式插入环境:C-c C-e.这将提示您输入可以使用制表符完成键入的环境名称("公式").

所以你确实保存了几个击键,结果在语法上是正确的,你不需要额外的\be\ee命令,最好的是这种方法是通用的,即它适用于所有 LaTeX环境,而不仅仅是equation.

  • 另外,如果`equation`是你最近使用的,那么点击`Cc Ce`会给`equation`作为默认提示,所以你只需要按Enter键. (2认同)