Next: makeinfo html, Previous: Batch Formatting, Up: Creating an Info File
Texinfoファイルが30,000バイト以上の場合,texinfo-format-buffer
は
Infoファイルに対し自動的にタグ表を作成します.makeinfo
は,常にタ
グ表を作成します.タグ表(tag table)を用いることで,Infoは新しいノー
ドへ他より速く移動可能です.
さらに,Texinfoファイルが70,000バイト以上の場合,
texinfo-format-buffer
とmakeinfo
は,大きなInfoファイルをそ
れぞれ50,000バイト程度のより小さい間接的な(indirect)サブファイルに
分割します.大きなファイル全体を保持する大きなバッファをEmacsが作成しな
くてもよいように,大きなファイルは小さなファイルに分割されます.代わりに
Emacsは,分割された小さなファイルが必要とするだけのメモリを確保します.
このようにして,EmacsはInfo実行中のメモリの無駄を避けます.(分割が実装さ
れる前は,Infoファイルは常に短いままになっていて,インクルードファ
イル(include files)は小さなInfoファイルから単一の大きな印刷マニュアルを
作成する方法として設計されていました.詳細はSee Include Files. イン
クルードファイルは,The Emacs Lisp Reference Manualのような,大変
大きなドキュメントのためにまだ使用されて,そこでは,それぞれの章は別々の
ファイルになっています.)
ファイルが分割されるとき,Info自身は,タグ表と分割されたファイルへの参照 を含む元ファイルの短縮バージョンを利用します.分割されたファイルは, 間接的な(indirect)ファイルと呼ばれます.
分割されたファイルは,@setfilename
コマンドで指定したファイル名に,
‘-1’,‘-2’,‘-3’などを追加して作成された名前
をになります.元ファイルの短縮バージョンは,@setfilename
で指定さ
れた名前を持ち続けます.
このドキュメントを書いている段階で,例えばInfoファイルはファイル test-texinfoとして保存され,そのファイルは以下のようになっていま す.
Info file: test-texinfo, -*-Text-*- produced by texinfo-format-buffer from file: new-texinfo-manual.texinfo ^_ Indirect: test-texinfo-1: 102 test-texinfo-2: 50422 test-texinfo-3: 101300 ^_^L Tag table: (Indirect) Node: overview^?104 Node: info file^?1271 Node: printed manual^?4853 Node: conventions^?6855 ...
(しかし,test-texinfoファイルは,ここで見るよりはるかに多くのノー ドがあります.)それぞれの分割された間接的なファイルtest-texinfo-1, test-texinfo-2,そしてtest-texinfo-3は,このファイルの ‘Indirect:’以下の行でリストアップされます.タグ表は,‘Tag table:’以下の行でリストアップされます.
間接的なファイルのリストで,ファイル名に続く番号は前の間接的なファイルに 累積バイト数を記録し,ファイルリスト自身のバイト数,タグ表,またはそれぞ れのファイルの許可テキストは記録しません.タグ表では,ノード名に続く数は ノードの開始位置を(分割されていない)出力の最初からのバイトを記録します.
Infoファイルを作成するためtexinfo-format-buffer
を使用している場合,
Info-validate
コマンドを実行したくなるかもしれません.
(makeinfo
コマンドはそれ自身良い仕事をするので,
Info-validate
は不要です.)しかし,M-x Info-validateノード
チェックコマンドを,間接ファイルでは使用することは不可能です.ファイルを
分割から避ける方法や,ノードの構造の有効化の方法の情報は,Using Info-validateを参照してください.