\input texinfo    @c -*-texinfo-*-
@comment %**start of header
@setfilename info-ja.info
@settitle Info
@comment %**end of header
@comment $Id: info-ja.texi,v 1.1 2000/09/18 00:50:28 futoshi Exp $

@c @documentlanguage ja

@dircategory Texinfo documentation system
@direntry
* Info-ja: (info-ja).                 Documentation browsing system.
@end direntry

@ifinfo
このファイルはInfoの使い方について述べていて，それはオンラインでメニュー形
式のGNUドキュメントシステムです．

Copyright (C) 1989, 92, 96, 97, 98, 99 Free Software Foundation, Inc.

Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.

@ignore
Permission is granted to process this file through TeX and print the
results, provided the printed document carries copying permission
notice identical to this one except for the removal of this paragraph
(this paragraph not being relevant to the printed manual).

@end ignore
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the entire
resulting derived work is distributed under the terms of a permission
notice identical to this one.

Permission is granted to copy and distribute translations of this manual
into another language, under the above conditions for modified versions,
except that this permission notice may be stated in a translation approved
by the Free Software Foundation.
@end ifinfo

@titlepage
@title Info
@subtitle The online, menu-driven GNU documentation system
@author Brian Fox
@c 翻訳 西尾 太
@page
@vskip 0pt plus 1filll
Copyright @copyright{} 1989, 92, 93, 96, 97, 98, 99 Free Software
Foundation, Inc.
@sp 2
Published by the Free Software Foundation @*
59 Temple Place - Suite 330 @*
Boston, MA 02111-1307, USA.

Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.

Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the entire
resulting derived work is distributed under the terms of a permission
notice identical to this one.

Permission is granted to copy and distribute translations of this manual
into another language, under the above conditions for modified versions,
except that this permission notice may be stated in a translation approved
by the Free Software Foundation.
@end titlepage

@c @ifnottex
@ifinfo
@node Top
@top Info: An Introduction

Infoはドキュメントを読むためのプログラムで，今あなたが使っています．

Infoの使い方を学ぶためコマンド@kbd{h}を入力してください．プログラムの使い
方を紹介します．

@c @end ifnottex
@end ifinfo

@menu
* Getting Started::             Getting started using an Info reader.
* Advanced Info::               Advanced commands within Info.
* Creating an Info File::       How to make your own Info file.
@end menu


@node Getting Started, Advanced Info, Top, Top
@comment  node-name,  next,  previous,  up
@chapter はじめ方


このInfoマニュアルの最初で，Infoの内部について述べています．このマニュアル
の2番目の部分で，様々なInfoのアドバンスコマンドについて述べ，Texinfoファイ
ルではないInfoの書き方を述べています．3番目の部分は，Texinfoファイルから
Infoファイルを生成する方法についてです．

@iftex
このマニュアルは，コンピュータで使うことに注目してデザインされているので，
読むときはInfoコマンドを使うことができます．紙で読むことは余り効果的ではな
く，それは述べられているコマンドを信用するため，マニュアルに書かれているこ
とを実際行う必要があるためです．ようするに，マニュアルを通読するのではなく，
オンラインバージョンを試してみてください．

このマニュアルのオンラインバージョンを見るためには，2つの方法があります．

@enumerate
@item
シェルのコマンドラインで@code{info}と入力してください．この方法は，Info
ファイルを読むためだけに設計された，小さなスタンドアロンプログラムを使い
ます．

@item
コマンドラインで@code{emacs}と入力し，@kbd{C-h i}(コントロール@kbd{h}に続
き@kbd{i})を入力してください．この方法は，EmacsプログラムのInfoモードを使
い，エディタは多くの他の能力を持っています．
@end enumerate

どちらの場合でも@kbd{mInfo}を(文字で)入力し，@key{RET}--``Return''や
``Enter''--を続けます．このとき画面上で読めるように，このマニュアルの説明
が続ける準備ができています．
@c FIXME! (pesch@cygnus.com, 14 dec 1992)
@c Is it worth worrying about what-if the beginner goes to somebody
@c else's Emacs session, which already has an Info running in the middle
@c of something---in which case these simple instructions won't work?
@end iftex

@menu
* Help-Small-Screen::   Starting Info on a Small Screen
* Help::                How to use Info
* Help-P::              Returning to the Previous node
* Help-^L::             The Space, Rubout, B and ^L commands.
* Help-M::              Menus
* Help-Adv::            Some advanced Info commands
* Help-Q::              Quitting Info
@end menu


@node Help-Small-Screen, Help,  , Getting Started
@comment  node-name,  next,  previous,  up
@section Infoを小さな画面ではじめる

@iftex
(Infoでは，端末の行数が少ない場合のみこの節を見ます．ほとんどの読者は見る
こと無く通過します．)
@end iftex

端末の画面に少数の行しか無いので，はじめに特別なアドバイスが必要です．

