前: LaTeX Editing, 上: TeX Mode


19.9.3 TeX印刷コマンド

バッファ全体あるいは一部のテキストに対して、 Emacsの下位プロセスとしてTeXを起動できます。 特定の章だけに対してこのようにTeXを実行するのは、 ファイル全体の清書に時間を費すことなく、 変更部分の見え方を確認するよい方法です。

C-c C-r
バッファのヘッダとともに、 カレントリージョンに対してTeXを起動する(tex-region)。
C-c C-b
カレントバッファ全体に対してTeXを起動する(tex-buffer)。
C-c <TAB>
現在のファイルに対してBibTeXを起動する(tex-bibtex-file)。
C-c C-f
現在のファイルに対してTeXを起動する(tex-file)。
C-c C-l
下位プロセスであるTeXの出力を表示したウィンドウをスクロールして、 出力行の最後が見えるようにする(tex-recenter-output-buffer)。
C-c C-k
TeXのサブプロセスを終了させる(tex-kill-job)。
C-c C-p
最後に実行したC-c C-rC-c C-bC-c C-fの出力を印刷する。 (tex-print)。
C-c C-v
最後に実行したC-c C-rC-c C-bC-c C-fの出力を プレビューする(tex-view)。
C-c C-q
プリンタキューを表示する(tex-show-print-queue)。

C-c C-btex-buffer)を使えば、 カレントバッファの内容を下位のTeXに渡すことができます。 清書結果は一時ファイルに出力されます。 それを印刷するには、C-c C-ptex-print)と打ちます。 そのあとで、印刷の進捗状況を確認するには C-c C-qtex-show-print-queue)を利用できます。 TeXの出力ファイルを表示する機能を持った端末があれば、 C-c C-vtex-view)でプレビューできます。

TeXが実行時に使うディレクトリを指定するには、 変数tex-directoryに設定します。 デフォルトの値は"."です。 環境変数TEXINPUTSに相対的なディレクトリ名が入っていたり、 TeXの`\input'コマンドに相対的なファイル名を指定してある場合には、 tex-directory"."である必要があります。 さもないと、誤った結果になるでしょう。 そういった状況でなければ、"/tmp"のような、 他のディレクトリを設定しても安全です。

下位のTeXを起動するために使うコマンドを指定したければ、 変数tex-run-commandlatex-run-commandslitex-run-commandtex-dvi-print-commandtex-dvi-view-commandtex-show-queue-commandに それぞれ値を設定します。 tex-dvi-view-commandにはデフォルト値がないので、 使用する端末にあわせた値を設定する必要があります。 これ以外の変数には、使用するシステムに適切と思われる (そうでないかもしれないが)デフォルト値が設定されています。

通常は、これらのコマンドに与えるファイル名はコマンド文字列の最後にきます。 たとえば、`latex filename'です。 しかし、ときにはコマンドの途中にファイル名を埋め込む必要があります。 たとえば、パイプを介して出力を他のコマンドに渡すようなコマンドの引数に ファイル名を指定する場合です。 ファイル名を置く箇所は、コマンド文字列中の`*'で指定できます。 たとえば、以下のように設定します。

     (setq tex-dvi-print-command "dvips -f * | lpr")

エラーメッセージを含めたTeXからの端末出力は、 `*tex-shell*'と呼ばれるバッファにすべて現れます。 TeXがエラーを報告した場合には、 このバッファに切り替えれば適切な入力を与えることができます (これはシェル(shell)モードと同様に動作する。see Interactive Shell)。 このバッファに切り替えなくてもC-c C-lと打てば、 バッファの最後の行が表示されるようにスクロールできます。

TeXの出力が不要となったら、TeXプロセスを終了させるために C-c C-ktex-kill-job)と打ちます。 C-c C-bC-c C-rを使っても、 動作中のTeXプロセスを終了できます。

C-c C-rtex-region)と打てば、 任意のリージョンを下位のTeXに渡せます。 しかし、これには少々巧妙な手口を必要とします。 というのは、たいていの場合、TeXの入力ファイルの先頭部分には パラメータの設定やマクロ定義があり、それらがないと残りの部分を正しく 清書できないからです。 この問題を解決するために、C-c C-rでは ファイルの中で必須の整形コマンドを含んでいる部分を指定できます。 リージョンのまえにその部分を加えてTeXへの入力とします。 ファイル中の必須であると指定された部分をヘッダと呼びます。

プレインTeX(plain-tex)モードでヘッダの境界を示すには、 ファイルに2つの特別な文字列を挿入します。 ヘッダの直前に`%**start of header'を、 ヘッダの直後に`%**end of header'を挿入します。 どちらの文字列も2行にまたがってはいけませんが、 前後に別のテキストがあってもかまいません。 これらの文字列を持つ行もヘッダに含まれます。 バッファの先頭から100行以内に`%**start of header'が現れなければ、 C-c C-rはヘッダがないと仮定します。

LaTeXモードでは、`\documentstyle'で始まり `\begin{document}'で終わる部分がヘッダです。 これらは、いかなる場合でもLaTeXが要求するコマンドなので、 ヘッダを認識するために特別なことをする必要はありません。

コマンドtex-buffertex-regionは、 一時的なディレクトリ上ですべての作業を行うので、 相互参照のためにTeXが必要とする補助ファイルを使用できません。 一般に、これらのコマンドは、相互参照がすべて正しい必要がある 最終的な原稿の作成には適していません。

相互参照のための補助ファイルを必要とする場合には、 カレントバッファのファイルを入力として、そのファイルを置いたディレクトリで TeXを実行するC-c C-ftex-file)を使います。 TeXを実行するまえに、変更したすべてのバッファを保存するか尋ねてきます。 一般には、正しい相互参照を得るためには、 tex-fileを2度実行する必要があります。

変数tex-start-options-stringの値は、 TeXの実行のオプションを指定します。 デフォルト値は、TeXをバッチモードで実行します。 TeXを対話的に実行するには、変数に""を設定します。

巨大なTeX文書は、複数のファイル、つまり、1つのメインファイルと サブファイルとに分割されることがよくあります。 サブファイルに対してTeXを実行しても、うまくいくことはまずありません。 メインファイルに対してTeXを実行する必要があります。 サブファイルを編集する場合でもtex-fileを使えるように、 メインファイルの名前を変数tex-main-fileに設定できます。 そうするとtex-fileはそのファイルに対してTeXを実行します。

tex-main-fileのもっとも便利な使い方は、 各サブファイルのローカル変数リストで指定することです。 See File Variables

LaTeX用ファイルであれば、 カレントバッファのファイルに対する補助ファイルを処理するために BibTeXを使えます。 BibTeXは、参考文献をデータベースで調べて、 参考文献の節のための文献リストを準備します。 コマンドC-c TABtex-bibtex-file)は、 カレントバッファのファイルに対する`.bbl'ファイルを 生成するためのシェルコマンド(tex-bibtex-command)を実行します。 通常は、まず`.aux'ファイルを作るために C-c C-ftex-file)を一度実行してから、 つぎにC-c TABtex-bibtex-file)を実行し、 正しい相互参照を得るためにC-c C-ftex-file)を さらに2回実行します。

どのTeXモードに入っても、 フックtext-mode-hooktex-mode-hookを実行します。 そのあとで、 plain-tex-mode-hooklatex-mode-hookの適切なフックを実行します。 SliTeXファイルに対しては、slitex-mode-hookを呼びます。 TeX用のシェルの開始時には、フックtex-shell-hookを実行します。 See Hooks