AucTeX/emacs与'$';性格

AucTeX/emacs与'$';性格,emacs,latex,Emacs,Latex,emacs上的AucTeX是一个非常神奇的工具,但是当我写一个“$”时,所有的颜色都被破坏了 通常一个“$”伴随另一个“$”来表示数学方程,但对于源代码列表,经常使用单个“$” \begin{Verbatim} (let ((buffer (url-retrieve-synchronously ... (re-search-forward "^$" nil 'move) <-- It breaks the coloring ... \end{Verbatim} AucTeX中是

emacs上的AucTeX是一个非常神奇的工具,但是当我写一个“$”时,所有的颜色都被破坏了

通常一个“$”伴随另一个“$”来表示数学方程,但对于源代码列表,经常使用单个“$”

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

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

是否有理由使用逐字与逐字?逐字逐句使该部分中的所有内容对我来说颜色相同。顺便说一句,我更喜欢使用用于在latex中显示程序代码的

使用包列表,您可以像使用\begin{verbatim}一样添加非格式化文本,但其主要目的是在文档中包含任何编程语言的源代码


AUCTeX知道
$
在逐字记录环境中并不特殊,但您必须通过安排
逐字记录
出现在
本地乳胶逐字记录环境
中来告诉它
逐字记录
是一个逐字记录环境

如果AUCTeX以最佳方式安装,它已经知道了,因为AUCTeX为您通过
\usepack
和friends加载的每个文件加载一个样式挂钩。您可能需要告诉它使用
C-C-n
TeX正常模式
)解析头文件

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

有时AUCTeX无法解析样式文件;然后你可以手工做这部分。下面的代码假设您从
fancyvrb
包中获得
Verbatim
环境;改用其他名称。在
TeX-style-path
中提到的一个目录中创建一个名为
fancyvrb.el
的文件,其中包含以下内容(可能还有其他值得放在那里的内容,我刚刚改编了
alltt.el
):

(TeX添加样式挂钩 “fancyvrb” (lambda() (LaTeX添加环境“BVerbatim”“LVerbatim”“SaveVerbatim”“Verbatim”) (使局部变量“LaTeX缩进”环境列表) (添加到列表“LaTeX缩进环境列表”(“BVerbatim”当前缩进)) (添加到列表“LaTeX缩进环境列表”(“LVerbatim”当前缩进)) (添加到列表“LaTeX缩进环境列表”(“SaveVerbatim”当前缩进)) (添加到列表“LaTeX缩进环境列表”(“逐字”当前缩进)) (使局部变量'LaTeX verbatim regexp) (setq LaTeX verbatim regexp(concat LaTeX verbatim regexp“\\\\\\\\\\\\\\([BL]?\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ (添加到列表“LaTeX逐字记录环境本地”BVerbatim) (添加到列表“LaTeX逐字记录环境本地“LVerbatim”) (添加到列表“LaTeX逐字记录环境本地“SaveVerbatim”) (添加到列表“LaTeX逐字记录环境本地”逐字记录) (何时(和(featurep'字体) (eq-TeX安装字体锁定“字体乳胶设置”) (字体设置语法关键字) (setq字体锁定集默认为零) (字体锁定设置默认值)))
(我认为您也可以通过文件变量手动执行,但结果证明不起作用,因为字体锁定设置是在初始化文件局部变量之前构建的,我看不到解决方法。)

对于最后一种方法,可以将它们复制到TeX源代码的最后一行吗?它似乎不是那样工作的。@prosseek:对不起,我在变量名上打错了,现在已经修好了。但即便如此,我只是测试了一下,它对我不起作用。看起来这个变量是在设置了着色参数之后设置的,我不知道如何解决这个问题。好的,使用文件局部变量是行不通的,所以style.el是一种方法。我编辑了我的答案,加入了这方面的代码。谢谢你的提示,我认为列表是更好的选择。但是,就emacs/AucTeX而言,我看到了同样的问题。
(re-search-forward "^$" nil 'move) ;; $
(TeX-add-style-hook "fancyvrb" (lambda () (LaTeX-add-environments "BVerbatim" "LVerbatim" "SaveVerbatim" "Verbatim") (make-local-variable 'LaTeX-indent-environment-list) (add-to-list 'LaTeX-indent-environment-list '("BVerbatim" current-indentation)) (add-to-list 'LaTeX-indent-environment-list '("LVerbatim" current-indentation)) (add-to-list 'LaTeX-indent-environment-list '("SaveVerbatim" current-indentation)) (add-to-list 'LaTeX-indent-environment-list '("Verbatim" current-indentation)) (make-local-variable 'LaTeX-verbatim-regexp) (setq LaTeX-verbatim-regexp (concat LaTeX-verbatim-regexp "\\|\\([BL]?\\|Save\\)Verbatim")) (add-to-list 'LaTeX-verbatim-environments-local "BVerbatim") (add-to-list 'LaTeX-verbatim-environments-local "LVerbatim") (add-to-list 'LaTeX-verbatim-environments-local "SaveVerbatim") (add-to-list 'LaTeX-verbatim-environments-local "Verbatim") (when (and (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))))