
Es wäre besser, eine einheitliche Syntaxhervorhebung für beide zu haben \citep
, \cite
da dies in meinem Manuskript ziemlich oft vorkommt.
Ich habe versucht, die Vorschläge umzusetzen inHierso
(setq font-latex-match-reference-keywords
'(
("citeauthor" "[{")
("citep" "[{")))
Die obigen Zeilen wurden meiner ~\.emacs\init.el
Datei hinzugefügt. Obwohl es funktioniert \citeauthor
, hat es keine Wirkung \citep
, was immer noch sediert erscheint.
Gibt es eine Lösung, damit das funktioniert?
Antwort1
Es gibt 2 Lösungen für Ihre Frage.
Voraussetzung
Aktualisieren Sie AUCTeX auf die neueste Version 11.90. Ich schlage vor, Sie tun dies über ELPA, wie indas Handbuch. Wenn Sie dies tun, lesen Sie bitte auchSchnellstart. Und fügen Sie dies unbedingt in Ihre Init-Datei ein:
(setq TeX-parse-self t)
Schnelle Lösung
elsarticle.cls
lädt intern natbib
und graphicx
einige andere Pakete. AUCTeX analysiert die .cls-Datei nicht, um dies zu erkennen. Sie können AUCTeX einen Hinweis geben, indem Sie diese Pakete erneut in der Präambel Ihrer .tex-Datei laden. Wenn TeX-parse-self
auf gesetzt ist t
, lädt AUCTeX seine Supportdateien (Jargon: Style-Dateien) für diese Pakete und Ihre Datei sieht folgendermaßen aus:
Beachten Sie auch, dass Sie jetzt die automatische Vervollständigung von Makros erhalten, wenn natbib
Sie auf klicken C-c C-m citep RET. Wenn Sie RefTeX verwenden, wird es noch besser.
Langfristige Lösung
Dazu gehört das Schreiben einer AUCTeX-Supportdatei elsarticle.el
. Für Ihre Frage reichen die folgenden Zeilen aus:
;;; elsarticle.el --- AUCTeX style for `elsarticle.cls'
(TeX-add-style-hook
"elsarticle"
(lambda ()
(TeX-run-style-hooks "natbib" "graphicx" "geometry")))
Passen Sie die Variable TeX-style-private
an ein Verzeichnis Ihrer Wahl an, z. B.
(setq TeX-style-private (expand-file-name "~/.emacs.d/auctex-styles"))
Speichern Sie elsarticle.el
in diesem Verzeichnis, starten Sie Emacs neu und laden Sie Ihre .tex-Datei. Dies sollte dann ohne erneutes Laden natbib
und graphicx
in Ihrer Präambel funktionieren.