
最好對兩者都有統一的語法突出顯示\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
內部加載natbib
和graphicx
一些其他包。 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
在您的序言中。