11

emacsでAUCTeXを設定しています。

ほとんどの設定は LaTeX-mode-hook に入れられます。main.tex ファイルを開くと、メジャー モードが latex-mode であり、フックされた構成がアクティブ化されていないことに気付きました。それらをアクティブにするには、Mx Tex-latex-mode を使用する必要があります。しかし、メジャーモードはまだラテックスモードです。

(add-hook 'LaTeX-mode-hook
      (lambda ()

        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        ;; auctex

        (setq TeX-auto-save t)
        (setq TeX-parse-self t)
       ))

したがって、これらのモードの違いと、*.tex ファイルを開いたときに AUCTeX を自動的にオンにする方法を知りたいです。

4

2 に答える 2

11

AUCTeX が提供するモードはhttps://www.gnu.org/software/auctex/manual/auctex.html#Modes-and-Hooksにリストされており、

  • plain-TeX-mode
  • LaTeX-mode
  • ams-TeX-mode
  • ConTeXt-mode
  • Texinfo-mode
  • docTeX-mode

その代わり、

  • tex-mode
  • plain-tex-mode
  • latex-mode
  • slitex-mode
  • doctex-mode

(大文字小文字が異なることに注意してください) は、Emacs に同梱されているTeX モードパッケージによって提供される主要なモードです。

*.texすべてのファイルを AUCTeX LaTeX モードで開きたい場合は、これを に追加します.emacs

(add-to-list 'auto-mode-alist '("\\.tex$" . LaTeX-mode))

tex-mode.elAUCTeX はモード名を独自のモードのエイリアスとして定義しているため、実際にはこれは必要ありません。

于 2013-07-21T23:35:41.760 に答える
0

TLDR:latex-modeまたはLaTeX-mode(同じ意味です) を使用します。変更する必要はありません。AucTeX にフックするためにauto-mode-alist使用します。LaTeX-mode-hook

AucTeX のセットアップは、アドバイスを使用して Emacs の TeX およびその仲間に対する組み込みサポートをオーバーライドするため、非常に混乱する可能性があります。

したがって、ELPA から AucTeX をインストールすると、次のように表示されC-h f latex-modeます。

This function has :override advice: ‘TeX-latex-mode’.

AucTeX がオーバーライドするモードのリストはTeX-modes変数の値に依存しますが、他のすべての tex モードについても同じです。

この関数LaTeX-modeは AucTeX では定義されていません (もう?): Emacs のコアで定義されており、互換性に関する不可解なコメントがあります:

;; The following three autoloaded aliases appear to conflict with
;; AUCTeX.  However, even though AUCTeX uses the mixed case variants
;; for all mode relevant variables and hooks, the invocation function
;; and setting of `major-mode' themselves need to be lowercase for
;; AUCTeX to provide a fully functional user-level replacement.  So
;; these aliases should remain as they are, in particular since AUCTeX
;; users are likely to use them.
;; Note from Stef: I don't understand the above explanation, the only
;; justification I can find to keep those confusing aliases is for those
;; users who may have files annotated with -*- LaTeX -*- (e.g. because they
;; received them from someone using AUCTeX).

;;;###autoload
(defalias 'TeX-mode #'tex-mode)
;;;###autoload
(defalias 'plain-TeX-mode #'plain-tex-mode)
;;;###autoload
(defalias 'LaTeX-mode #'latex-mode)

これが意味することは、少なくとも 2021 年には、AucTeX を使用するために変更する必要がないということです。auto-mode-alistインストールするだけで、Emacs の組み込み機能を上書きするのに十分です。

残念ながら、混乱の最後の原因が 1 つあります。LaTeX-modeは現在ほとんど役に立たない のエイリアスですが、オーバーライドする AucTeX のコードは呼び出さないことlatex-modeがわかりますlatex-mode(それは を呼び出しますが、これは異なります。つまり、AucTeX のものである変数 (組み込みの小文字のものとは対照的に) Emacs を使用) は引き続き有用です。latex-mode-hookLaTeX-mode-hookLaTeX-

于 2021-12-01T03:57:23.503 に答える