TeXをEmacsのサブプロセスとして起動し、バッファの全内容、あるいはその一部(例:大規模な文書の1章分)を渡すことができます。
現在のバッファ全体 (tex-buffer) に対して TeX を実行します。
現在のリージョンに対して、バッファのヘッダー (tex-region) と共に TeX
を呼び出します。
現在のファイルに対して TeX を実行します (tex-file)。
直前の C-c C-b、C-c C-r、または C-c C-f コマンド(tex-view)の出力をプレビューします。
直前の C-c C-b、C-c C-r、または C-c C-f コマンド(tex-print)の出力を印刷します。
現在のファイルに対して BibTeX を実行します (tex-bibtex-file)。
TeXの出力が表示されるウィンドウを中央揃えにして、最終行が見えるようにします (tex-recenter-output-buffer)。
TeXサブプロセス (tex-kill-job) を終了する。
現在のバッファ全体に対して、別のコンパイルコマンドを実行します (tex-compile)。
現在のバッファをTeXに通すには、C-c C-b (tex-buffer) と入力します。フォーマット済みの出力は一時ファイル(通常は .dvi ファイル)に保存されます。その後、C-c C-v
(tex-view) と入力して xdvi
などの外部プログラムを起動し、この出力ファイルを表示できます。また、C-c C-p (tex-print) と入力して、出力ファイルのハードコピーを印刷することも可能です。
デフォルトでは、C-c C-b はカレントディレクトリで TeX を実行します。TeX
の出力もこのディレクトリに作成されます。別のディレクトリで TeX を実行するには、変数 tex-directory を目的のディレクトリに変更してください。環境変数 TEXINPUTS に相対パスが含まれている場合や、ファイルに相対ファイル名を含む ‘\input’ コマンドが含まれている場合は、tex-directory は "."
でなければなりません。そうでない場合は、"/tmp" など別のディレクトリを指定しても問題ありません。
バッファのTeXバリアントによって、C-c C-bで実際に実行されるシェルコマンドが決まります。Plain
TeXモードでは変数tex-run-commandで指定され、デフォルトは"tex"です。LaTeXモードではlatex-run-commandで指定され、デフォルトは"latex"です。.dviの出力を表示するためにC-c
C-vが実行するシェルコマンドは、TeXバリアントに関わらず変数tex-dvi-view-commandによって決まります。出力を印刷するためにC-c C-pが実行するシェルコマンドは、変数tex-dvi-print-commandによって決まります。変数tex-print-file-extensionには、TeXでコンパイルされたファイルを表示・印刷する際に必要なファイル拡張子を設定できます。例えば、これを.pdfに設定し、それに合わせてtex-dvi-view-commandやtex-dvi-print-command、あるいはlatex-run-commandやtex-run-commandを更新することができます。
通常、Emacsは前段で説明したシェルコマンド文字列に、出力ファイル名を自動的に付加します。例えば、tex-dvi-view-commandが"xdvi"である場合、C-c
C-vはxdvi output-file-nameを実行します。しかし、場合によっては、ファイル名をコマンドに埋め込む必要があります。例えば、あるコマンドの出力を別のコマンドにパイプで渡す際に、そのコマンドの引数としてファイル名を指定する必要がある場合などです。コマンド文字列内で‘*’と指定することで、ファイル名をどこに配置するかを指定できます。例えば、
(setq tex-dvi-print-command "dvips -f * | lpr")
エラーメッセージを含むTeXのターミナル出力は、*tex-shell* というバッファに表示されます。TeXでエラーが発生した場合、このバッファに切り替えて入力を供給することができます(これはシェルモードと同様に動作します。インタラクティブ・サブシェルを参照してください)。このバッファに切り替えなくても、C-c C-l と入力してスクロールすれば、最終行を表示させることができます。
TeXプロセスの出力が役に立たなくなった場合は、C-c C-k (tex-kill-job) を入力してプロセスを終了させてください。C-c
C-b または C-c C-r を使用すると、実行中のすべてのTeXプロセスも終了します。
また、C-c C-r (tex-region)
と入力することで、任意の領域をTeXに通すこともできます。ただし、ほとんどのTeX入力ファイルには、冒頭にパラメータの設定やマクロの定義を行うコマンドが含まれており、これらがないとファイルの後続部分が正しくフォーマットされないため、この方法は少々厄介です。この問題を解決するため、C-c C-r
を使用すると、ファイルの一部を必須コマンドを含む領域として指定できます。この指定領域は、TeXへの入力の一部として、指定した領域の前に挿入されます。このように指定されたファイルの部分は、ヘッダーと呼ばれます。
Plain TeXモードでヘッダーの範囲を指定するには、ファイル内に2つの特殊な文字列を挿入します。ヘッダーの前に ‘%**start of header’ を、後に ‘%**end of header’ を挿入してください。各文字列は1行に完全に収まっている必要がありますが、その前後の行に他のテキストがあっても構いません。これら2つの文字列を含む行はヘッダーに含まれます。バッファの最初の100行以内に ‘%**start of header’ が存在しない場合、C-c C-r はヘッダーがないものとみなします。
LaTeXモードでは、ヘッダーは ‘\documentclass’ または ‘\documentstyle’ で始まり、‘\begin{document}’ で終わります。これらはLaTeXがいかなる場合でも使用を必須とするコマンドであるため、ヘッダーを識別するために特別な処理を行う必要はありません。
コマンド (tex-buffer) および (tex-region)
は、すべての処理を一時ディレクトリ内で行い、TeXが相互参照に必要とする補助ファイルを一切利用できません。そのため、これらのコマンドは一般に、すべての相互参照が正しく設定されている必要がある最終コピーの作成には適していません。
相互参照用の補助ファイルが必要な場合は、現在のバッファのファイルのディレクトリでTeXを実行する C-c
C-f (tex-file)
を使用してください。TeXの実行前に、変更されたバッファを保存するかどうかの確認が表示されます。通常、相互参照を正しく機能させるには、(tex-file) を2回使用する必要があります。
変数 tex-start-options の値は、TeX 実行時のオプションを指定します。
変数 tex-start-commands の値で、TeX 起動時の TeX
コマンドを指定します。デフォルト値では、TeX はノンストップモードで動作します。TeX を対話的に動作させるには、変数を "" に設定してください。
大規模なTeXドキュメントは、多くの場合、メインファイル1つとサブファイル数本という複数のファイルに分割されます。通常、サブファイルに対してTeXを実行しても動作せず、メインファイルに対して実行する必要があります。サブファイルを編集する際にtex-fileを便利に使うには、変数tex-main-fileにメインファイルの名前を設定します。すると、tex-fileがそのファイルに対してTeXを実行します。
tex-main-file
を利用する最も便利な方法は、各サブファイルのローカル変数リストで指定することです。ファイル内のローカル変数を参照してください。
LaTeXファイルの場合、BibTeXを使用して現在のバッファのファイル用の補助ファイルを処理できます。BibTeXはデータベースから書誌引用情報を検索し、参考文献セクション用に引用文献を準備します。コマンド
C-c TAB (tex-bibtex-file) はシェルコマンド (tex-bibtex-command) を実行して、現在のバッファのファイル用の ‘.bbl’ ファイルを生成します。通常は、まず C-c
C-f (tex-file) を1回実行して ‘.aux’ ファイルを生成し、次に C-c TAB (tex-bibtex-file)
を実行し、その後 C-c C-f (tex-file)
をさらに2回繰り返すことで、相互参照を正しく設定する必要があります。
現在のTeXバッファで別のコンパイルプログラムを呼び出すには、C-c C-c (tex-compile) と入力します。このコマンドは、pdflatex、yap、xdvi、dvips
など、多くの一般的なプログラムに引数を渡す方法を認識しています。標準の補完キー(Completion を参照)を使用して、目的のコンパイルプログラムを選択できます。