テキスト@samp{--All----}が画面の右下の角近くに見える場合，見ているテキスト
全体が画面にフィットしているということです．代わりに@samp{--Top----}が見え
る場合，フィットしていないより多くのテキストが下にあるということです．テキ
ストを先に進めて他の画面全体を見るため，スペースバー@key{SPC}を押してくだ
さい．前に戻るためには@samp{Backspace}や@key{Delete}と表示されているキーを
押してください．

@ifinfo
ここに40の無駄な行があり，スペースとデリートを試すと何を言っているのかが分
かるでしょう．終りに次にすることを述べています．

This is line 17 @*
This is line 18 @*
This is line 19 @*
This is line 20 @*
This is line 21 @*
This is line 22 @*
This is line 23 @*
This is line 24 @*
This is line 25 @*
This is line 26 @*
This is line 27 @*
This is line 28 @*
This is line 29 @*
This is line 30 @*
This is line 31 @*
This is line 32 @*
This is line 33 @*
This is line 34 @*
This is line 35 @*
This is line 36 @*
This is line 37 @*
This is line 38 @*
This is line 39 @*
This is line 40 @*
This is line 41 @*
This is line 42 @*
This is line 43 @*
This is line 44 @*
This is line 45 @*
This is line 46 @*
This is line 47 @*
This is line 48 @*
This is line 49 @*
This is line 50 @*
This is line 51 @*
This is line 52 @*
This is line 53 @*
This is line 54 @*
This is line 55 @*
This is line 56 @*

ここまでたどり着いたらデリートで最初に戻り，もう一度ここまできて，やっとス
ペースとデリートを理解するでしょう．さて，@kbd{n}を入力し(1文字だけで，引
用符やリターンキーを後で入力しないでください)，コースの通常のはじめに行き
ます．
@end ifinfo


@node Help, Help-P, Help-Small-Screen, Getting Started
@comment  node-name,  next,  previous,  up
@section Infoの使い方

ドキュメントを読むために，プログラムInfoと話をします．

さて，1つの情報の@dfn{Node}が見えます．ノードは，詳細の指定されたラベルに
指定されたトピックを述べたテキストを含みます．このノードのトピックは
``Infoの使い方(how to use Info)''です．

ノードのトップの行は，@dfn{header}です．ノードのヘッダは(今，見てください
)ノードの名前が@samp{Help}で，ファイルが@file{info}だと告げています．この
後が@samp{Next}ノードで，@samp{Help-P}と言う名前だと告げています．アドバン
スInfoコマンドで，知っている名前ならどこのノードにも行けるようになります．

@samp{Next}の隣に，@samp{Previous}や@samp{Up}があるノードがあります．こ
のノードは，御覧のように@samp{Previous}がありますが，@samp{Up}はありませ
ん．@footnote{訳注:実際には@samp{Up}が見えます．}

さて，次の@samp{Help-P}というノードに行く時間です．

>> そこに移動するため，@samp{n}を入力します．一文字だけで，引用符や入力後
   の@key{RET}を入力してはいけません．

マージンの@samp{>>}は，実際にコマンドを試すときだということです．


@node Help-P, Help-^L, Help, Getting Started
@comment  node-name,  next,  previous,  up
@section 前のノードに戻る

このノードは@samp{Help-P}と呼ばれています．ご存知のように，
@samp{Previous}ノードは@samp{Help}で，そこから@kbd{n}コマンドを使ってやっ
て来ました．もう一度@kbd{n}コマンドを使うと，次のノード@samp{Help-^L}に行
きます．

>> しかし，まだそうしないでください．最初に@kbd{p}コマンドを試し，
   @samp{前}のノードに行きましょう．そこに行ったら，また@kbd{n}して，ここ
   に戻ることができます．

この全てが，恐らく余りに簡単過ぎて無礼だと思いますが，読み捨て@emph{しない
}でください．事態はますます複雑になってきます．また，そのときが来たと告げ
られるまで新しいコマンドを試さないでください．さもないと，後から出てくる重
要な警告をInfoは通り過ぎてしまいます．

>> さて，ノード@samp{Help-^L}に行くため@kbd{n}して，より多くを学んでくださ
   い．


@node Help-^L, Help-M, Help-P, Getting Started
@comment  node-name,  next,  previous,  up
@section スペース，デリート，Bと，^Lコマンド

このノードのヘッダは，今ノード@samp{Help-^L}にいて，@kbd{p}で
@samp{Help-P}に戻れることを告げています．このノードのタイトルは下線がつい
ていて，ノードが関連するものを告げています(ほとんどのノードはタイトルがあ
ります)．

これは大きなノードで，ディスプレイ画面に全てフィットしません．画面の右下に
@samp{--All----}ではなく@samp{--Top-----}という文字列が見えるので，見えて
いないものがもっとあることが分かります．

スペースとデリートと@kbd{B}コマンドで，一度に全ての画面がフィットしなくて
も``動き回る''ことができます．スペースは前に進み，画面の下に続くものを見る
ことができます．デリートは後ろへ戻り，画面のトップを見ることができます(何
回かスペースを入力しなければ，トップまで何もありません)．

>> さて，スペースを入力してみてください(その後でデリートを入力しここに戻っ
   てください)．

