关于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中是否有任何选项可以防止出现这个单一的'$'问题?
答案 0 :(得分:9)
AUCTeX知道$
在逐字环境中并不特殊,但你必须告诉它Verbatim
是一个逐字环境,安排它出现在LaTeX-verbatim-environments-local
。
如果AUCTeX以最佳方式安装,它已经知道,因为AUCTeX为您通过\usepackage
和朋友加载的每个文件加载样式挂钩。您可能需要告诉它使用C-c C-n
(TeX-normal-mode
)解析您的头文件。
如果这还不够,则意味着在样式文件中定义了Verbatim
,AUCTeX没有足够的信息。您可以告诉AUCTeX解析您安装的部分或全部样式文件;请参阅AUCTeX手册中的“自动”章节。
有时AUCTeX无法解析样式文件;然后你可以手工完成这部分。以下代码假定您从Verbatim
包获得了fancyvrb
个环境;否则改编名称。在fancyvrb.el
中提到的一个目录中创建一个名为TeX-style-path
的文件,其中包含以下内容(可能还有其他值得投入的内容,我刚刚调整了alltt.el
):
(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))))
(我认为你也可以通过文件变量手动完成,但事实证明这不起作用,因为字体锁定设置是在文件局部变量初始化之前构建的,我没有看到解决方法。)
答案 1 :(得分:4)
是否有理由使用逐字与逐字?逐字会使该部分中的所有内容都适合我。顺便说一句,我更喜欢使用listings package.来显示latex中的程序代码。
使用包列表,您可以像添加\ begin {verbatim}一样添加非格式化文本,但其主要目的是在文档中包含任何编程语言的源代码。