
Было бы лучше иметь единую подсветку синтаксиса для обоих вариантов, \citep
поскольку \cite
в моей рукописи она встречается довольно часто.
Я попытался реализовать то, что было предложено вздесьвот так
(setq font-latex-match-reference-keywords
'(
("citeauthor" "[{")
("citep" "[{")))
Вышеуказанные строки были добавлены в мой ~\.emacs\init.el
файл. Хотя это работает для \citeauthor
, это не влияет на \citep
, который все еще выглядит седативным.
Есть ли решение, как это сделать?
решение1
На ваш вопрос есть 2 решения.
Предварительное условие
Обновите AUCTeX до последней версии 11.90. Предлагаю сделать это через ELPA, как описано вруководство. Если вы это сделаете, пожалуйста, прочтите такжеБыстрый стартИ обязательно поместите это в ваш файл инициализации:
(setq TeX-parse-self t)
Быстрое решение
elsarticle.cls
внутренне загружает и некоторые другие пакеты. AUCTeX не анализирует файл .cls, чтобы знать об этом. Вы можете дать AUCTeX подсказку, загрузив эти пакеты снова в преамбуле вашего файла .tex. Если natbib
установлено значение , AUCTeX загружает свои файлы поддержки (жаргон: файлы стилей) для этих пакетов, и ваш файл будет выглядеть следующим образом:graphicx
TeX-parse-self
t
Также обратите внимание, что теперь вы получаете поддержку автодополнения для макросов, предоставляемых при natbib
нажатии C-c C-m citep RET. Все становится еще лучше, если вы используете RefTeX.
Долгосрочное решение
Это включает в себя написание файла поддержки AUCTeX elsarticle.el
. Для того, о чем вы просите, следующих строк будет достаточно:
;;; elsarticle.el --- AUCTeX style for `elsarticle.cls'
(TeX-add-style-hook
"elsarticle"
(lambda ()
(TeX-run-style-hooks "natbib" "graphicx" "geometry")))
Настройте переменную TeX-style-private
на каталог по вашему выбору, например:
(setq TeX-style-private (expand-file-name "~/.emacs.d/auctex-styles"))
Сохраните elsarticle.el
в этом каталоге, перезапустите Emacs и загрузите ваш .tex-файл. Это должно работать без перезагрузки natbib
и graphicx
в вашей преамбуле.