スペースを入力すると画面の下2行がトップに現れ，その後の行が続きます．デリー
トは，トップの2行を下に@emph{普通は}持っていきますが，その上の行にフルスク
リーンにする意味が無い場合は，全てを下に持っていくわけではありません．

見るものが無いのにスペースを入力した場合は，ベルが鳴るか何も起こりません．
ノードのヘッダが見えているときのデリートも同様です．

画面がおかしい場合，@kbd{C-l}(@kbd{Control-L}とは，``コントロール''を押し
たまま@key{L}や@kbd{l}を入力することです)を入力することで，Infoに再表示さ
せることができます．

>> @kbd{C-l}を，今入力してください．

ノードの最初に戻るため何回かデリートを押すことができます．最初に戻るため，
単純に@kbd{b}を入力することもできます．

>> 今やってみてください．(我々は，最初の画面いっぱいにここまで通過させるた
   め十分に冗長なことを書いたのですが，画面が大きすぎて十分でないかもしれ
   ません．必要なら，EmacsやInfoウィンドウを小さくしてください．)そして，
   スペースで戻ってきてください．

画面が縦長の場合，このノード全体が一度にフィットするかもしれません．その場
合，"b"では何も起こりません．すみません，でもどうしようもありませんね?

さて，かなりの数のコマンドを学びました．どれかを使いたいのだが，どれか忘れ
た場合，コマンドリストを簡潔に出力する@key{?}を入力してみてください．リス
トを見終えたら，@key{SPC}を何回か押して消し去ってください．

>> さあ@key{?}を試してください．終りまでリストの画面全体を連続して見るため，
   @key{SPC}を押してください．

今から，警告無しで大きなノードに出会っても，教えられなくてもスペースとデリー
トで動き回る方法を知っていることとします．全ての端末が同じ大きさの画面を持っ
ているわけではないので，もう警告することはできません．

>> さて，@kbd{m}コマンドの説明を見るため，@kbd{n}を入力してください．


@node Help-M, Help-Adv, Help-^L, Getting Started
@comment  node-name,  next,  previous,  up
@section メニュー

メニューと@kbd{m}コマンド

ノード間の移動に使う@kbd{n}と@kbd{p}コマンドだけでは，ノードは直線的な操作
に制限されます．メニューで，構造に分岐することができます．メニューは，移動
できる他のノードのリストです．それは実際に，Infoが対話的にできるような，特
殊な書式のノードのテキストの一部です．メニューのはじめは，常に@samp{*
Menu:}で始まる行で識別されます．そのように始まっている行の場合だけ，ノード
はメニューを含みます．いつでも使えるメニューだけ入ることができるノードです．
他のノードでメニューを使うため，最初にノードに入る必要があります．

メニューの開始後，@samp{*}で始まるそれぞれの行はサブトピックを示します．行
は普通，サブトピックの名前を(@samp{:}に続いて)含み，ノード名はサブトピック
について説明し，追加としてサブトピックの説明があります．@samp{*}で始まらな
いメニューの行は特別な意味を持たず，それらは読み易いようになっているだけで，
追加のサブトピックを宣言しているものではありません．ここに例があります．

@example
* Foo:  FOO's Node      This tells about FOO
@end example

