如何将 \citep 的语法高亮设置为与 AUCTeX 中的 \cite 相同?

如何将 \citep 的语法高亮设置为与 AUCTeX 中的 \cite 相同?

最好对两者进行统一的语法突出显示\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内部加载natbibgraphicx一些其他包。AUCTeX 不会解析 .cls 文件来了解这一点。您可以通过在 .tex 文件的序言中再次加载这些包来给 AUCTeX 一个提示。TeX-parse-self设置为 后t,AUCTeX 会加载这些包的支持文件(行话:样式文件),您的文件将如下所示:

在此处输入图片描述

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

相关内容