[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
ノード(Nodes)はTexinfoファイルの主要な部分です.それらは,それ自身 が階層的ではなく,ファイル構造でもありません.ノードは,他のノードの名前 を持つノードポインタ(node pointers)を含み,ノードをリストアップし ているメニュー(menus) を含めることも可能です.Infoでは,移動コマン ドで指示されたノードやメニューのノードリストへ移動することが可能です.ノー ドポインタとメニューは,Info ファイルに,章,セクション,サブセクション 等のような構造を提供していて,それらは印刷された本に構造を提供しているも のに似ています.
6.1 二つのパス | Different commands to structure Info output and printed output. | |
6.2 ノードとメニューの図 | A diagram, and sample nodes and menus. | |
6.3 @node コマンド | Creating nodes, in detail. | |
6.4 makeinfo でポインタを作成する | Letting makeinfo determine node pointers. | |
6.5 @anchor :相互参照のターゲット任意に定義する | Defining arbitrary cross-reference targets. |
ノードとメニューコマンドと章の構造化コマンドは,専門的にはお互い独立して います.
ノードポインタとメニューを,Infoファイルを好きなように構造化するために使 用することが可能です.Texinfoファイルで,Info出力が印刷物と異なるように 書くことも可能です.しかし,ほとんど全てのTexinfoファイルは,Info出力の 構造が印刷物の構造に対応するように書かれています.そうしなければ,読者は 不便で理解不能になります.
一般に,印刷物は章が主要な大枝でそこからセクションが枝を出している木のよ うな階層構造です.同様に,ノードポインタとメニューは,Info出力で一致する 構造を作成するように組織化されています.
前で示した,章が三つでそれぞれが二つのセクションを含むTexinfoファイル図 の,コピーは以下のようになります.
"root"は図の最上部で,"leaves"が最下部です.これはそのような図を書く 慣習的な方法です.それは,さかさまの木を描きます.このため,ルートノード は`Top'ノードと呼ばれ,`Up'ノードはルートに近い方向へ導きます.
Top | --------------------------------------------- | | | 1 章 2 章 3 章 | | | ----------- ----------- ----------- | | | | | | セクション セクション セクション セクション セクション セクション 1.1 1.2 2.1 2.2 3.1 3.2 |
二章を開始するため,完全に書かれたコマンドは以下のようになります.
@node Chapter 2, Chapter 3, Chapter 1, Top @comment node-name, next, previous, up |
この@node
行は,このノード名が"Chapter 2"で,`Next'ノードが
"Chapter 3"で,`Previous'ノードが"Chapter 1"で,`Up'ノードが"Top"
だということを告げています.ドキュメントが階層的に組織化されている場合
(see section 6.4 makeinfo
でポインタを作成する),これらのノード名を書くことを省略可
能ですが,ポインタの関係は得られます.
注意してください:`Next'は,マニュアルで同じ階層レベルの次のノー ドを参照し,それは,Texinfoファイル内での次のノードである必要はありませ ん.Texinfoファイルでは,次のノードは下のレベルかもしません -- 例えば, セクションレベルノードは,章レベルのノードに続くことが多くあります. `Next' と`Previous'は,同じ階層レベルのノードを参照します.(`Top' ノードはこの規則の例外です.`Top'ノードはそのレベルでの唯一のノードなの で,`Next'は,以下にある最初のノードを参照し,それは通常,章や章レベルの ノードです.)
Infoを使用して,セクション2.1と2.2に行くため,2章の内部にメニューが必要 です.(See section 7. メニュー.)以下のように,セクション2.1をはじめる前に,メニュー を書きます.
@menu * Sect. 2.1:: Description of this section. * Sect. 2.2:: @end menu |
セクション2.1に対して,以下のように書いてください.
@node Sect. 2.1, Sect. 2.2, Chapter 2, Chapter 2 @comment node-name, next, previous, up |
Info書式では,ノードの`Next'と`Previous'ポインタは通常,同じレベルの他の ノードへ導きます -- 章から章や,セクションからセクションのようになりま す(ここまで見てきたように,`Previous'ポインタが上を指すこともあります). `Up'ポインタは通常,上のレベルのノードへ導きます(`Top'ノードに近い方向で す).`Menu'は下のレベルのノードへ導きます(`leaves'に近い方向です).(相互 参照は,あらゆるレベルのノードを指し示します.8. 相互参照を参 照してください.)
通常,@node
コマンドと章の構造化コマンドは,索引コマンドと一緒に
順番に使用されます.(@node
行に,指し示すものを覚えておくためのコ
メント行を続けてもかまいません.)
このマニュアルの"Ending a Texinfo File"と呼ばれる章の最初は以下のよう
になっています.これには,@node
行,それに続くコメント行,
@chapter
行,そして索引行があります.
@node Ending a File, Structuring, Beginning a File, Top @comment node-name, next, previous, up @chapter Ending a Texinfo File @cindex Ending a Texinfo file @cindex Texinfo file ending @cindex File ending |
@node
コマンド
ノード(node)とは,@node
コマンドで始まり,次の@node
コマンドまで続くテキストの塊です.ノードの定義は章やセクションとは異なり
ます.章にセクションを含めてもかまいませんし,セクションにサブセクション
を含めてもかまいません.しかし,ノードにサブノードを含めることは不可能で
す.ノードのテキストは,ファイルの次の@node
コマンドまで続くだけ
です.ノードは通常,章の構造化コマンドを一つだけ含み,それは
@node
行に続けます.一方,印刷物ではノードは相互参照としてのみ使
用されるので,章やセクションに複数のノードを含めてもかまいません.実際,
章は通常,それぞれのセクション,サブセクション,そしてサブサブセクション
となる複数のノードを含んでいます.
ノードを作成するため,@node
コマンドを行の最初に書き,カンマで分
離した四つの引数を同じ行の残りに続けてください.最初の引数は必要です.そ
れはノードの名前です.次の引数は,順番で,`Next',`Previous',そして`Up'
ポインタの名前で,Texinfoドキュメントが階層的に組織化されている場合,省
略可能です(see section 6.4 makeinfo
でポインタを作成する).
好みにより,それぞれの名前の前にスペースを挿入してもかまいません.スペー スは無視されます.ノードの名前と,(存在する場合は)`Next',`Previous',そ して`Up'ポインタの名前をすべて同じ行に書く必要があります.そうしない場合, 書式化は失敗します.(Infoのノードの詳細は,See Info file `info-ja', node `Top'.)
通常,章の構造化コマンド行を@node
の直後に書き,例えば,それは
@section
や@subsection
です.(See section 5.2 構造化コマンドの形式.)
注意してください:GNU Emacs Texinfoモードの更新コマンドは,
@node
行が章の構造化コマンドに続いているTexinfoファイルでのみ動作
します.See section 2.4.1 更新の必要条件.
TeXでは,相互参照で使用する名前を識別するために@node
行を使用
します.このため,@node
行を印刷のための書式化を行いたいTexinfo
ファイルに,たとえInfoで書式化するつもりがなくても書く必要があります.
(相互参照は,この文章の終りにあるようなもので,@xref
とそれに関連
するコマンドで作成されます.8. 相互参照を参照してください.)
6.3.1 ノードとポインタの名前の選択 | How to choose node and pointer names. | |
6.3.2 @node 行の書き方 | How to write an @node line. | |
6.3.3 @node 行の助言 | Keep names short. | |
6.3.4 @node 行の必要事項 | Keep names unique, without @-commands. | |
6.3.5 最初のノード | How to write a `Top' node. | |
6.3.6 @top セクションコマンド | How to use the @top command. |
ノード名はノードの識別子です.ポインタで他のノードに行くことが可能で,そ れは単純にこれらのノード名から成り立っています.
通常,ノードの`Up'ポインタは,そのノードを記述しているメニューがあるノー ドの名前を含みます.ノードの`Next'ポインタは,メニューでそのノードの次の ノード名を含み,`Previous'ポインタは,メニューでそのノードの前のノード名 を含みます.ノードの`Previous'ノードが`Up'ノードと同じとき,両方のノード は同じノード名を示します.
通常,Texinfoファイルの最初のノードは`Top'ノードで,その`Up'と`Previous' ポインタは`dir'ファイルを指し示し,それはInfo全てのメインメニューを 含んでいます.
`Top'ノード自身は,マニュアルのメインまたはマスターメニューを含みます. また,`Top'ノードに簡単なマニュアルの記述を含めると役に立ちます.Texinfo ファイルの最初のノードの書き方の詳細は,See section 6.3.5 最初のノード.
明示的に全てのポインタを指定したときでも,任意の順番でTexinfoソースファ イルにノードを書くことができるということを意味するわけではありません! TeXは,ノードポインタにかかわらずファイルを順番に処理するので,印刷物 に現したい順番にノードを書く必要があります.
@node
行の書き方
@node
行の最も簡単な書き方は,@node
を行の最初に書き,その
後にノード名を以下のように書く方法です.
@node node-name |
GNU Emacsを使用している場合,ポインタ名を挿入するために,Texinfoモードで
ノードの更新コマンドが提供されています.また,ポインタをTexinfoファイル
の外に置き,makeinfo
でノードポインタを作成するInfoファイルに挿入
することも可能です.(See section 2. Texinfoモードを使用する. また6.4 makeinfo
でポインタを作成するを参照してください.)
代わりに,`Next',`Previous',そして`Up'ポインタを独自に挿入することも可 能です.こうする場合,TexinfoモードでキーボードコマンドのC-c C-c n を使用すると便利だと思います.このコマンドは,`@node'と,適切な順 番でポインタ名をリストアップしたコメント行を挿入します.コメント行は,引 数がどのポインタに対するものかを,追跡記録するのに役立ちます.このコメン ト行は,Texinfoに精通していない場合,特に便利です.
`Next',`Previous',そして`Up'ポインタがある,完全に書かれたノード行のテ ンプレートは以下のようになります.
@node node-name, next, previous, up |
希望があれば,初稿では@node
行を完全に無視することが可能で,その
後でtexinfo-insert-node-lines
コマンドを@node
行を作成する
ために使用してください.しかし,この方法はお勧めしません.その部分を書く
と同時にそれ自身のノードに名前を付ける方が良く,そうすることで相互参照を
作成しやすくなります.相互参照が多数あることは,良いInfoファイルの特徴と
して特に重要です.
@node
行を挿入した後,すぐに@-コマンドを章やセクションに対し書き,
名前を挿入するべきです.次に(これが肝心!),いくつかの索引項目を書いてく
ださい.通常,少なくとも二つ書き,索引でノードを参照する方法として,四つ
または五つあることもよくあります.これで,人々がノードをより容易に見つけ
られるようになります.
@node
行の助言 ここに三つの提案があります.
Infoファイルでは,ファイル名,ノード名,そしてポインタ名は全て一行に挿入 され,それはウィンドウの右端まで行くかもしれません.(これは,Infoの問題 ではありませんが,醜いです.)
@node
行の必要事項
重複するとInfo移動コマンドで混乱します.例えば,概要で全ての章を終える場 合,それぞれの概要のノードを異なる名前にする必要があるという意味です.そ れぞれを一つの"概要"とすることはできません.しかし,章,セクション,そ してそれに類するもののタイトルは重複してもかまいません.このため,これら のセクションに対するノード名が全て異なっている限り,本のそれぞれの章を "概要"というセクションで終えることが可能です.
ポインタが示すノードは,そのポインタを含むノードの前でも後でもかまいませ ん.
@
と
{
のような,`@'でエスケープされている句読点文字が含まれます.
(これが役に立つときは滅多にないので,Texinfoではノード名で@-コマンド
を使用することに対するサポートに制限があります.20.1.4 ポインタの照合
を参照してください.)
例えば,以下はこのマニュアルのセクションのタイトルです.
@code{@@unnumberedsec}, @code{@@appendixsec}, @code{@@heading} |
しかし,対応するノード名にはカンマと@がありません.
unnumberedsec appendixsec heading |
Texinfoファイルの最初のノードは,インクルードファイルは例外として (see section D. インクルードファイル),トップ(Top)ノードです.トップノードには, ドキュメントの短い概要,コピーの許可,そしてマスターメニューを含めるべき です.Topノードの内容と例の詳細は,See section 3.5 `Top'ノードとマスターメニュー.
Topノードで使用されているノードポインタの記述は以下のようになります.
通常,すべてのInfoファイルは,同じInfoディレクトリツリーにインストールさ れます.この状況では,Topノードの親として`(dir)'を使用してください. これは`(dir)top'を短くしたもので,`dir'のTopノードを指定し,そ れにはInoシステム全体のメインメニューが含まれています.
Infoファイルの`info'ディレクトリへのインストールの詳細は, See section 20.2 Infoファイルのインストール.
具体的には,明示的なポインタを示す例は以下のようになります(texinfoモード のコマンドで自動的に管理することが可能です).
または,ポインタを完全に無くし,ツールに暗黙的に定義させることも可能です. これは推奨されます.このため以下のようにします.
@node Top |
@top
セクションコマンド
特別なセクションコマンド@top
は,@node Top
行とともに使用
すべきです.@top
セクションコマンドは,それがファイルの`Top'ノー
ドだという印を付けるようmakeinfo
に伝えます.それは,ノードポイン
タを自動的に挿入するためにmakeinfo
が必要とする情報を提供します.
@top
コマンドを行の最初に書き,直後に@node Top
行を続けて
ください.@top
コマンドと同じ行の残りの部分にタイトルを書いてくだ
さい.
Infoでは,@top
セクションコマンドは,タイトルが単独行に現れるよう
にし,他のセクションコマンドと同様にアスタリスクを下に挿入します.
TeXとtexinfo-format-buffer
では,@top
セクションコマンド
は@unnumbered
とほとんど同義語です.これらのフォーマッタは,
@top
コマンドを要求せず,特別なことは何もしません.これらのフォー
マッタを使用するとき,@chapter
や@unnumbered
を
@node Top
行の後に使用することも可能です.また,ポインタとメニュー
を作成更新するため,Texinfo更新コマンドを使用する時に@chapter
や
@unnumbered
を使用することも可能です.
このため,具体的には,Topノードは以下のようにして開始します.
@node Top @top Your Manual Title |
makeinfo
でポインタを作成する
makeinfo
プログラムは,階層的に組織化されているファイルに対し,自
動的にノードポインタを定義する機能があります.
この機能を利用するとき,`Next',`Previous',そして`Up'ポインタを,ノード
名の後に書く必要がありません.しかし,@chapter
や@section
のようなセクションコマンドを,それぞれの切り詰めた@node
行の直後
の行に書く必要があります(例外は,コメント行が間に入ることです).
さらに,`Top'@node
行に,ファイルの`Top'ノードに印を付ける
@top
で始まる行を続ける必要があります.See section @top
.
最後に,(`Top'ノード以外の)それぞれのノード名を,ノードの階層レベルの上 に,一つかそれ以上の階層レベルとなるメニューに書く必要があります.
このmakeinfo
のノードポインタ挿入の機能は,手動やTexinfoモードのコ
マンドでメニューやポインタを更新する必要から開放します.(See section 2.4 ノードとメニューの更新.)
ほとんどの状況で,この機能の利点を利用し,冗長にノードポインタを指定した くはないでしょう.しかし,Texinfoドキュメントは,階層的に組織化されてい ることや実際にセクションコマンドが完全に含まれていることを要求していませ ん.例えば,印刷を目的としていないドキュメントの場合です.これらの状況で は,明示的にポインタを指定する必要があります.
@anchor
:相互参照のターゲット任意に定義する
アンカー(anchor)は,相互参照が参照可能な,まるでノードのようなドキュ
メント内の位置です.@anchor
コマンドでアンカーを作成し,普通のカッ
コで分離された引数としてラベルを与えます.例えば,以下のようになります.
This marks the @anchor{x-spot}spot. ... @xref{x-spot,,the spot}. |
以下を生成します.
This marks the spot. ... See [the spot], page 1. |
御覧のように,@anchor
コマンド自身は出力を生成しません.この例は
アンカー`x-spot'だけを,単語`スポット'の直前に定義します.その後で,後述
の@xref
や,その他の相互参照を使用して参照することが可能になりま
す.相互参照の詳細は,See section 8. 相互参照.
@anchor
コマンドを参照する位置の直前に置くのが最善です.そうする
ことで,読者の目はアンカーにジャンプしたとき正しいテキストに導かれます.
@anchor
コマンドを単独行に置くことでソースの可読性が改善される場
合は,そうすることもできます.@anchor
後のスペースは常に無視され
ます.
アンカー名とノード名は衝突してはいけません.アンカーとノードは同じように
扱われることもあります.例えば,スタンドアローンInfoのgoto-node
コ
マンドは,アンカー名やノード名を引数としてとります.
(See section `goto-node' in GNU Info.)
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |