Проблема AucTeX / emacs с символом '$' - PullRequest
8 голосов
/ 18 июля 2010

AucTeX на emacs - довольно удивительный инструмент, но когда я пишу один '$', вся окраска нарушается.

Обычно один '$' сопровождается другим '$' для выражения математических уравнений, но для перечисления источников часто используется один '$'.

\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 голосов
/ 18 июля 2010

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))))

(Я думал, что вы также можете сделать это вручную через файловые переменные, но это не работает, потому что настройки блокировки шрифтов создаются до инициализации локальных переменных файла, и я не вижу обходного пути.)

4 голосов
/ 18 июля 2010

Есть ли причина использовать Verbatim против дословного? дословно делает все в разделе одного цвета для меня. Кроме того, я предпочитаю использовать пакет листингов. для отображения кода программы в латексе.

Используя списки пакетов, вы можете добавлять неформатированный текст, как если бы вы использовали \ begin {verbatim}, но его главная цель - включить в документ исходный код любого языка программирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...