[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

D. インクルードファイル

TeXやInfo書式化コマンドが,Texinfoファイルの@includeコマンド を見つけたとき,それはコマンドで名指しされたファイルの内容を処理し,作成 されているDVIやInfoファイルに組み入れます.インクルードファイルからの索 引項目は,出力ファイルの索引に組み入れられます.

インクルードファイルでは,便利な小さい部分の収集物として,単一な大きなド キュメントを保持します.

D.1 インクルードファイルの使用方法  How to use the @include command.
D.2 texinfo-multiple-files-update  How to create and update nodes and menus when using included files.
D.3 インクルードファイルの必要条件  What texinfo-multiple-files-update expects.
D.4 @includeを用いたファイルの見本  A sample outer file with included files within it; and a sample included file.
D.5 インクルードファイルの進化  How use of the @include command has changed over time.


D.1 インクルードファイルの使用方法

他のファイルをTexinfoファイルにインクルードするため,@includeコ マンドを行の最初に書き,同じ行にインクルードするファイル名を続けてくださ い.例えば以下のようにします.

 
@include buffers.texi

インクルードファイルは,単に,全体をインクルードするのを期待する,または, 外部の(outer)Texinfoファイルにあるテキストの一部にすべきです。それ は,Texinfoファイルの標準的な始めと終りを含めるべきではありません.特に, インクルードファイルを,`\input texinfo'と述べている行から始めるべ きではありません.そうする場合,その文節は出力ファイルにそのまま挿入され ます.同様に,インクルードファイルを@byeコマンドで終えるべきでは ありません.@bye以降は全く書式化されません.

過去に,インクルードファイルの最初に@setfilename行を書くことが要 求されていましたが,もはやそうでははありません.今では,そのような行を書 くかどうかは重要ではありません.@setfilename行がインクルードファ イルに存在する場合,それは無視されます.

慣習的に,インクルードファイルは,@chapter行が続く@node 行で始めます.それぞれのインクルードファイルは一つの章です.これで,通常 のノードとメニューを作成更新する,ノードポインタとメニューをインクルード ファイルに作成するコマンドの使用が容易になります.しかし,単純なEmacsの ノードとメニューを作成更新するコマンドは,複数のTexnfoファイルでは動作し ません.このためそれらのコマンドを,インクルードファイルで始まる @node行の`Next',`Previous',そして`Up'ポインタを補充するために 使用することは不可能です.また,ファイル全体のマスターメニューを作成する 通常のコマンドも使用不可能です.メニューと`Next',`Previous',そして`Up' ポインタを手で挿入するか,GNU Emacs Texinfoモードのコマンド, texinfo-multiple-files-updateを使用する必要があり,それは @includeファイルに対し設計されています.


D.2 texinfo-multiple-files-update

GNU Emacs Texinfoモードは,texinfo-multiple-files-updateコマンド を提供しています.このコマンドは,インクルードファイルの`Next', `Previous',そして`Up'ポインタを,外部や全体的なTexinfoファイルに対する ものと同様に作成更新し,それは外部ファイルのメインメニューを作成更新しま す.オプションの引数での呼び出しに依存して,コマンドはインクルードファイ ルやそれら全ての最初の@node行のポインタのみを更新します.

M-x texinfo-multiple-files-update
引数無しでの呼び出し.

C-u M-x texinfo-multiple-files-update
前置引数としてC-uで呼び出し.

C-u 8 M-x texinfo-multiple-files-update
C-u 8のような,数字の引数での呼び出し.

対話的な使用での前置引数の使用時の注意:通常の前置引数C-uを用い ると,texinfo-multiple-files-updateコマンドはマスターメニューを挿 入します.C-u 8のような数字の前置引数を用いると,コマンドは 全てのファイルの全てのポインタとメニューを更新し,マス ターメニューを更新します.


D.3 インクルードファイルの必要条件

texinfo-multiple-files-updateコマンドの使用を計画している場合,そ の中でインクルードファイルをリストアップしている外部のTexinfoファイルは, Texinfoファイルの最初と最後の部分と,インクルードファイルをリストアップ している@includeコマンド以外,何も含めるべきではありません.それ には索引さえ含めるべきではなく,それはインクルードファイル自身にリストアッ プすべきです.

さらに,それぞれのインクルードファイルは,正確に一つの最上位のノード(慣 習的に,@chapterまたはそれと同等のもの)を含む必要があり,このノー ドはインクルードファイルの最初のノードにする必要があります.さらに,それ ぞれのインクルードファイルの中の,それぞれのこれらの最上位レベルのノード は,ファイル構造で同じ階層レベルにする必要があります.通常,それぞれ @chapter@appendix,または@unnumberedにします. このため,それぞれのインクルードファイルは,一つのかつ唯一の,章や同等の レベルのノードを含みます.

外部ファイルは一つのノード,`Top'ノードのみを含みます.それは,単 一の`Top'ノードの他の,あらゆるノードを含むべきではありません. texinfo-multiple-files-updateコマンドは,それらを処理しません.


D.4 @includeを用いたファイルの見本

メインまたはマスターメニューを挿入する texinfo-multiple-files-updateを実行する前の,その中に @includeファイルを用いた外部のTexinfoファイルの完全な例は以下の ようになります.

 
\input texinfo @c -*-texinfo-*-
@setfilename  include-example.info
@settitle Include Example

@setchapternewpage odd
@titlepage
@sp 12
@center @titlefont{Include Example}
@sp 2
@center by Whom Ever

@page
@vskip 0pt plus 1filll
Copyright @copyright{} 2002 Free Software Foundation, Inc.
@end titlepage

@ifinfo
@node Top, First, , (dir)
@top Master Menu
@end ifinfo

@include foo.texinfo
@include bar.texinfo
@include concept-index.texinfo

@summarycontents
@contents

@bye

`foo.texinfo'のようなインクルードファイルは,以下のようになります.

 
@node First, Second, , Top
@chapter First Chapter

Contents of first chapter ...

完全な内容の`concept-index.texinfo'は,このように簡単になります.

 
@node Concept Index
@unnumbered Concept Index

@printindex cp

The GNU Emacs Lisp Reference Manualの外部のTexinfoソースファイル は,`elisp.texi'という名前です.外部ファイルは,417項目の外部ファイ ルと,41の@includeリストを含んでいます.


D.5 インクルードファイルの進化

Infoが最初に作成されたとき,それは一つのサブジェクトに多くの小さなInfoファ イルを作成することが慣習的でした.それぞれのInfoファイルは,その独自の Texinfoファイルから書式化されました.この慣習は,情報が欲しいとき,大き なInfoファイル全体を保つためにEmacsが大きなバッファを作成する必要がない ことを意味します.その代わり,探している特定の情報を含む小さなInfoファイ ルに対して,Emacsはちょうど十分なメモリを確保していました.

一つのファイルから他への参照は,ノード名同様,ファイル名で参照されていま した.(See section Referring to Other Info Files. また, @xref with Four and Five Argumentsを参照してください.)

インクルードファイルは主に,単一の大きな印刷されたマニュアルを,複数のよ り小さなInfoファイルから作成する方法として設計されました.印刷されたマニュ アルでは,全ての参照は同じドキュメントにあり,それでTeXは自動的に参照 ページ数を決定可能でした.Info書式化コマンドは,つながった索引を作成する ためのみにインクルードファイルを使用していました.それぞれの個別の Texinfoファイルは,個別のInfoに書式化する必要がありました.(それゆえ,そ れぞれ独自の@setfilename行が必要でした.)

しかし,現在大きなファイルは自動的に分割されるので,それはもはや小さいま まにする必要がありません.

最近,複数のTexinfoファイルは,The GNU Emacs Lisp Reference Manualのような大きなドキュメントのためと,複数の異なる人々がドキュメン トの異なるセクションを同時に書くプロジェクトのための使用がほとんどです.

さらにInfo書式化コマンドは,必要な場合より小さく分割される単一の大きな Infoファイルを作成するため,@includeコマンドで動作するように拡張 されています.これは,異なるTexinfoファイルを名指しせずにメニューや相互 参照を書くことが可能だということを意味します.


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Akihiro Sagawa on January, 21 2003 using texi2html