Go to the first, previous, next, last section, table of contents.


Infoファイルの作成とインストール

この章は,Infoファイルの作成とインストールの方法を述べます.ファイルの書 式自身の一般的な情報は,See section Infoファイル.

Infoファイルの作成

makeinfoは,TexinfoファイルをInfoファイル,HTMLファイル,またはプ レーンテキストに変換するプログラムです.texinfo-format-regionと, texinfo-format-bufferは,TexinfoをInfoに変換するGNU Emacsの関数で す.

InfoファイルをInfoシステムにインストールする情報は,see section Infoファイルのインストール

makeinfoの利点

makeinfoユーティリティは,Emacs書式化コマンドより速くTexinfoソー スファイルからInfoファイルを作成し,より良いエラーメッセージを提供してい ます.我々はそれを勧めています.makeinfoはEmacsから独立したCプロ グラムです.makeinfoを使用するためにEmacsを実行する必要はなく,そ のことは,Emacsを実行するには余りに非力なマシンでもmakeinfoが実行 可能だということを意味しています.makeinfoは,三つの内の一つの方 法で実行可能です.それらは,オペレーティングシステムのシェルから,Emacs のシェルから,またはEmacsのTexinfoモードでC-c C-m C-rC-c C-m C-bコマンドを入力する方法です.

texinfo-format-regiontexinfo-format-bufferコマンドは, makeinfoを実行不可能なとき役に立ちます.また,状況によって短い領 域やバッファをmakeinfoより速く書式化します.

シェルからmakeinfoを実行する

TexinfoファイルからInfoファイルを作成するため,makeinfoに続けて, Texinfoファイルの名前を入力してください.このため,BisonのInfoファイルを 作成するためには,シェルで以下のように入力します.

makeinfo bison.texinfo

(M-x shellの入力で,Emacs内部でシェルを実行可能です.)

makeinfoのオプション

makeinfoコマンドはいくつかのオプションをとります.最もよく使用さ れるオプションは,列を補充する値を設定するためのものと,脚注スタイルを指 定するために使用するものです.それぞれのコマンド行のオプションは, `--' を前に置いた単語,または,`-'を前に置いた文字です.長いオ プション名は,唯一に決まる程長い場合は省略可能です.

