GNU Emacs に提供されている TeX の入力支援について紹介します。 TeX の入力支援とは、 例えば \begin{document} と入力したら自動的に \end{document} を追加してくれるとか、 長ったらしい \listoffigures のようなマクロを補完入力してくれるとか、 \ref の引数を一覧から選べるようにするとか、 そういったものです。
Info と呼ばれるオンライン・マニュアルシステムがあります。 これは HTML のようなハイパーテキストの一種で、 文書内のリンクを辿ることが出来ます。 HTML を読むにはウェブ・ブラウザーが必要ですが、 Emacs は Info のブラウズ機能を標準装備しています。 なので、例えば TeX のソースを編集しながら TeX の Info (ヘルプ) を眺めることが出来ます。
LaTeX2e 用の Info が CTAN で公開されています。 是非利用しましょう。(ただし、英語です)
CTAN は Comprehensive TeX Archive Network の略称です。 日本語にすれば「包括的な TeX の倉庫」といった意味でしょうか。 世界中のスタイル・ファイル、ドキュメント、TeX 関連のツールが集積されています。
この「包括的な倉庫」はネットワークで結ばれて、いたる所にミラーサイトがあります。 日本では Ring Server などから、CTAN を訪ねることが出来ます。 以下のサイトから最も近いもしくは最も空いている Ring Server に行く事が出来ます。
Ring Server 以下、/pub/text/CTAN で CTAN に着きます。
Info は Texinfo という TeX の方言で書かれています。 LaTeX2e 用の Texinfo ファイルは CTAN 以下 documentation/latex2e-help-texinfo/latex2e.texi に置いてあります。 これをダウンロードして下さい。
Texinfo から Info への変換は、Emacs を用います。 latex2e.texi を Emacs で開いて、M-x texinfo-format-buffer を実行します。 すると、Emacs が Texinfo ファイルから Info を作ってくれます。 タイプセットが終了したら出来上った Info を保存します。 (Info ファイルを探す必要はありません。 タイプセットが終了した時点で、 あなたは Texinfo ファイルから Info ファイルへと移動しているはずです。 何も考えず C-x C-s を押しましょう。)
Info は通常 /usr/info か /usr/local/info (Red Hat 8.0 の場合は /usr/share/info か /usr/local/share/info) に納められています。 出来た info ファイル (latex, latex-[123]) をいずれかのディレクトリーにコピーします。
Info システムは、総ての Info ファイルを dir というファイルで管理しています。 簡単に言えば目次のようなものです。 新しい Info を追加するには、dir ファイルを編集します。 dir は info の入っているディレクトリーの中にあります。 開いたら次の一文を適当な所に挿入します。
* LaTeX2e: (latex). LaTeXe help 1.6.
システムにインストールしたくない場合や、 インストールしたくとも管理者権限がない場合には、 自分のホームディレクトリー以下にインストールすればよいでしょう。 適当なディレクトリー (例えば ~/info) を作り、 そこに info ファイルをコピーします。
その info ディレクトリーには、dir ファイルが無いことでしょう。 システムの dir ファイルをコピーして流用します。
最後に、.emacs ファイルに新しい info ディレクトリーの所在を教えます。
;; 個人用 Info ディレクトリーの追加
(setq Info-default-directory-list
(cons "~/info/" Info-default-directory-list))
Info ファイルを見るには Emacs で C-h i とします。 Info では、LaTeX でいう所の section, subsection を階層的に管理し、 ノード (node) と呼んでいます。 Info はスペースを押すだけで全てを見てまわれるようになっています。 スペースの他によく使うコマンドは次の通りです。
| key | document |
|---|---|
| n | 次のノードへ |
| p | 前のノードへ |
| u | 上のノードへ |
| t | Info のトップへ戻る |
| d | 一番上まで戻る |
| RET | ハイパーリンクを辿る |
| l | 以前いたノードに戻る |
詳しくは Info という名前の Info をお読み下さい。
Emacs には、キーワードを検索して該当する Info ノードを表示してくれる機能があります。 LaTeX のコマンドを度忘れしてしまった時、詳しい説明が読みたくなった時に重宝します。
例えば、\tableofcontents の説明が読みたくなったら、 \tableofcontents の上にカーソルを置いて C-h C-i (Emacs 22 系の場合は C-h S) とします。 キーワードが自動的に読み取られ、正しいかどうか尋ねてきます。
Describe symbol (defalt \tableofcontents):
よければ RET を打ちます。 間違っていれば修正しましょう。 キーワードが Info ファイルの中にあれば該当するノードが表示されます。
このコマンドは、使用しているメジャー・モードに合わせて検索する Info を変えます。 例えば C のソースを書いていれば、libc.info を検索してくれます。
X-Symbol は Emacs に semi-WYSIWYG な環境を与えるパッケージです。 AUCTeX や YaTeX などの TeX 入力支援環境と一緒に使えます。 (TeX の他に HTML, SGML, Texinfo でも動作します) X-Symbol が提供する機能は:
いわゆる「シンボル」の入力支援をします。
数学記号の入力支援では、 ギリシャ文字や \rightarrow などの記号の入力を支援します。 複数種 (8 つ?) の入力方法が用意されています。 ただし amssymb.sty が提供する追加数学記号については、未サポートの部分が残っています。
アクセント付文字の入力も出来ます。 数学記号の入力支援と同様の機能を使って実装しています。 ö や ç などが入力出来ます。
^{text} の中身を上付き (text) で表示したり、 \alpha を α と表示したり、 数学記号を、独自のフォントを追加して、表示します。 [screen shot]。 また、画像をインライン表示します (Windows では未サポートか?)。
X-Symbol の開発環境は XEmacs 上です。 GNU Emacs 20 系でも動くという話ですが、いくつかの機能は使えないそうです。 GNU Emacs で使うなら、Emacs 21 で動作させるのがよいようです。
GNU Emacs 21 以降では、 特殊文字の表示や複数の大きさのフォント表示が出来ます。 X-Symbol の安定版は ver. 3 系ですが、 GNU Emacs 21 上での動作を目的に開発版 ver. 4 の開発が進行中です。 本家ホームページでは、 X-Symbol 4.51 が配布されています。
ダウンロード・ページから、 binary package (x-symbol-4.51-pkg.tar.gz) をダウンロードします。 source package (x-symbol-4.51-src.tar.gz) は使いません。 source package には動作に必要な auto-autoloads.el というファイルが欠けています。 このファイルを補充すれば、source package でも問題なくインストール出来ると思うのですが、試した事はありません。
ホームページ上に (英語で) 書いてある通りにやれば、 X-Symbol はインストール出来ます:
最後に .emacs に設定を書きます。 Path は、自分の環境に合うように設定して下さい。
;; ------------------------------- ;; X-Symbol mode customization. ;; ------------------------------- (defvar x-symbol-lisp-directory "/usr/local/share/emacs/site-lisp/x-symbol") (defvar x-symbol-data-directory "/usr/local/share/emacs/etc/x-symbol") (load (expand-file-name "auto-autoloads" x-symbol-lisp-directory)) (x-symbol-initialize)
例として、ギリシャ文字 π を入力してみましょう。
(1) 一番簡単な方法 --- メニューを使う方法 --- です。 [X-Symbol] からプル・ダウンメニューで、ギリシャ文字を選びます。 とても簡単に入力する事が出来ます。(きっと誰もこの入力方法は使わないでしょう)
(2) C-= C-= で画面が二つに分かれて、記号集が現れます[screen shot]。 π にカーソルを移動させ RET。 π 記号が入力されます。一番分かり易い方法です。
(3) C-= # p と打ちます。 π が入力されます。 π 記号を出す為のキーを知る為には、π の後ろにカーソルを持って行きます。 するとミニ・バッファに情報が表示されます:
これは、カーソルの前にある文字は π で、 ソース・ファイルには \pi と入力されていますよ。 入力方法は C-= # p とするか C-= p # としますよ。 という意味です。
第四・第五の方法は C-, と C-. を使います。 d の後ろで、C-, とすると、 d は偏微分記号にかわります。 C-. なら、δ にかわります。 前者が記号用の変換、後者がギリシャ文字用の変換です。 π を入力する場合、p の後ろで C-. です。 YaTeX のイメージ入力に似ています。
X-Symbol は TeX モードの他、bibtex, sgml, html, texinfo モードでも使えます。 同様の操作でアクセント文字や記号が入力出来ます。 特定のモード (例えば texinfo モード) で、 X-Symbol を Off にするには変数 x-symbol-auto-mode-alist をいじります:
(setq x-symbol-auto-mode-alist
'(((tex-mode latex-mode plain-tex-mode) "\\.tex\\'" 'tex
(x-symbol-auto-coding-alist x-symbol-tex-auto-coding-alist 10000) x-symbol-coding t t)
((bibtex-mode) t 'tex)
((sgml-mode html-mode) (html-mode) 'sgml
(x-symbol-auto-coding-alist x-symbol-sgml-auto-coding-alist 10000) x-symbol-coding t t)
((texinfo-mode) nil 'texi)))
GNU Emacs-21.4 以前では、X-Symbol を使っているとファイルが保存できない、
という致命的なバグがあります。
次のコードを (x-symbol-initialize) より後ろに追加すると、
問題は解決します:
(setq x-symbol-auto-conversion-method 'slowest)
ただし、この解決策は完璧ではなく、 Emacs 上のバージョン・コントロールと競合するそうです。 バージョン管理を行うには、開発版の Emacs を使う方法があります。
X-Symbol 4.4.3 以前のバージョンでは、 ファイル保存時に coding の判定に失敗します。 この不具合は 4.4.4 以降で修正されています。
X-Symbol 4.4.3 付属の Makefile.emacs は info のインストールに失敗します
X-Symbol 4.0f 以前のバージョンは emacs-21.1 の ps-print.el と相性がよくありません。 X-Symbol をロードした後に ps-print を実行すると失敗します。 この不具合は 4.0g 以降で修正されています。 ps-print を併用する場合、X-Symbol のバージョン・アップをお勧めします。 XEmacs ではこのような不具合は起きません。
Masayuki Ataka / 安宅 正之