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