例えば以下のシェルコマンドで,それそれの段の文字列を68文字で補充する `bison.texinfo'に対するInfoファイルを作成するために,以下のようなシェ ルコマンドを使用することが可能でしょう.

makeinfo --fill-column=68 bison.texinfo

二つ以上のオプションを,以下のように続けて書くことが可能です.

makeinfo --no-split --fill-column=70 ...

これは,Infoファイルを,一つのおそらく大変長いファイルにまとめ,一段の文 字数を70文字に設定します.

オプションは,以下のとおりです.

-D var
変数varを定義します.これは,Texinfoファイルでの@set varと同じです(see section @set@clear,そして@value).
--commands-in-node-names
ノード名で@コマンドを許可します.おそらくTeXで実装できないの で推奨しません.また,makeinfoも非常に遅くなります.また,このオ プションは`--no-validate'が使用されているときも無視されます.詳細は, See section ポインタの照合.
--docbook
InfoではなくDocBook出力を生成します.
--enable-encoding
`@documentencoding'を元に,Infoやプレーンテキスト出力にアクセント 付の文字と特殊文字を出力します.
--error-limit=limit
-e limit
終了までにmakeinfoが報告するエラーの数の最大値を設定します(続けて も意味が無いでしょう).デフォルトは100です
--fill-column=width
-f width
一段の最大文字数を指定します.これは行の右端です.おそらくこの幅で補充す るでしょう.(補充とは,段を補充し,指定した数と同じまたはそれより短い長 さにするため,行を切ったり繋げたりする処理です.行は単語で切られます.) デフォルト値は72です.`--html'では無視されます.
--footnote-style=style
-s style
脚注の形式をstyleに設定します.ノードの終りの形式のための `end',またはノードを分ける形式の`separate'のいずれかです.こ のオプションで設定した値は,Texinfoファイルで@footnotestyleコマ ンド(see section 脚注)で設定した値に優先します.脚注形式が `separate'のとき,makeinfoは現在のノードで見つかった脚注を含 む新しいノードを作成します.脚注形式が`end'のとき,makeinfo は現在のノードの終りに脚注の参照を置きます.`--html'では無視されま す.
--force
-F
通常,入力ファイルにエラーがある場合,出力ファイルは作成されません.この オプションを用いると,出力ファイルが提供されます.
--help
-h
利用可能なオプションをリストアップした使用方法のメッセージを出力し,正し く終了します.
--html
Infoではなく,HTML出力物を生成します.See section HTMLの生成. デフォルト で,HTML出力はソースのノードごとに一つの出力ファイルに分割し,トップレベ ルのInfoファイルの名前を用いたサブディレクトリに分割した出力を書き込みま す.
-I dir
@includeコマンドを使用してインクルードしているファイルを見つける ためのディレクトリ検索リストに,dirを追加します.デフォルトで, makeinfoはカレントディレクトリのみを探します.dirが与えられ ていない場合,カレントディレクトリ`.'が追加されます.dirでは, 通常のパスの分離文字(Unixの`:',MS-DOS/MS-Windowsの`;')で分割 されている複数のディレクトリのリストが可能だということに注意してください.
--ifhtml
--ifinfo
--ifplaintext
--iftex
--ifxml
指定されたフォーマットに対し,該当する出力フォーマットを生成していない場 合でも`@ifformat'`@format'コマンドを処理します. 例えば,@option{--iftex}が指定されている場合,`@iftex'`@tex'ブロックが読み込まれます.これは,出力を後処理するとき役に立 つはずです.
--macro-expand=file
-E file
指名されたファイルに,全てのマクロを展開したTexinfoソースを出力します. 通常,マクロの展開の結果はmakeinfo内部で使用された後に削除されま す.このオプションは,@macroをサポートしていない古いバージョンの `texinfo.tex'を使用している場合,@command{texi2dvi}で使用されます.
--no-headers
Info出力に対し,出力にメニューやノードの分離行を含めません.この結果は, (例えば)添付することなく電子メールで送付したり,(`INSTALL'ファイル のように)配布物に含めたりすることが可能な,単純なプレーンテキストファイ ルになります. HTML出力に対しても同様にメニューは削除されます.そして`--no-split' も指定している場合,それぞれのノードのトップへのナビゲーションリンクは含 めません(これらはデフォルトの状況での分割された出力に含められることもあ りません).See section HTMLの生成. どちらの状況でも,デフォルトで標準出力に書き出します(@option{-o}で優先さ せることも可能です).
--no-ifhtml
--no-ifinfo
--no-ifplaintext
--no-iftex
--no-ifxml
指定されたフォーマットに対し,該当する出力フォーマットを生成している場合 でも`@ifformat'`@format'コマンドを処理しません. 例えば,@option{---no-ifhtml}が指定されている場合,`@ifhtml'`@html'ブロックは読み込まれません.
--no-split
makeinfoでの分割ステージを抑制します.デフォルトで,大きな出力ファ イル(70kバイトより大きいサイズ)はより小さいサブファイルに分割されます. Info出力に対しそれぞれ約50kバイトになります.HTML出力に対し,それぞれの ファイルは一つのノードを含みます(see section HTMLの生成).
--no-pointer-validate
--no-validate
makeinfoのポインタの有効化のステージを抑制します.これは, @novalidateコマンドでも可能です(see section TeXの使用).通 常はTexinfoファイルが処理された後,相互参照が解決されていることを確かめ るなどのため,一貫性の調査が行われます.See section ポインタの照合.
--no-warn
警告メッセージ(エラーメッセージではない)を抑制します.作成したファ イルにTexinfoの相互参照の例がある場合と,実際には存在しないノードの参照 がある場合にこうしたいもしれません.
--number-sections
印刷されたマニュアルでの,章,セクション,そして付録の番号を出力します.
--no-number-footnotes
自動的な脚注への番号付けを抑制します.デフォルトでmakeinfoは,単 一ノード内のそれぞれの脚注に順番に番号付けを行い,それぞれのノードの開始 時に現在の脚注番号を1にリセットします.
--output=file
-o file
出力を,Texinfoソースで見つかる@setfilenameコマンドで指定したファ イル名ではなく,fileに指定します(see section @setfilename:出力ファイル名を設定する).file`-'の場合は出力は標準出力になり,`--no-split'が暗黙に指定さ れます.分割されれたHTML出力では,fileはすべてのHTMLファイルが書き 込まれるディレクトリの名前になります(see section HTMLの生成).
-P dir
@includeに対するディレクトリ検索リストの前にdirを追加しま す.dirが与えられない場合,カレントディレクトリ`.'が前に追加 されます.詳細は`-I'を参照してください.
--paragraph-indent=indent
-p indent
段落の字下げ形式をindentに設定します.このオプションで設定した値は, Texinfoファイルで@paragraphindentコマンドで設定した値に優先しま す(see section 段落の字下げ).indentの値は,以下のように解釈されま す.
`asis'
段落の開始で,あらゆる字下げを保存します.
`0' or `none'
既存の字下げを削除します.
num
それぞれの段落を,num個の空白で字下げします.
--reference-limit=limit
-r limit
makeinfoが警告を報告せずに作成する,ノード参照数の値を設定します. ノードにこの数以上の参照がある場合,makeinfoは参照を作成しますが 警告を報告します.デフォルトは1000です.
--split-size=num
Infoファイルを最大num文字に保ちます.デフォルトは50,000文字です.
-U var
varを未定義にします.これは,Texinfoファイルでの@clear varと同じです(see section @set@clear,そして@value).
--verbose
makeinfoに,行っていることのメッセージを表示させます.通常 makeinfoは,エラーや警告がある場合のみメッセージを出力します.
--version
-V
バージョンナンバーを出力し,正しく終了します.
--xml
InfoではなくXML出力を生成します.

ポインタの照合

`--no-validate'オプションやソースファイルでの@novalidate コ マンド(see section TeXの使用)でポインタの照合を抑制しない場合, makeinfoは最終的なInfoファイルの一貫性を調べます.ほとんどこれは, 参照したノードが本当に存在していることを確かめることを意味します.調べる ものの完全なリストは以下のようになります.

  1. `Next',`Previous',または`Up'ノードの参照が現在のファイルのノードへの参 照で,`(dir)'のような外部での参照ではない場合,参照されるノードが存 在する必要があります.
  2. 全てのノードで,`Previous'ノードが`Up'ノードと異なる場合,`Previous'フィー ルドで指し示すノードには,このノードへ戻る`Next'フィールドが存在する必要 があります.
  3. `Top'ノード以外の全てのノードには,`Up'ポインタが存在する必要があります.
  4. `Up'ポインタで参照されるノードは,`Up'で参照されるノードが`(file)' でない限り,現在のノードのメニュー項目にそれ自身の参照が存在する必要があ ります.
  5. ノードの`Next'の参照が`Up'の参照の`Next'の参照と同じでない場合,`Next' ポインタで参照されるノードには,現在のノードに戻る`Previous'ポインタが存 在する必要があります.この規則で,次の章の最初のノードを指し示しているセ クションの最後のノードが可能になります.
  6. `Top'以外の全てのノードは,`Previous'や`Next'のリンクや,メニューや相互 参照による,少なくとも一つの他のノードからの参照があるべきです.

Texinfoドキュメントには,ノード定義で@value@definfoencloseのようなコマンドを使用したり,矛盾した相互参照に 対する照合のフェーズで失敗するものもあります.以下の例を考えます.

@set nodename Node 1

@node @value{nodename}, Node 2, Top, Top

This is node 1.

@node Node 2, , Node 1, Top

This is node 2.

ここで,ノード"Node 1"はその単語と@valueの両方で参照されます.

デフォルトでは,ノード名が出力ファイルに書かれるまでは完全に展開されない ので,そのような場合makeinfoは失敗します.常に一貫してノード参照 するべきです.例えば上の例では,二番目の@node行にも @value があるべきです.しかし,理由があって矛盾したノード名の参 照をする必要がありmakeinfoがファイルの有効化に失敗した場 合,makeinfoがドキュメントで見つかる全てのノード名を展開するよう な負荷の高い作業を実行をするよう,`--commands-in-node-names'オプショ ンを使用することが可能です.しかしこれは,プログラムがかなり遅くなります. 変換時間の2倍の増加が,Jargonファイルのような大きなファイルで測定されま した.

@nodeディレクティブでの@-コマンドのサポートは,自由に使 える程には一般的に十分ではありません.例えば上の例では,ドキュメントのど こかでnodenameが再定義される場合,たとえ `--commands-in-node-names'をオプションを呼び出していても makeinfoは変換に失敗します.

`--no-validate'が与えられた場合,`--commands-in-node-names'は 効果がありません.

Emacs内部でmakeinfoを実行する

makeinfo-regionmakeinfo-bufferコマンドを使用することで, GNU Emacs Texinfoモードでmakeinfoを実行することが可能です. Texinfoモードでは,コマンドはデフォルトで,C-c C-m C-rC-c C-m C-bに割り当てられています.

C-c C-m C-r
M-x makeinfo-region
現在の領域をInfoに書式化します.
C-c C-m C-b
M-x makeinfo-buffer
現在のバッファをInfoに書式化します.

makeinfo-regionmakeinfo-bufferを呼び出すとき,Emacsはファ イル名のためプロンプトを出し,デフォルトとして訪問されたファイルの名前を 提示します.希望があれば,makeinfo処理を始めるRETを押す前に, ミニバッファのデフォルトファイル名を編集できます.

Emacsのmakeinfo-regionmakeinfo-bufferコマンドは,一時的 なシェルバッファでmakeinfoプログラムを実行します.makeinfo がエラーを見つけた場合,Emacsはエラーメッセージを一時的なバッファに表示 します.

C-x `(next-error)の入力で,エラーメッセージを解析することが 可能です.これでEmacsは,makeinfoがエラーとしたTexinfoソースの行 にカーソルを移動します.next-errorコマンドの使用の詳細は, See section `Running make or Compilers Generally' in The GNU Emacs Manual.

さらに,makeinfoコマンドを実行しているシェルを殺したり,シェルバッ ファに最新の出力を表示させたりすることも可能です.

C-c C-m C-k
M-x makeinfo-kill-job
(makeinfo-regionmakeinfo-bufferから)makeinfoを実 行している,現在のジョブを殺します.
C-c C-m C-l
M-x makeinfo-recenter-output-buffer
最新の出力を表示するため,makeinfoシェルバッファを再表示します.

(TeXジョブを殺したり再表示したりする類似のコマンドが,C-c C-t C-kC-c C-t C-lだと言うことに注意してください.See section Texinfoモードでの書式化と印刷.)

M-x edit-optionsM-x set-variableコマンドで makeinfo-options変数を設定することや,`.emacs'初期化ファイル で変数を設定することで,makeinfoに対するオプションを指定できます.

例えば,以下のように`.emacs'ファイルに書きます.

(setq makeinfo-options
     "--paragraph-indent=0 --no-split
      --fill-column=70 --verbose")

詳細は,section makeinfoのオプションと, The GNU Emacs Manualの"Editing Variable Values,","Examining and Setting Variables,"と"Init File"を参照してください.

texinfo-format...コマンド

GNU EmacsのTexinfoモードでtexinfo-format-regionコマンドを使用して, Texinfoファイルの一部または全体を書式化することが可能です.これは,現在 の領域を書式化し,`*Info Region*'と呼ばれる一時的なバッファに書式化 されたテキストを表示します.

同様に,texinfo-format-bufferコマンドでバッファを書式化します.こ のコマンドは新しいバッファを作成し,その中にInfoファイルを生成します. C-x C-sと入力すると,Texinfoの最初の方の@setfilename行で指 定された名前でInfoファイルを保存します.

C-c C-e C-r
texinfo-format-region
現在の領域をInfoに書式化します.
C-c C-e C-b
texinfo-format-buffer
現在のバッファをInfoに書式化します.

texinfo-format-regiontexinfo-format-bufferコマンドは,い くつかのエラー調査を提供し,その他の関数は,書式化のエラーを見つける上で それ以上の助けとなるものを提供するはずです.これらの手続きは付録で記述さ れています.section 書式化の失敗を参照してください.しかし, makeinfoプログラムはより速い場合が多く,より多くのエラー調査を提 供します(see section Emacs内部でmakeinfoを実行する).

書式化のバッチ処理

batch-texinfo-formatとEmacsバッチモードを使用して,Texinfoファイ ルをInfoファイルに書式化することが可能です.Emacsの内部シェルを含む,あ らゆるシェルからバッチモードでEmacsを実行することが可能です. (See section `Command Line Switches and Arguments' in The GNU Emacs Manual.)

以下は,カレントディレクトリの`.texinfo'で終る全てのファイルを書式 化するためのシェルコマンドです.

emacs -batch -funcall batch-texinfo-format *.texinfo

Emacsは,コマンド行でリストアップされた全てのファイルを,たとえ書式化中 にエラーが発生しても処理します.

batch-texinfo-formatは,表示してあるようにEmacsのBatchモードだけ で実行してください.それは対話的ではありません.成功するとバッチモードの Emacsを強制終了します.

batch-texinfo-formatは,makeinfoがない場合と,一度に複数の Texinfoファイルを書式化したい場合に便利です.バッチモードを使用するとき, 新しいEmacsプロセスを作成します.これは現在のEmacsとは無関係なので,そこ で仕事を続けることが可能です.(texinfo-format-regiontexinfo-format-bufferを実行しているときは,コマンドが終了するまで 他のこと行なうためEmacsを使用することは不可能です.)

タグファイルとスプリットファイル

Texinfoファイルが30,000バイト以上の場合,texinfo-format-bufferは Infoファイルに対し自動的にタグ表を作成します.makeinfoは,常にタ グ表を作成します.タグ表(tag table)を用いることで,Infoは新しいノー ドへ他より速く移動可能です.

さらに,Texinfoファイルが70,000バイト以上の場合, texinfo-format-buffermakeinfoは,大きなInfoファイルをそ れぞれ50,000バイト程度のより小さい間接的な(indirect)サブファイルに 分割します.大きなファイル全体を保持する大きなバッファをEmacsが作成しな くてもよいように,大きなファイルは小さなファイルに分割されます.代わりに Emacsは,分割された小さなファイルが必要とするだけのメモリを確保します. このようにして,EmacsはInfo実行中のメモリの無駄を避けます.(分割が実装さ れる前は,Infoファイルは常に短いままになっていて,インクルードファ イル(include files)は小さなInfoファイルから単一の大きな印刷マニュアルを 作成する方法として設計されていました.詳細はSee section インクルードファイル. イン クルードファイルは,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ノード チェックコマンドを,間接ファイルでは使用することは不可能です.ファイルを 分割から避ける方法や,ノードの構造の有効化の方法の情報は,section Info-validateの実行を参照してください.

HTMLの生成

Info書式での出力を生成するだけでなく,`--html'オプションを使用して, (例えば)ウェブサイトに配置するために,HTMLフォーマットで出力を生成するこ とが可能です.デフォルトで,HTML出力はノードのレベルで分割されています.

分割時に,HTML出力ファイルはサブディレクトリに書き出されます.サブディレ クトリは,拡張子が削除された@setfilenameの名前に一致して命名され ます.例えば,@setfilename emacs.infoに対するHTML出力は, `emacs'という名前のサブディレクトリに書き出されます.何らかの理由で ディレクトリが作成できない場合,`emacs.html'のようにディレクトリ名 に`.html'が追加されます(Infoファイルは,例えば`texinfo'のよう に拡張子無しで命名されることもあるので,これは必要です). `name.html'ディレクトリも作成できない場合,makeinfoは あきらめます.あらゆる状況で,ディレクトリのトップレベルの出力ファイルは, 常に`index.html'と命名されます.

分割されない出力(--no-split)は,@setfilename--outfileによって命名されます.ドキュメントを跨ったノード参照は, 分割されないHTMLではサポートされていません.

@ifhtmlコマンドで印が付いているされたTexinfo入力は, `--html'オプションが供給されたときだけ出力物を生成します. @htmlでマークアップされた入力は,そのまま出力に渡されます(HTMLで 特別重要な,入力の`<'`>'`&'文字の,通常のエスケープ文 字は抑制されます.)@option{--xml}オプションと,@ifxml@xmlセクションと同様です.

`--footnote-style'オプションは,HTML出力では現在は無視されます.脚 注は出力ファイルの終りにリンクされます.

生成されたHTMLはほとんど標準的です(いわゆる,HTML 2.0, RFC-1866).例外と して,HTML 3.2の表が,@multitableコマンドで生成されますが,表を サポートしていないブラウザでも分解可能なようにタグ付けされています. `<html>'属性のHTML 4 `lang'属性も使用されます.ブラウザの互換 性の問題があるmakeinfoでエラーが無かった実行結果の出力を,バグと して報告してください.

ナビゲーションバーが,Info出力に似たものとしてノードの始まりに挿入されま す.`--no-headers'オプションは,`--no-split'を使用している場合, これを抑制します.分割された出力物のヘッダの<link>の要素は,Lynx とHTML 1.0の機能で実装されているEmacs W3のようなブラウザで,info のようなナビゲートをサポートしています.他のドキュメントに対する `@xref'コマンドは,他のドキュメントがHTML 形式で利用可能であるとし て生成され,同じHTMLドキュメントツリーの`../<info-document>/'にイン ストールされます.

Infoファイルのインストール

Infoファイルは,通常`info'ディレクトリに置かれます.Infoファイルを, スタンドアローンのInfoプログラムやEmacs組込みのInfoリーダーを使用して読 むことが可能です.(Infoの紹介は,See Info file `info-ja', node `Top'.)

ディレクトリファイル`dir'

Infoを動作させるため,`info'ディレクトリには,Infoシステムのための トップレベルディレクトリを提供するファイルを含める必要があります.慣習的 に,このファイルは`dir'と呼ばれます.(このファイルの場所は,Emacsで Infoモードに入るためC-h iと入力し,`info'ディレクトリへのパス 名を見るためC-x C-fを入力すると分かります.)

`dir'ファイルはそれ自身がInfoファイルです.それは,システム全ての Infoファイルに対するトップレベルメニューを含んでいます.メニューは以下の ようになってます.

* Menu:
* Info:    (info).     Documentation browsing system.
* Emacs:   (emacs).    The extensible, self-documenting
                      text editor.
* Texinfo: (texinfo).  With one source file, make
                      either a printed manual using
                      @TeX{} or an Info file.
...

これらのメニューの項目のそれぞれが,丸カッコに名前があるInfoファイルの `Top'ノードを示します.(Infoはノード名を指定されない場合,`Top'ノードへ 行くので,このメニュー項目は`Top'ノードを指定する必要はありません. See section 他のInfoファイルへの参照.)

このため,`Info'項目は`info'ファイルの`Top'ノードを示し, `Emacs'項目は`emacs'ファイルの`Top'ノードを示します.

それぞれのInfoファイルでは,`Top'ノードの`Up'ポインタはdirファイ ルへの参照です.例えば,Emacsマニュアルの`Top'ノードの行は,Infoファイル では以下のようになっています.

File: emacs  Node: Top, Up: (DIR), Next: Distrib

この状況では,`dir'ファイル名は大文字で書かれています -- それは, 大文字または小文字で書くことが可能です.これは一般に真ではなく, `dir'の場合だけ特別です.

新しいInfoファイルをリストアップする

新しいInfoファイルをシステムに加えるため,`info'ディレクトリの `dir'ファイルのメニューを加える,メニュー項目を書く必要があります. 例えばGDBのドキュメントを加える場合,以下の新しい項目を書きます.

* GDB: (gdb).           The source-level C debugger.

メニュー項目の最初の部分はメニュー項目名でコロンが続きます.二番目の部分 はInfoファイル名で,丸カッコの中にあり,ピリオドが続きます.三番目の部分 は記述です.

Infoファイルの名前には,`.info'拡張子があることが多いです.そのため, GDBのInfoファイルは`gdb'または`gdb.info'と呼んでもかまわないで しょう.Infoリーダープログラムは,自動的に`.info'の有無の両方を試し ます.(15)バラバラになるのを避けるために,メニュー項目に明示的 に`.info'を書かない方が良いでしょう.例えばGDBメニュー項目は,ファ イル名に`gdb.info'ではなく`gdb'だけを使用すべきです.

他のディレクトリのInfoファイル

Infoファイルが`info'ディレクトリに無い場合,その場所を指定する三つ の方法があります.

  1. `dir'ファイルで,メニューの二番目の部分にパス名を書いてください.
  2. Emacsを使用している場合,そのディレクトリで,二番目の`dir'にファイ ル名をリストアップしてください.そして,個人やサイトの初期化ファイルで, Info-directory-list変数にそのディレクトリ名の指定を加えてください. この変数は,Emacsに`dir'ファイルを探す場所を伝えます(ファイルは `dir'と名付ける必要があります).Emacsは,それぞれリストアップされた ディレクトリからの,`dir'と名付けられたファイルをマージします. (Emacsバージョン18では,Info-directory変数で一つのディレクトリ名 のみ設定することが可能です.)
  3. Infoディレクトリ名を,`.profile'`.cshrc'初期化ファイルで, INFOPATH環境変数で指定してください.(この環境変数を設定した人だけ, この方法で指定した場所のInfoファイルを見つけることができます.)

例えば,`/home/bob/info'ディレクトリのテストファイルにたどり着くよ うに,標準`dir'ファイルのメニューに,以下のように項目を加えることも 可能でしょう.

* Test: (/home/bob/info/info-test).  Bob's own test file.

この状況では,`info-test'ファイルの絶対的なファイル名は,メニュー項 目の二番目の部分に書かれます.

別の方法として,`.emacs'ファイルに以下のように書くことも可能でしょ う.

(require 'info)
(setq Info-directory-list
 (cons (expand-file-name "/home/bob/info")
       Info-directory-list))

これは,Emacsにシステムの`dir'ファイルを,`/home/bob/info'ディ レクトリの`dir'ファイルとマージするよう伝えます.このためInfoは, `/home/bob/info/dir'ファイルのメニュー項目のように, `/home/bob/info/info-test'ファイルをリストアップします.Emacsは, M-x infoを最初に実行したときのみマージするので,既にinfoを 実行しているEmacsのセッションでInfo-directory-list設定したい場合, Emacsに`dir'ファイルを再構成させるため(setq Info-dir-contents nil)する必要があります.

最後に,`.cshrc'`.profile'や,`autoexec.bat'のような, シェルのスタートアップファイルでINFOPATH環境変数を設定することで Infoに探す場所を伝えることが可能です.シェルコマンドインタプリタとして shbashのようなBourne互換シェルを使用している場合, INFOPATH環境変数を`.profile'初期化ファイルで設定します.しか し,cshtcshを使用している場合,`.cshrc'初期化ファイ ルで変数を設定します.MS-DOS/MS-Windowsシステムでは,INFOPATH`autoexec.bat'ファイルかレジストリで設定する必要があります.それぞ れのシェルで構文は異なります.

`.'は,通常カレントディレクトリを示します.Emacsは,INFOPATH 環境変数をEmacs自身のInfo-directory-list変数の初期化に使用します. スタンドアローンのInfoリーダーは,@env{INFOPATH}変数でリストアップされた あらゆるディレクトリの`dir'という名のファイルを,`(dir)Top'と 呼ばれるノードに現れる単一のメニューにマージします.

しかし,@env{INFOPATH}を設定しても,最後の文字がコロン (17)の 場合,これはデフォルトの(compiled-in)パスに置換されます.これは,全ての 標準の場所をリストアップすること無く,新しいディレクトリでデフォルトのパ スを増やす方法となります.例えば以下のようにします(sh構文使用).

INFOPATH=/local/info:
export INFOPATH

これで,`/local/info'が最初で,それから標準ディレクトリを探します. 最初や二重のコロンは,特別扱いしません.

Info-directory-listや@env{INFOPATH}で利用する独自の`dir'ファ イルを作成するとき,既存の`dir'ファイルをコピーから初め,`* Menu:'以下のテキストを必要な項目で置換するのが最も簡単な方法です.その方 法では,Infoが必要とする句読点と特別なCTRL-_文字が残ります.

Infoディレクトリファイルのインストール

Infoファイルをシステムにインストールするとき,プログラム install-infoをInfoディレクトリファイル`dir'の更新に使用する ことが可能です.通常,パッケージのmakefileは,Infoファイルを適切なインス トール先にコピーした直後にinstall-infoを実行します.

Infoファイルがinstall-infoで動作するように,コマンド @dircategory@direntry...@end direntryを, Texinfoソースファイルに含めます.Infoディレクトリファイルに加えるメニュー 項目を指定するため,@direntryを使用してください.このマニュアル でこれらのコマンドを使用している例は以下のようになります.

@dircategory Texinfo documentation system
@direntry
* Texinfo: (texinfo).           The GNU documentation format.
* install-info: (texinfo)Invoking install-info. ...
...
@end direntry

これでInfoファイルに生成されたものは,以下のようになります.

INFO-DIR-SECTION Texinfo documentation system
START-INFO-DIR-ENTRY
* Texinfo: (texinfo).           The GNU documentation format.
* install-info: (texinfo)Invoking install-info. ...
...
END-INFO-DIR-ENTRY

install-infoプログラムは,Infoファイルのこれらの行を見て,そして なすべきことを知ることになります.

常に@direntry@dircategoryコマンドを,Texinfo入力の最初 に,最初の@nodeコマンドの前で使用してください.入力ファイルの後 の方で使用する場合,install-infoはそれらに注意を払いません.

@dircategoryをTexinfoソースファイルで1回以上使用する場合,それぞ れの使用されたものは`current'カテゴリーを指定します.それに続く @direntryコマンドはそのカテゴリーを追加します.

@dircategoryに対するカテゴリを選択するとき,http://www.gnu.org/directoryを考慮することを推奨します.プロ グラムがそこにリストアップされていない場合や,間違っていたり不完全なまま リストアップされている場合,カテゴリ名が同期をとれるように,ディレクトリ 管理者(bug-directory@gnu.org)にその状況を報告してください.

以下はその例です.

Emacs
Localization
Printing
Software Libraries

インストールされるすべてのプログラムのそれぞれの`Invoking'ノードは, @direntryに対応すべきです.これで,伝統的な@command{man}システム のように,実行可能なそれぞれのプログラムに対するドキュメントを,ユーザは 容易に見つけることができます.

@command{install-info}の呼び出し

install-infoは,InfoファイルからInfoシステムのトップレベルの `dir'ファイルにメニュー項目を挿入します(`dir'ファイルの動作の 説明は,前のセクションを参照してください).それは,ソフトウェアのインス トールの一部として,またシステムのマニュアル全体に対し,`dir'ファイ ルを構築するときよく実行されます.構文は以下のようになります.

install-info [option]... [info-file [dir-file]]

info-filedir-fileを指定しない場合,(以下で述べる)それらを 定義するオプションが必要です.コンパイル時のデフォルトは無く,標準入力は 使用しません.install-infoは,呼び出し毎に一つのInfoファイルのみ 読み込み,一つの`dir'にのみ書き込みます.

dir-file(が指定されていても)存在しない場合,install-infoは (項目の無い)dir-fileを可能な場合は作成します.

入力ファイルが,gzipで圧縮されている場合(see section `Invoking gzip' in Gzip),install-infoは自動的に読み込みのために解凍し ます.そして,dir-fileが圧縮されている場合も,install-info は自動的に変更を書き込んだ後,圧縮された状態にします.dir-file自身 が無い場合,install-info`dir-file.gz'を開こうとしま す.

オプションです.

--delete
dir-fileからinfo-fileの項目を削除します.dir-fileの項 目のファイル名はinfo-fileにする必要があります(その中の,オプション の`.info'は例外です).新しい項目は挿入しません.
--dir-file=name
-d name
Infoディレクトリファイルのファイル名を指定します.これは,dir-file 引数を使用することと同じです.
--entry=text
-e text
Infoディレクトリ項目としてtextを挿入します.textは,Infoメ ニュー項目行にゼロ以上の空白で始まる行を追加した書式にすべきです.一つ以 上の項目を指定する場合,全て追加されます.項目を指定しない場合,Infoファ イル自身の情報から決定します.
--help
-h
基本的な使用方と,利用可能な全てのオプションをリストアップした使用方法メッ セージを表示し,正しく終了します.
--info-file=file
-i file
ディレクトリにインストールするInfoファイルを指定します.info-file 引数の使用と同じです.
--info-dir=dir
-D dir
`dir'が位置するディレクトリを指定します. `--dir-file=dir/dir'と同じです.
--item=text
`--entry=text'と同じです.Infoディレクトリ項目は,実際にはメ ニュー項目です.
--quiet
警告を抑制します.
--remove
-r
`--delete'と同じです.
--section=sec
-s sec
このファイルの項目を,ディレクトリのセクションsecに書きます.一つ以 上のセクションを指定した場合,Infoファイル自身の情報から決定されます.
--version
-V
バージョン情報を表示し,正しく終了します.


Go to the first, previous, next, last section, table of contents.