AUCTeX で \cite と同じように \citep の構文強調表示を設定するにはどうすればよいでしょうか?

AUCTeX で \cite と同じように \citep の構文強調表示を設定するにはどうすればよいでしょうか?

私の原稿では、構文の強調表示がかなり頻繁に行われるため\citep、両方に対して統一した構文の強調表示を行う方が良いでしょう。\cite

私は提案されたことを実行しようとしましたここそのようです

(setq font-latex-match-reference-keywords
  '(
    ("citeauthor" "[{")
    ("citep" "[{")))

上記の行が~\.emacs\init.elファイルに追加されました。 には機能しますが\citeauthor、 には影響しません\citep。 は依然として鎮静状態のままです。

これを機能させる解決策はありますか?

答え1

あなたの質問には2つの解決策があります。

前提条件

AUCTeXを最新バージョン11.90にアップデートしてください。ELPA経由で行うことをお勧めします。マニュアル. よろしければこちらもお読みくださいクイックスタート. そして、必ずこれを init ファイルに記述してください:

(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

関連情報