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 для предотвращения этой единственной проблемы 'с $'?
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))))
(Я думал, что вы также можете сделать это вручную через файловые переменные, но это не сработало, потому что настройки блокировки шрифтов создаются до инициализации локальных переменных файла , и я не вижу обходного пути.)
Есть ли причина использовать дословное вместо дословного? verbatim делает для меня все в разделе одинакового цвета. Кроме того, я предпочитаю использовать пакет списков . для отображения программного кода в латексе.
Используя списки пакетов, вы можете добавлять неформатированный текст, как если бы вы делали это с \ begin {verbatim}, но его основная цель - включить исходный код любого языка программирования в ваш документ.