TeX 入出力
TeX ファイル
技術的には、任意のファイルが TeX ファイルになり得ます。.tex 拡張子である必要はありません。TeX エンジンは入力をバイト単位で読み取り、内部状態にある既知のコマンドを認識しようとします。認識できないコマンドがあればエラーを報告し、端末上で修正を求めます( 対話モードで実行されている場合)。しかし、きれいに組版された文書を期待するのであれば、入力は TeX 構文に従い、理想的にはエンジンが認識できるコマンドだけを含む必要があります。
TeX 入力
TeX ジョブは明示的に指定された TeX ファイルで実行されます。つまり、特定の TeX ジョブの入力にこのファイルを含めます。さらに、TeX には補助入力に関する 4 つのプリミティブがあります。
\input<file name>はファイル名を必要とし、包含ファイルの処理が\inputコマンドに到達した時点でそのファイルの処理を開始します。補助ファイルの末尾に達すると、処理は\inputコマンドを含む元のファイルに戻ります。\openin<4-bit-number>=<file name>もファイル名が必要ですが、単にファイルを開いて 0 から 15 の番号に割り当てます。\read<number> to <control sequence>はファイルに割り当てられた番号を必要とし、1 行ずつ読み取り、<control sequence>が読み取られたトークン列に対応するようにします。\closein<4-bit-number>はその番号に割り当てられたファイルを閉じます。
\input と \openin コマンドに渡されるファイル名も TeX の入力に含まれ、これらを 補助入力 ファイルまたは 依存ファイル と呼びます。一方、ジョブに指定されたファイルは メイン入力 ファイルと呼びます。
これら 4 つのコマンドはメイン入力ファイルまたは補助入力ファイルのいずれかに記述できますが、循環依存に注意してください。
対話モードで実行している場合、エラーが発生すると TeX エンジンは端末上で修正を求めます。このとき、誤ったコマンドを新しいものに置き換えることができます。これが TeX への入力を提供するもう一つ、そして最後の方法で、端末入力 と呼びます。
TeX 出力
先ほど 上記 で述べたように、TeX ジョブは明示的に指定されたファイルで実行されます。そのファイルに組版すべきデータがまったく含まれていないこともあり得ます。文字を出力しない制御シーケンスだけが含まれる場合もあります。しかし通常はそのようなデータが含まれ、目的のフォーマットのファイルとして組版されたテキスト(またはエンジンやフォーマットが拡張されている場合は追加機能に合わせた他の内容)を取得できます。ファイル名は入力として指定したものと同じになります。このファイルを メイン出力 ファイルと呼びます。先ほど 上記 でも述べたように、元の TeX では DVI 形式のファイルになります。拡張子なしの入力ファイル名と出力ファイル名を合わせて ジョブ名 と呼びます。
さらに、TeX には補助出力に関する 3 つのプリミティブがあります。
\openout<4-bit-number>=<file name>はファイル名が必要で、ファイルを開き 0 から 15 の番号に割り当てます。\write<number>{token list}はファイルに割り当てられた番号を必要とし、token listをそのファイルに書き込みます。\closeout<4-bit-number>はその番号に割り当てられたファイルを閉じます。
\openout コマンドに渡されるファイル名も TeX の出力に含まれ、これらを 補助出力 ファイルと呼びます。
TeX エンジンが入力を処理する際、デバッグ情報を ログ または トランスクリプト ファイルに出力することがあります。このファイルも TeX の出力に含めます。
ログファイルへの書き込みと同時に、TeX エンジンは端末に詳細度の低い情報を出力することがあります。これが TeX エンジンが出力を書く最後の方法で、端末出力 と呼びます。
TeX 対話モード
TeX ジョブは任意の時点で 4 つの対話モードのいずれかで実行されます。これらのモードは以下の TeX プリミティブにより切り替えられます。
\batchmode. エンジンはすべての停止を省略し、端末出力も省くため、入力も出力も端末を必要としません。\nonstopmode. エンジンはすべての停止を省略し、出力時のみ端末が必要です。\scrollmode. エンジンはエラー停止を省略し、入力と出力の両方で端末が必要になります。\errorstopmode. エンジンは対話のたびに停止します。
Aspose.TeX ではオブジェクト生成時に TeX ジョブのオプションとして対話モードを指定できます。このモードは TeX フォーマットの読み込み直後(フォーマットが読み込まれる場合)にエンジンの内部状態に設定され、エンジンが 4 つのコマンドのいずれかに遭遇すると別のモードに切り替わります。このオプションのデフォルト値は TeX フォーマットで定義された対話モードを保持します。フォーマットが読み込まれない場合、対話モードは \errorstopmode コマンドで設定されたものと同じになります。