AucTeX/Emacs中遇到"$"字符的问题

8
在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 中有没有选项可以防止这个单个 '$' 问题?

2个回答

9
AUCTeX知道在verbatim环境中$不是特殊字符,但你需要告诉它Verbatim是一个verbatim环境,通过将其排列在LaTeX-verbatim-environments-local中即可实现。
如果AUCTeX已经安装优化,则已经知道,因为AUCTeX会为每个通过\usepackage和friends加载的文件加载样式钩子。您可能需要使用C-c C-n (TeX-normal-mode)命令告诉它解析头文件。
如果这还不够,那么意味着Verbatim是在AUCTeX没有足够信息的样式文件中定义的。您可以告诉AUCTeX解析您安装的一些或所有样式文件;请参阅AUCTeX手册中的“自动”章节。
有时AUCTeX无法解析样式文件;然后您可以手动完成此部分。下面的代码假定您正在从fancyvrb包获取Verbatim环境;否则请适应名称。在TeX-style-path中的一个目录中创建一个名为fancyvrb.el的文件,并包含以下内容(可能有其他值得放置的内容,我只是调整了alltt.el):

对于最终的方法,只需将它们复制到TeX源代码的最后一行就可以了吗?看起来这样做似乎不起作用。 - prosseek
@prosseek:抱歉,我在变量名中打了一个错字,现在已经修复了。但即使如此,我刚刚测试过,它对我来说也不起作用。看起来变量是在着色参数设置之后设置的,我不知道该如何解决这个问题。 - Gilles 'SO- stop being evil'
好的,使用文件本地变量不起作用,所以style.el是正确的方法。我编辑了我的答案,包括这个代码。 - Gilles 'SO- stop being evil'

4

使用 Verbatim 和 verbatim 有什么区别吗?对我来说,verbatim 会使部分内容的颜色变成相同的颜色。顺便说一下,我更喜欢使用 listings package. 在 Latex 中展示程序代码。

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


谢谢您的建议,我认为列出清单是更好的选择。但是,在emacs / AucTeX方面,我看到了同样的问题。 - prosseek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接