AUCTeX

[2004-02-03] tex-jp.el 修正版を安宅さんが公開されました [qa:25533]

以下の内容はかなり古くなってきました。 安宅さんの AUCTeX のページ のほうをお勧めします。 jsarticlejsbook を使うための *.el ファイルもあります。

AUCTeX とは

AUCTeX(旧 AUC TeX)は GNU Emacs の TeX モードです。

Linux で AUCTeX をインストール

AUCTeX プロジェクトページあるいは CTAN/support/auctex ディレクトリから最新のものを入手し,適当な場所で展開します。

CVSのアクセス法が変わりました。[qa:25558]

以下は古いままです。

CVSから最新のものを入手するには次のように打ち込みます

cvs -d:pserver:anoncvs@subversions.gnu.org:/cvsroot/auctex login
# ここでパスワードを聞いてくるが Enter を打つ
cvs -z3 -d:pserver:anoncvs@subversions.gnu.org:/cvsroot/auctex co auctex
cd auctex
./autogen.sh
./configure

Makefile に手を加えます。 まずは lispdir を好きな場所にします (私は /usr/local/share/emacs/site-lisp/auctex にしています)。 自分のホームディレクトリに elisp というディレクトリを作ってその中にインストールするのも手です。

(この段落は最新版では不要)日本語環境の場合は

CONTRIBELC = bib-cite.elc

CONTRIBELC = bib-cite.elc tex-jp.elc

に直し,

#       $(ELC) tex-jp.el              # Doesn't compile without MULE

またはCVS版では

#       $(ELCC) -f batch-byte-compile tex-jp.el              # Doesn't compile without MULE

の先頭の # とスペース1個を外します(タブ1文字だけにします)。

古い /usr/local/share/emacs/site-lisp/tex-site.el がある場合は名前を変えておきます(上書きされません)。

あとは

make
make contrib
make install
make install-contrib
make install-info

とします。 ただし,古い tex-site.el は上書きされませんので, 必要なら別の場所に移動してから make install します。 CVS版では tex-site.el.../site-lisp/auctex の中に入るようになったようです。

さらに,/usr/local/info/dir に次のように追加します。

* AUCTeX: (auctex). A much enhanced LaTeX mode for GNU Emacs.

もし /usr/local/share/emacs/site-lisp が標準の lisp ディレクトリになっていないなら,~/.emacs

(setq load-path (cons "/usr/local/share/emacs/site-lisp/auctex" load-path))

のように書き込みます。 ホームディレクトリの elisp に入れた場合は

(setq load-path (cons "~/elisp/auctex" load-path))

です。

さらに,AUCTeX を自動ロードするために次のように書き込みます。

(require 'tex-site)

あとは必要に応じて次のように設定します。

; 日本語 LaTeX を標準にする
(setq TeX-default-mode 'japanese-latex-mode)
;; 以下の二つはCVS版では標準になった:
(setq japanese-TeX-command-default "pTeX")
(setq japanese-LaTeX-command-default "pLaTeX")

; \documentclass{jsarticle} を標準にする
(setq japanese-LaTeX-default-style "jsarticle")

上の例では 新ドキュメントクラスjsarticle が最初に出るように設定しました。

TeX ファイルとして認識する拡張子は次のように指定できます。

(setq TeX-file-extensions '("tex" "sty" "cls" "ltx" "texi" "texinfo" "dtx"))

禁則処理によって行長が何文字延びてもいいかは,デフォルトでは4ですが,少し長くしておかないと,単語の途中で切れてしまうことがあります。

(setq kinsoku-limit 10)

簡単な使い方

拡張子が tex のファイルを開くと自動的に立ち上がります。 うまく japanese-latex-mode にならない場合は M-x japanese-latex-mode と入力します。 あるいは入力ファイルの先頭に次のように書いておくといいでしょう:

% -*- japanese-latex -*-

下の「複数ファイルの文書」にも別の方法を説明しました。

まず C-c C-e すると,\documentclass{...} およびトップレベルの環境 \begin{document} ... \end{document} が入ります。

次に C-c C-s すると,\section の類のコマンドが入ります。 コマンド名は補完できます。

次に C-c C-e すると,\begin{...} ... \end{...} のような環境が入ります。 環境名は補完できます。

次に C-c C-c するとコンパイルできます。

次に C-c C-c すると依存関係を調べて dvi ファイルが新しければ xdvi を立ち上げてプレビューします。再度コンパイルしたいのなら l TAB または l SPACE と打てば補完されて LaTeX 処理に直ります。

いろいろな使い方

" を打てば,状況に応じて `` または '' に変換してくれます。

TAB または SPACE で補完ができます。 これらが効かないときは ESC TAB で補完します。 候補一覧が出たら,さらに文字を補って補完するか, あるいはマウスの中央のボタンで候補をクリックします。

フォント関係のコマンドです。

その他のコマンドです。

これ以外にたくさんの機能があります。 ぜひ info auctex でドキュメントをお読みください。

カスタマイズ

サイトごとのカスタマイズは /usr/local/share/emacs/site-lisp/tex-site.el で行います。

たとえば拡張子 dtx も TeX ファイルとして認識させたいなら,このファイルに次のように書き込みます。

(setq TeX-file-extensions '("tex" "sty" "cls" "ltx" "texi" "texinfo" "dtx"))

複数ファイルの文書

たとえば hogehoge.tex から input または include されているファイルでは,次のように書いておきます。

%%% Local Variables: 
%%% mode: japanese-latex
%%% TeX-master: "hogehoge"
%%% End: 

すると,このバッファで C-c C-c すると,hogehoge.tex をコンパイルしたり hogehoge.dvi を表示したりします。 これはこのファイルを japanese-latex モードで開くという便利な副作用もあります。

もし自分自身がマスターなら,次のように書いておきます。

%%% Local Variables: 
%%% mode: japanese-latex
%%% TeX-master: t
%%% End: 

こういったものを自動で入れたい場合は,Emacs の設定ファイルに次のように書いておきます(私は書いていません)。

(setq TeX-auto-save t)
(setq TeX-parse-self t)
(setq-default TeX-master nil)

こうしておくと,ファイルを開くときに

Master file: (default this file)

と聞いてきますので,自分自身がマスターファイルなら単に Enter を押します。 キャンセルは C-g です。

source specials の利用

source specials を使うには platex を -src オプションで起動しなければなりません。 auctex/tex-jp.el の該当個所を書き換えて,バイトコンパイル(dired で B)し直しておきます。

xdvi と相互ジャンプするためには,次のように書いておきます。

;;; emacsclient サーバを起動
(server-start)

(require 'xdvi-search)
(add-hook 'LaTeX-mode-hook
          (lambda () (local-set-key "\C-c\C-j" 'xdvi-jump-to-line)))

この xdvi-search.el は The Xdvik HomepageInverse Search with Xdvi(k) に2通りありますので,xdvi のバージョンによって選んでください。 ただし,C-c C-j は AUCTeX で LaTeX-insert-item に定義されていますので,他のものにしてもいいと思います。

その他

AUCTeX とは関係ありませんが,先頭に

% Time-stamp: <>

と書いておくと,保存したときにタイムスタンプが書き込まれます。 こうならない場合は .emacs に次のように書いておきます。

(if (not (memq 'time-stamp write-file-hooks))
    (setq write-file-hooks
          (cons 'time-stamp write-file-hooks)))

奥村晴彦

Last modified: 2004-02-04 16:45:01