サブトピックの名前はFooで，ノードは@samp{FOO's Node}を説明しています．行の
残りは読む人への情報です．[[しかし，この行は本当のメニューアイテムではなく，
それは単に，上の行が@samp{* Menu:}で始まっていないからです．]]

他のノードに行くためメニューを使うとき(その方法はまもなく説明します)，指定
するものはサブトピック名で，メニュー行の最初にあるものです．Infoはメニュー
行を探すために使い，それからノード名を復元し，そのノードへ行きます．サブト
ピック名とノード名の両方がある理由は，ノード名はコンピュータに対し意味が多
すぎ，そのため汚く見えるかも知れないためです．サブトピック名は，ユーザーが
指定するのに便利にするためだけに，選択することができます．ノード名はユーザ
が指定するのに便利で，サブトピックと同じ名前の時も良くあります．このため省
略があります．

@example
* Foo::   This tells about FOO
@end example

@noindent
これはサブトピック名とノード名が同じで，@samp{Foo}だということを意味します．

>> 今，このノードのメニューを見つけるためにスペースを使い，@kbd{b}とスペー
   スで前に戻ってください．御覧のように，メニューは実際にノードで見えます．
   ノードを見てもメニューが見つからない場合は，ノードにメニューが無く，
   @kbd{m}コマンドは利用できません．

サブノードの1つに行くコマンドは@kbd{m}です---しかし，@emph{まだ使わないで
ください}．@kbd{m}を使う前に，コマンドと引数を理解する必要があります．ここ
までは，引数が必要でないコマンドをいくつか学びました．それを入力すると，
Infoはそれを処理し，すぐに他のコマンドが使えるようになります．@kbd{m}は違
います．@dfn{サブトピック名}が無ければ不完全です．一度@kbd{m}を入力すると，
Infoはサブトピック名を読み込もうとします．

今，画面の下近くのダッシュを多く含む行を探してください．その下にもう一行あ
りますが，普通は空白です．空の場合，Infoは@kbd{n}や@kbd{b}やスペースや
@kbd{m}といったコマンドに対する準備ができています．その行がコロンで終るテ
キストを含む場合，Infoがコマンドへの@dfn{引数}を読み込もうとしていることを
意味します．その場合，Infoがそれを引数として使おうとしているので，コマンド
は働きません．引数を入力し開始したコマンドを終了するか，コマンドをキャンセ
ルするために@kbd{Control-g}を入力する必要があります．このようなことをやり
終えると，行はまた空白になります．

メニューでサブノードに行くコマンドは@kbd{m}です．@kbd{m}を入力後，画面の下
の行は@samp{Menu item: }と表示します．行きたいサブトピック名を入力し，終り
に@key{RET}を入力する必要があります．

サブトピック名を省略することができます．省略が唯一でない場合，最初に一致し
たサブトピックが選択されます．メニューには，それぞれのサブトピック名に対し，
できるだけ短い省略を大文字としているものもあるので，必要な入力数が分かりま
す．サブトピックを入力するとき，大文字小文字は問題ありません．アイテム名の
終りや内部にスペースを入れるべきではありませんが，メニューアイテムにスペー
スがある場合は例外です．

サブトピック名の入力を助けるため，@dfn{補完}機能を使うこともできます．名前
の一部を入力後，タブキーを入力した場合，残りの名前が手品のように埋まり，入
力から唯一なものをできるだけ続けます．

カーソルをメニューのサブトピック行に移動した場合，引数を入力する必要はあり
ません．リターンを入力し行のサブトピックに行きます．

ここに，練習用に与えられたメニューがあります．このメニューは1つの場所，
Help-FOOに行く方法を3つ提供します．

@menu
* Foo:  Help-FOO.       A node you can visit for fun.
* Bar:  Help-FOO.       Strange!  two ways to get to the same place.
* Help-FOO::            And yet another!
@end menu

>>  今，@kbd{m}を入力し，何が起こるか見てください．

今，@kbd{m}コマンドの``内部''にいます．コマンドは今使えません．次にする
ことは，サブトピック名を入力することです．

Control-gの入力で，@kbd{m}した意図を変更することができます．

>> 今それを試して，下の行がクリアされることを確認してください．

>> もう一度@kbd{m}を入力してください．

>> アイテム名@samp{BAR}を入力してください．まだリターンを入力しないでくだ
   さい．

アイテム名を入力している間，間違えた場合に一文字キャンセルするため，デリー
トキーを使うことができます．

>> @samp{R}をキャンセルするためそれを入力してください．置きなおすためもう
   一度@samp{R}を入力できます．@samp{BA}は有効な省略なので，そうする必要は
   ありません．

>> 今，行く準備ができました．@key{RET}を入力してください．

Help-FOOに行った後，ここに戻るはずです．

>> 他のコマンドを見るため，@kbd{n}を入力してください．

@c If a menu appears at the end of this node, remove it.
@c It is an accident of the menu updating command.

ここに，メニューHelp-FOOに行く，もう1つの方法があります．無視することも
できますし，他を試すこともできます(しかし，ここに戻ってきてください)．

@menu
* Help-FOO::
@end menu


@node Help-FOO,  ,  , Help-M
@comment  node-name,  next,  previous,  up
@subsection @kbd{u}コマンド

おめでとう!これがノード@samp{Help-FOO}です．今まで見た他のノードと違い，こ
れには@samp{Up}があります．@samp{Help-M}は，@kbd{m}コマンドで来た前のノー
ドです．それは普通の慣習で，メニューからたどり着いたノードには，メニューに
戻るための@samp{Up}ノードがあります．メニューはツリー構造を降りていき，
@samp{Up}は上がっていきます．一方，@samp{Previous}は普通``前に戻るのではな
く，同じレベルに留まる''ために使います．

``Up''コマンド@kbd{u}を入力して，ノード@samp{Help-M}に戻ることができます．
それでノードの@emph{前}に行き，読んでいたところに戻るため，何回か
@key{SPC}を入力する必要があります．

>> 今，@samp{Help-M}に戻るため，@kbd{u}を入力してください．


@node Help-Adv, Help-Q, Help-M, Getting Started
@comment  node-name,  next,  previous,  up
@section アドバンスInfoコマンド

コースはほとんど終りなので，終りまで頑張ってください．

別のノードに移動して，それまでのステップを再追跡したい場合，@kbd{l}コマン
ド(@kbd{l}は@dfn{last}に対応します)ででき，そのとき1つノードステップします．
ノードからノードに移動する間，Infoは特別な履歴リストに，そのときいたノード
を記録します．@kbd{l}コマンドで，履歴リストのノードにもう一度訪れます．
@kbd{l}コマンドが成功するたび，履歴を1ステップ戻ります．

指導にしたがっている場合は，@kbd{l}コマンドで@samp{Help-M}に戻ります．もう
一度の@kbd{l}コマンドで@kbd{u}を取り消し，@samp{Help-FOO}に戻ります．もう
一度の@kbd{l}で@kbd{m}コマンドを取り消し，@samp{Help-M}に戻ります．

>> @kbd{l}を3回入力し，それぞれの@kbd{l}が行うことを理解するため，間で止まっ
   てください．

もう一度指示に従い，ここに戻ってください．

@kbd{l}と@kbd{p}の違いに注意してください．@kbd{l}は前回@emph{あなたが}いた
場所に移動し，@kbd{p}は常に，ヘッダで@samp{Previous}ノードとされるノード
(このノードでは@samp{Help-M})に移動します．

@samp{d}コマンドで，ディレクトリノードにすぐに行けます．このノードは，
Infoに入ったときに最初に見たもので，存在する全てのノードに(直接，あるいは
間接的に他のメニューを通じて)導くメニューです．

>> @samp{d}を試し，@kbd{l}でここに戻ってください(ええ，戻って@emph{くださ
   い})．

Infoドキュメントで相互参照を見ることもあります．相互参照は以下のように見え
ます．@xref{Help-Cross, Cross}.  それは実際@samp{Cross}という名の相互参照
で，ノード名@samp{Help-Cross}を指します．

相互参照を追うことを望む場合，@samp{f}コマンドを使用する必要があります．
@samp{f}は相互参照名(この場合，@samp{Cross})を続ける必要があります．名前を
入力中，入力を編集するためデリートキーを使用することができます．参照を追う
気が変わった場合，コマンドをキャンセルするために@kbd{Control-g}を使用する
ことができます．

@samp{f}コマンドの補完は可能です．現在のノードの全ての相互参照名をタブを入
力することで補完できます．

>> @samp{f}を入力し，@samp{Cross}を続けて，@key{RET}を入力してください．

現在のノードで全ての相互参照のリストを得るため，@samp{f}の後で@kbd{?}を入
力することができます．@samp{f}はリストを出力後でも相互参照名を待っているの
で，実際に参照を追うつもりが無い場合，@samp{f}をキャンセルするため
@kbd{Control-g}を入力すべきです．

>> このノードの相互参照のリストを得るため"f?"を入力してください．そして，
   @kbd{Control-g}を入力し，@samp{f}が取り止められるのを見てください．

>> 今，コースの最後のノードを見るため，@kbd{n}を入力してください．

@c If a menu appears at the end of this node, remove it.
@c It is an accident of the menu updating command.


@node Help-Cross,  ,  , Help-Adv
@subsection Infoの相互参照でたどり着くノード

これは@samp{Cross}と言う名前で相互参照されるノードです．

このノードは相互参照でたどり着けるよう特別に意図されていますが，ほとんどの
相互参照は，Infoの構造のどこか遠くに``所属している''ノードへ導きます．戻る
ための@samp{Next}，@samp{Previous}や@samp{Up}ポインタを，脚注が持つことを
期待できません．一般に，@kbd{l}(el)コマンドは，そこに戻る唯一の方法です．

>> 相互参照があるノードに戻るため@kbd{l}を入力してください．


@node Help-Q,  , Help-Adv, Getting Started
@comment  node-name,  next,  previous,  up
@section Infoの終了

Infoから出てそれまで行っていたことに戻るため，@dfn{終了}のための@kbd{q}を
入力してください．

これでInfoの使用法のコースは終りです．経験豊かなユーザーのために意味がある
他のコマンドもあります．それらは便利で，Infoのドキュメントのためのディレク
トリノードを探すと見つかります．それらを見つけることは，通常の方法でInfoを
使用する良い経験になります．

>> Infoのディレクトリノードへ行くため@samp{d}を入力してください．その後で
   @samp{mInfo}と入力し，Infoノードへ行き，他のヘルプが利用可能であること
   を確かめるため，戻ってください．


@node Advanced Info
@chapter エキスパートのためのInfo

この章は様々なアドバンスドInfoコマンドと，Texinfoファイルと異なるInfoの書
き方を述べます．(しかし，ほとんどの場合，Infoファイルと印刷されたマニュア
ルの@emph{両方を}生成できるので，Texinfoファイルを書く方がいいです．
@xref{Top,, Overview of Texinfo, texinfo-ja, Texinfo}.)

@menu
* Expert::               Advanced Info commands: g, s, e, and 1 - 5.
* Add::                  Describes how to add new nodes to the hierarchy.
                           Also tells what nodes look like.
* Menus::                How to add to or create menus in Info nodes.
* Cross-refs::           How to add cross-references to Info nodes.
* Tags::                 How to make tag tables for Info files.
* Checking::             Checking an Info File
* Emacs Info Variables:: Variables modifying the behavior of Emacs Info.
@end menu


@node Expert, Add,  , Advanced Info
@comment  node-name,  next,  previous,  up
@section アドバンスドInfoコマンド

@kbd{g}，@kbd{s}，@kbd{1}， -- @kbd{9}と，@kbd{e}

ノードの名前を知っている場合，@kbd{g}，名前，@key{RET}と入力することでそこ
へ行くことができます．このように，@kbd{gTop@key{RET}}はこのファイル(のディ
レクトリノード)の@samp{Top}ノードと呼ばれるノードへ行きます．
@kbd{gExpert@key{RET}}でここへ戻ってきます．

@kbd{m}と異なり，@kbd{g}は省略を使用できません．

他のファイルのノードへ行くため，ノード名の前に，カッコ内にファイル名を含め
ることができます．このように，@kbd{g(dir)Top@key{RET}}はInfoディレクトリノー
ドへ行き，それはファイル@file{dir}の@samp{Top}ノードです．

ノード名@samp{*}はファイル全体を指定します．そのため，@kbd{g*@key{RET}}と
入力することで現在のファイルの全てを，@kbd{g(FILENAME)@key{RET}}で他のファ
イルの全てを見ることができます．

@kbd{s}コマンドで，ファイル全体で文字列を検索することができます．それは，
必要なら次のノードに切り替えます．@kbd{s}に続き探す文字列を入力し，
@key{RET}で終了します．同じ文字列を再度検索するため，@kbd{s}に続けて
@key{RET}を入力します．ファイルのノードはファイルにある順番で探され，それ
はメニューのツリー構造と@samp{next}ポインタでの順番に必要な関係がありませ
ん．しかし通常，2つの順番はそんなに異なりません．あらゆる場合で，ヘッダが
見えない場合(@kbd{s}でカーソルを文字があるところに置き，そこはノードの最初
ではないので，これは生じます)，到着したノードを見つけるため@kbd{b}を実行で
きます．

要求する入力のそれぞれの文字をシステムが認めない場合，コマンド@kbd{1}，
@kbd{2}，@kbd{3}，@kbd{4}，@dots{}@kbd{9}の使用を好むでしょう．それらは，
引数と供に使用された@kbd{m}コマンドの短いものです．@kbd{1}は現在のノードメ
ニューの最初のものに行きます．@kbd{2}は2番目の項目に行く等となっています．

ディスプレイが複数のフォントをサポートし，EmacsのInfoモードをInfoファイル
を読むために使用している場合，5番目のメニュー項目に対する@samp{*}は，下線
が引かれ，同様に9番目の項目もそうなります．これらの下線は，項目に対する番
号をひと目で見ることを容易にします．

普通の端末上では下線が無いでしょう．実際に項目を数える必要がある場合，その
代わりに@kbd{m}を使用して名前を指定した方が良いでしょう．

Infoコマンド@kbd{e}は，Infoモードから普通のEmacs編集モードに変更し，それで
現在のノードのテキストを編集することができます．Infoに切替えるため，
@kbd{C-c C-c}と入力してください．@kbd{e}コマンドは，変数
@code{Info-enable-edit}が@code{nil}でない場合のみ可能です．


@node Add, Menus, Expert, Advanced Info
@comment  node-name,  next,  previous,  up
@section Infoに新しいノードの追加

新しいトピックをInfoディレクトリのリストに追加するため，以下のようにする必
要があります．
@enumerate
@item
そのトピックをドキュメントにするため，いくつかのファイルで，いくつかのノー
ドを作成してください．
@item
ディレクトリのメニューにそのトピックを置いてください．@xref{Menus,
Menu}.
@end enumerate

通常，ノードを作る方法はTexinfoと一緒です(@pxref{Top,, Overview of
Texinfo, texinfo-ja, Texinfo})．これは，それから印刷されたマニュアルを作成
することもできる利点もあります．しかし，Infoファイルを編集したい場合，以下
に方法があります．

新しいノードは，既存のドキュメントファイルや新しいものに存続することができ
ます．それは，その前に@key{^_}文字があり(ユーザーは見えません．このノード
は1つありますが，あなたは見ることができません．)，それは，@key{^_}，
@key{^L}またはファイルの終りのいずれかで終了します．注意してください
:@key{^L}を新しいノードの終りに置く場合，@key{^L}はノードを@emph{開始}でき
ないので，その後に次のものを開始する@key{^_}があることを確かめてください．
また同様に，ノードの境界をページの境界にする良い方法は，@key{^_}の@emph{直
後に}@key{^L}を置くことです．

ノードを開始する@key{^_}は，改行または@key{^L}と改行を続ける必要があり，そ
の後にノードのヘッダ行がきます．ヘッダ行は(Infoが見つける)ノード名を与える
必要があり，@samp{Next}，@samp{Previous}と，@samp{Up}ノード(存在する場合は
全て)を述べる必要があります．御覧のように，このノードの@samp{Up}ノードは
@samp{Top}ノードで，それはInfoのための全てのドキュメントを指し示します．
@samp{Next}ノードは@samp{Menus}です．

キーワード@dfn{Node}，@dfn{Previous}，@dfn{Up}と，@dfn{Next}は，あらゆる順
番で，ヘッダ行のどこにでも表せますが，推奨される順番はこの文のものです．そ
れぞれのキーワードはコロン，スペースとタブと，その後に適切な名前を続ける必
要があります．名前はタブ，コンマ，または改行で終了できます．スペースはそれ
を終了しません．ノード名はスペースを含むことができます．名前の文字の大文字
小文字の違いは重要ではありません．

ノード名は2つの形式が有ります．現在のファイルのノードは，ノードの最初の行
の@samp{Node: }後に現われるもので名付けられます．例えば，このノードの名前
は@samp{Add}です．他のファイルのノードは，このノードの@samp{(info)Add}の様
に@samp{(@var{filename})@var{node-within-file}}で名付けられます．ファイル
名が``./''で始まる場合，それは現在のディレクトリと相対的になります．それ以
外の場合，それはあなたのサイトの標準的なInfoディレクトリから開始して相対的
になります．名前@samp{(@var{filename})Top}は，@samp{(@var{filename})}で省
略できます．慣習で，名前@samp{Top}は，単一ファイルでの``最も高い''ノードに
使用されます--その@samp{Up}ノードはファイルの外を指し示します．ディレクト
リノードは@file{(dir)}です．ディレクトリでリストアップされているドキュメン
トファイルの@samp{Top}ノードは，その中に@samp{Up: (dir)}が有るべきです．

ノード名@kbd{*}は特別です．それはファイル全体を参照します．そのため，
@kbd{g*}は現在のファイル全部を表示します．ノード@kbd{*}の使用は，それを，
ファイルをツリーのノードに組織化しない，時代遅れの形式にすることを可能にし
ます．

ノードでそれ自身の名前を述べる@samp{Node:}の名前は，Infoがノードを探すとき，
そこにそれが有ることを期待しないので，ファイル名を含めてはなりません．
@samp{Next}，@samp{Previous}と@samp{Up}の名前はそれらを含むことができます．
このノードで，@samp{Up}ノードは同じファイルに有るので，それを使用する必要
は有りません．

このファイルのノードは，ヘッダー行にファイル名があることに注意してください．
ファイル名はInfoに無視されますが，それらは，ユーザーがノードを識別する助け
となるコメントとして提供されています．


@node Menus, Cross-refs, Add, Advanced Info
@comment  node-name,  next,  previous,  up
@section メニューの作成方法

Info階層のあらゆるノードは，@dfn{メニュー}---サブノードのリスト---を持つこ
とができます．@kbd{m}コマンドは，現在のノードのメニューで端末から読み込む
トピックを検索します．

メニューは@samp{* Menu:}で始まる行で開始します．行の残りはコメントです．開
始行の後の@samp{* }で始まる全ての行は，単一のトピックをリストアップします．
トピックの名前---このトピックを選択するため，ユーザーが@kbd{m}コマンドに与
える必要がある引数---は，アスタリスクとスペースの直後にあり，コロン，スペー
スとタブと，そのトピックを述べているノード名が続きます．@samp{Next}，
@samp{Previous}と，@samp{Up}に続くノード名のようなノード名は，タブ，コンマ，
または改行で終端できます．それは，ピリオドでも終端できます．

ノード名とトピック名が同じ場合，2度名前を与えるより，省略の@samp{*
NAME::}が使用できます(そして，それがメニューで見た目に散らばるのを減らすの
で，可能な時はいつも使用すべきです)．

トピック名を，その最初でお互いに異なるように選択することは思慮深いです
---これは，ユーザが短い省略の入力を可能とします．長いメニューで，最小限受
容できる省略となる，それぞれの項目名の初めを大文字化することは良い考えです
(長いメニューは，5つか，その程度以上の項目)．

ノードメニューでリストアップされたノードは，その``サブノード''と呼ばれ，そ
れはその``上位''です．それらはそれぞれ，上位への@samp{Up:}を示すものを持つ
べきです．それら全てを見たい人が，メニューに何度も訪れる必要がないように
@samp{Next}と@samp{Previous}ポインタの並びで，全てまたはほとんどのサブノー
ドを整えることはしばしば役に立ちます．

Infoディレクトリは，ノード@samp{(dir)Top}の単なるメニューです---すなはち，
ファイル@file{.../info/dir}のノード@samp{Top}です．その他のあらゆるメニュー
と全く同じようなメニューに，新しい項目を入れることができます．Infoディレク
トリは，@file{info}と呼ばれるファイルディレクトリと同じでは@emph{ありませ
ん}．Infoのファイルの多くは，そのファイルディレクトリに存在しますが，必須
ではないこともあります．そして，そのディレクトリのファイルがInfoディレクト
リのノードに自動的にリストアップされないこともあります．

また，Infoノードグラフは，``階層的''だと主張されますが，実際それは@emph{あ
らゆる}方向に向いたグラフにもなり得ます．共有された構造とポインタサイクル
は完全に可能で，それらが表現される意味あいで適切な場合は使用できます．ファ
イルの全てのノードが，接続された構造となる形式にする必要はありません．実際
このファイルは，2つの接続されたコンポーネントがあります．あなたはその中の
1つにいて，それはノード@samp{Top}の下にあります．残りは@kbd{h}コマンドで行
くノード@samp{Help}を含みます．実際，ごみ収集人がいないので，サブ構造を示
さなくても困った問題はありませんが，しかしこのようなサブ構造は，今まで誰も
その存在を見つけることができないので，どちらかと言うと無用です．


@node Cross-refs, Tags, Menus, Advanced Info
@comment  node-name,  next,  previous,  up
@section 相互参照の作成方法

相互参照は，行の前部に置く必要があるメニュー項目と異なり，テキストのどこに
でも置くことができます．相互参照は，@kbd{*}の代わりに@samp{*note}があるこ
と以外，メニュー項目のように見えます．それは，@samp{)}がノード名の一部によ
くあるので，@samp{)}で終端することはできません．括弧で相互参照を囲みたい場
合，ピリオドを最初に用い終端してください．ここに相互参照ポインタの2つの例
があります．

@example
*Note details: commands.  (See *note 3: Full Proof.)
@end example

それらは単なる例です．それらが``導く''場所は実際には存在しません!


@node Tags, Checking, Cross-refs, Advanced Info
@comment  node-name,  next,  previous,  up
@section Infoファイルのタグ表

大きなInfoファイルにタグ表を与えることで，ノードへのアクセスを速くすること
ができます．プログラムのタグ表と異なり，Infoファイルのタグ表はファイル自身
に存在し，Infoがファイルを読み込む時はいつでも自動的に使用されます．

タグ表を作成するため，Emacs Infoモードを使用しているファイルのノードへ行き，
@kbd{M-x Info-tagify}を入力してください．ファイルを保存するため，
@kbd{C-x C-s}を使用する必要があります．

一度Infoファイルにタグ表を持たせると，それが最新であることを確かめる必要が
あります．テキストの削除の結果として，ファイルの中でタグ表が記録している位
置から千文字以上，あらゆるノードを移動する場合，Infoはもはやそのノードを見
つけることができないでしょう．タグ表を更新するため，再び
@code{Info-tagify}コマンドを使用してください．

Infoファイルのタグ表はファイルの終わりに現われて，以下のようになります．

@example
^_
Tag Table:
File: info, Node: Cross-refs^?21419
File: info,  Node: Tags^?22145
^_
End Tag Table
@end example

@noindent
ノード毎に1行を含んでいて，この行が，(ノード名の直後で終る)ノードヘッダー
の初め，Delete文字と，ノードを開始するファイルでの文字の位置を含んでいるこ
とに注意してください．


@node Checking, Emacs Info Variables, Tags, Advanced Info
@section Infoファイルの調査

Infoファイルを作成するとき，他のノードからのポインタを作成しているときにノー
ド名を簡単に忘れます．ノードに対し間違った名前を付ける場合，誰かがInfoを使っ
ているポインタへ行こうと試みるまで発見されません．Infoファイルの照合は，す
べてのノードへのポインタをチェックして，無効なあらゆるポインタを報告する自
動的な処理プロセスです．すべての@samp{Next}，@samp{Previous}と，
@samp{Up}は，すべてのメニュー項目とすべての相互参照のように調査されます．
更に，@samp{Previous}を示すものを持たないあらゆる@samp{Next}は報告されます．
他のファイルへのポインタの調査は大変遅いので，ファイル内の中のポインタのみ
調査されます．しかし，それらは通常ほとんどありません．

Infoファイルを調査するため，ファイルのどんなノードを見ている間でも，
Emacs Infoモードで，@kbd{M-x Info-validate}をしてください．


@node Emacs Info Variables, , Checking, Advanced Info
@section Emacs Infoモードの変数

