LaTeX メモ ― AUCTeX 入門(その1)

AUCTeX は、 Emacs で LaTeX, TeX, ConTeXt, texinfo などを編集するための統合環境(より正確にいうとメジャーモード)である。非常にパワフルなツールで、それを知っているか知らないかで、LaTeX や TeX の編集の効率にずいぶん差が出てくる。ところが、私の知るところでは、普通のエディタを使って LaTeX コマンドをちまちま入力するような人が、それなりにいるようだ。それではあまりに時間の無駄である。


そこでこのブログで、AUCTeX の簡単な入門を書いてみたい。emacs を使っている人にこんなエントリは不要ではないかとか、そもそもブログに書く内容か?などと疑問に思わないでもないが、このブログでも、LaTeX や emacs に関するエントリはそれなりにアクセスがあるので、需要はあるのではないか。何より私にとっても知識の整理になるので、ご容赦されたい。なお、RefTeX については今後書くことにする。


この入門の目標は、AUCTeX の必要最小限の機能を最小限の知識と労力で使いこなすことである。したがって、たとえば latexmk や SyncTeX についてはここでは触れないが、LaTeX (pLaTeX を想定) は既にインストールされているものとする。また、このエントリで書いた設定を、まとめたりはしない。設定をまとめると、何も考えずにそれを .emacs にコピペして、思い通りに動かないと言うユーザが必ず出てくるからである。以下の内容は、自分の環境や必要に合わせて、修正しながら、使っていただきたい。


本入門の内容については、本エントリ含め、計3回で構成することとした。本エントリの読了後は、次の二回のエントリ(その2その3)を読むことをお勧めしたい。


以下の内容は、GNU Emacs 26.1, AUCTeX 12.2.0, TeX Live 2019 で確認した。サンプルの 'circ.tex' は、AUCTeX のインストールディレクトリにある。



1. インストール

AUCTeX のインストールは、パッケージ(ELPA)によるものがもっとも楽である。もちろん従来のように、`configure' と `make install' によるインストールも可能である。


