次: , 前: makeinfo options, 上: Creating an Info File


20.1.4 ポインタの照合

`--no-validate'オプションやソースファイルでの@novalidate コ マンド(see Use 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'は 効果がありません.