以下の変数で，EmacsでのInfoモードの動作を修正できます．1つまたは複数のこれ
らの値を，対話的に，または@file{~/.emacs}初期化ファイルで設定したいかも知
れません．@xref{Examining, Examining and Setting Variables, Examining
and Setting Variables, emacs, The GNU Emacs Manual}.

@vtable @code
@item Info-enable-edit
@code{nil}に設定し，@samp{e}(@code{Info-edit})コマンドを使用不可にします．
@code{nil}でない値ではそれは可能です．@xref{Add, Edit}.

@item Info-enable-active-nodes
@code{nil}でない値が設定されているとき，ノードに関連付けされたLispコードを
Infoが実行すること許可します．Lispコードはノードが選択されたとき実行されま
す．

@item Info-directory-list
Infoファイルを探すディレクトリリスト．それぞれの項目は文字列(ディレクトリ
名)または@code{nil}(デフォルトディレクトリを試します)です．

@item Info-directory
Infoドキュメントファイルの標準ディレクトリ．関数@code{Info-directory}が呼
び出されたときのみ使用されます．
@end vtable


@node Creating an Info File
@chapter Infoファイルの作成

Texinfoファイルの書き方を学ぶため，@xref{Top,, Overview of Texinfo,
texinfo-ja, Texinfo}.

TexinfoファイルからInfoファイルの作成方法を学ぶため，@xref{Creating an
Info File,,, texinfo-ja, Texinfo}.

Infoファイルを作成後，インストール方法を学ぶため，@xref{Install an
Info File,,, texinfo-ja, Texinfo}.  

@bye