パッケージによるインストールの場合は、初期設定は何も必要ないはずである。しかし、configure を使った場合等、初期設定が必要な場合は、まず load-path を設定しなければならない。そのときは、たとえば AUCTeX が `~/elisp/auctex' にインストールされた場合、.emacs


(add-to-list 'load-path "~/elisp/auctex")


などとして load-path を指定する必要があるだろう。その後、


(load "auctex.el" nil t t)

(load "preview-latex.el" nil t t)


として、auctex.elpreview-latex.el をロードする。ここで、特に info における preview-latex.el の扱いには注意されたい。パッケージによるインストールを行った場合は、preview-latex.el は生成されないはずである。


以前は AUCTeX では `(require 'tex-site)' していたが、新しいバージョンでは上記の初期設定が推奨されている。さらに、古いバージョンが既にインストールされている場合は、`(unload-feature 'tex-site)' が必要になるかもしれない。いずれにせよ、繰り返しになるが、パッケージを使った場合は、以上の設定は不要である。


上記の設定がうまくいけば、英語環境の AUCTeX が使えるはずである。それを確認するためには、例として、上記サンプル 'circ.tex' を emacs から読み込んでみればよい。すると、emacs ウィンドウの上部にあるメニューバーで、'Command' や 'Preview' などのメニューが現れているはずである。それらが、デフォルトの LaTeX モードとの違いである。


参考のため、circ.tex を preview したときの、AUCTeX のスクリーンショット(emacs のウィンドウ)を以下に掲載する。AUCTeX の preview 機能については、次々回のエントリで説明する。





2. 最低限の設定

インストールがうまくいった後は、最初に、日本語環境を使うために


(setq TeX-default-mode 'japanese-latex-mode)


とする。


次に、必須ではないが、以下の3行を設定することが推奨される。


(setq TeX-auto-save t)

(setq TeX-parse-self t)

(setq-default TeX-master nil)


なお、変数 TeX-auto-saveTeX-parse-self については、以前「LaTeX メモ ― AUCTeX における AMS-LaTeX パッケージ等の初期設定: A Day in the Life」というエントリを書いたので、参照されたい。


TeX-master は、文書が、複数 tex ファイルから構成される(それらが \input されたり \include されたりする)ような状況を想定する変数である。しかし、この変数をセットすると、tex ファイルをオープンする度にいちいちマスターファイルを問い合わせしてきて、鬱陶しい(私は慣れたが)。そこで、ほとんど場合単一 tex ファイルしか編集しないユーザは、TeX-master を設定しない(つまり、上記の三行目を書かない)ほうがいいかもしれない。



3. LaTeX コマンドの挿入

挿入については、(RefTeX を除けば)もっとも重要なコマンドは、C-c C-sC-c C-e である。この二つの機能については、必ず実際に試していただきたい。それたけで、AUCTeX の強力さは実感できるはずである。


  • C-c C-s
    \chapter
    , \section, \subsection などの章立てコマンドを挿入する (M-x LaTeX-section)。ユーザの入力に従い、タイトル、セクション、ラベルが挿入される。


  • C-c C-e
    LaTeX の環境(\begin{...} と  \end{...} で囲まれた文章構造)を挿入する (M-x LaTeX-environment)。ユーザにさまざまな問い合わせが行われ、環境の適切なテンプレートが挿入される。

    C-c C-e に関連して重要なのが、C-c C-j(あるいは M-RET)である (M-x LaTeX-insert-item)。itemize 環境などで C-c C-j と入力することによって、新たに \item を挿入できる。


その他の有用な挿入コマンドは以下のとおりである:

  • C-c ]
    環境を閉じる(適切な \end{...} を挿入する)(M-x LaTeX-close-environment)。C-c C-e があれば不要に思えるが、これを使う場面が意外に多い。


  • C-c C-m
    (La)TeX マクロを挿入する (M-x TeX-insert-macro)。このコマンドが有用かどうかは意見が分かれるかもしれないが、論文を書くとき等、似たようなマクロを大量に定義するときに、便利ではある。



4. LaTeX Math モード

論文には数学的記号が多く使われるのはもちろん、ギリシャ文字も多用される。その際 \alpha とか \subseteq とかすぐに入力できるというユーザもいるだろうが、量が多いと、正直言って面倒くさく感じることもある。そんなとき、LaTeX Math モード(マイナーモードである)のことを知っておくといいだろう。


AUCTeX における LaTeX Math モードは C-c ~ によってトグルすることもできるが (M-x LaTeX-math-mode)、最初から オンにしたい場合は


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


としておけばよい。もちろんその後  C-c ~ によってオフにすることもできる。AUCTeX を使っているときは、emacs の modeline が「LaTeX/...M...」となっているとき、LaTeX Math モードはオンになっている。


LaTeX Math モードにおける最初の入力文字は、「`」である。たとえば、LaTeX Math モードをオンにして、インライン数式モード内(つまり二つの $ で囲まれた部分)で「`a」と入力すれば、「\alpha」となる。「`[」とすれば、「\subseteq」となる。ディスプレイ数式モード内でも同様である。


また、インライン数式(あるいはディスプレイ数式)モードの外であれば、LaTeX Math モードでたとえば「`a」と入力すれば、デフォルトでは「\alpha{}」となる(この挙動も変更できる)。


言うまでもないが、LaTeX Math モードにおいて「`」自身を入力するには、C-q ` とすればよい。


LaTeX Math モードでは、その他、さまざまな記号を入力できる。LaTeX Math モードに限らず、AUCTeX 使用の際は、tex-ref.tex というチートシートを pdf にして手元に置いておくとよい。tex-ref.tex は、AUCTeX の配布ディレクトリの doc にある。もちろん、emacs のメニューバーからマウスを使ってコマンド呼び出しをするのが最も楽だろう。



5. pdf ファイルの作成

以上の設定が終われば、AUCTeX による LaTeX ソースファイル(tex ファイル)の編集ができるようになる。その後、端末で platex, pbibtex, dvipdfmx (あるいは「ptex2pdf -l」)などを使って、pdf ファイルを作ればよい。


しかし、長時間 tex ファイルを編集していると、(たとえショートカットキーを使ったとしても)ウィンドウを移りかわるのすら面倒くさくなってくる。そんなとき、AUCTeX の中からコマンド実行する機能がある。それについては、(その2)で説明する。


そもそも、platex 等のツールを使うのが面倒くさい。それについては、Word を使いたくないならあきらめるしかないが、preview 機能を使えば、ある程度は(見かけ上は)対応できる。それについては、(その3)で説明する。



6. 雑多な tips

最後に、ここではエントリにするまでもない小ネタをメモしておきたい。なお、RefTeX や表の作成については、今後エントリにする予定である。また、この項は今後加筆修正する可能性がある。


  • tex ファイルにおけるラベルの名前付けは、単に \label{...} とするのではなく、定義された位置に応じて、\label{eq:...}, \label{sec:...}, \label{tab:...}, \label{fig:...} 等とすることを強く推奨したい。それにより、tex ファイルの視認性が劇的に向上する。これは、AUCTeX や RefTeX を使っていれば、問題ない。


  • これも RefTeX に関する話題であるが、chapterC-c C-s したとき、そのラベルがデフォルトでは \label{cha:...} のようになってしまう。これは、変数 LaTeX-section-labelreftex-section-prefixeschapter の初期値に一貫性がないからである。この場合、chapter のラベルを  \label{chap:...} とするには

    (setq reftex-section-prefixes '((0 . "part:") (1 . "chap:") (t . "sec:")))

    とすればよい。


  • AUCTeX に詳しくない人には、emacs における LaTeX mode と latex mode の違いが分かりにくいかもしれない。ざっくり説明すると、plain-TeX-modeLaTeX-mode が AUCTeX のモード(関数)で、tex-mode, plain-tex-mode, latex-mode が Emacs 標準の TeX モード(関数)である。


  • 動きにクセがあるので好き嫌いは分かれるかもしれないが、便利なので、autopairs (あるいはその類似パッケージ)をお勧めしたい。より詳しくは、ちょっと古い情報だが、Emacs Wiki の Auto Pairs を参照されたい。


7. 関連エントリ




コメント

このブログの人気の投稿

LaTeX メモ - 数式における「|」 (縦線, vertical bar)の扱い(その2)

人間はどんなところでも,どんな時でも何歳からでも学ぶことができる

ブログを始めるにあたって - 継続は力

へんろう宿 (井伏鱒二)

イエスは地面に何を書いていたか