emacs上的AucTeX是一个非常了不起的工具,但是当我编写一个'$'时,所有的颜色都被破坏了。

通常,一个“$”后面是另一个“$”来表示数学方程式,但是对于源列表,经常使用单个“$”。

\begin{Verbatim}
(let ((buffer (url-retrieve-synchronously
...
    (re-search-forward "^$" nil 'move) <-- It breaks the coloring
...
\end{Verbatim}

匹配“$”的简单解决方案如下。
(re-search-forward "^$" nil 'move) ;; $

AucTeX中是否有任何选项可以防止出现单个“$”问题?

最佳答案

AUCTeX知道$在逐字环境中并不特殊,但是您必须通过安排它出现在Verbatim中来告诉它LaTeX-verbatim-environments-local是逐字环境。

如果AUCTeX的安装方式最佳,它就已经知道了,因为AUCTeX会为您通过\usepackage和好友加载的每个文件加载一个样式 Hook 。您可能需要告诉它使用C-c C-n(TeX-normal-mode)解析头文件。

如果这还不够,那就意味着Verbatim是在AUCTeX没有足够信息的样式文件中定义的。您可以告诉AUCTeX解析您已安装的一些或所有样式文件。请参阅AUCTeX手册中的“自动”一章。

有时AUCTeX不能解析样式文件。那么您可以手动完成此部分。下面的代码假定您从Verbatim包中获取了fancyvrb环境。否则改名称。在fancyvrb.el提到的目录之一中创建一个名为TeX-style-path的文件,内容如下(可能还有其他值得放置的地方,我刚刚修改了alltt.el):

(TeX添加样式的钩子(Hook)
“fancyvrb”
(lambda()
(LaTeX添加环境“BVerbatim”“LVerbatim”“SaveVerbatim”“Verbatim”)
(使局部变量为'LaTeX-indent-environment-list)
(添加到列表“LaTeX缩进环境列表”(“BVerbatim”当前缩进))
(添加到列表“LaTeX缩进环境列表”(“LVerbatim”当前缩进))
(添加到列表“LaTeX缩进环境列表”(““SaveVerbatim”当前缩进))
(添加到列表“LaTeX缩进环境列表”(““逐字””当前缩进))
(使局部变量'LaTeX-verbatim-regexp)
(setq LaTeX-verbatim-regexp(concat LaTeX-verbatim-regexp“\\|\\([BL]?\\| Save\\)Verbatim”))
(添加到列表'LaTeX-verbatim-environments-local“BVerbatim”)
(添加到列表'LaTeX-verbatim-environments-local“LVerbatim”)
(添加到列表'LaTeX-verbatim-environments-local“SaveVerbatim”)
(添加到列表'LaTeX-verbatim-environments-local“Verbatim”)
(当(和(featurep'font-latex)
(eq TeX-install-font-lock'font-latex-setup))
(font-latex-set-syntactic-keywords)
(setq font-lock-set-defaults nil)
(font-lock-set-defaults)))

(我以为您也可以通过文件变量手动执行此操作,但是事实证明这行不通,因为字体锁定设置是在初始化文件局部变量之前构建的,我看不到解决方法。)

10-08 06:21