[ < ] [ > ]   [ << ] [] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

12. 索引

Texinfoを使用すると,項目を手動で並べ替えしたりページ順に揃える必要も無 く索引を生成できます.索引では,項目はアルファベット順(11)に,それぞれの項目の記述を見つけ る方法の情報と共にリストアップされます.印刷されたマニュアルでは,この情 報にはページ番号が含まれます.Infoファイルでは,この情報は参照された最初 のノードへ導くメニュー項目となります.

Texinfoは,前もって定義されている索引の種類も提供しています.関数の索引, 変数の索引,概念の索引などです.索引を統合したり,典型的な目的以外のため に使用することができます.好みで独自の索引も定義可能です.


[ < ] [ > ]   [ << ] [] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

12.1 索引項目の作成

索引項目を作成するとき,人々が何かを探す際に異なる方法で行なえるように考 えることは良いことです.何かを探すとき,人が変われば単語も変わりま す.役に立つ索引には,人々が使用する可能性のある,全ての異なる単語で索 引にされた項目があります.例えば,ある読者は単語“Index”は一般的な概念 なので,索引の二文字の名前は“Indices, two-letter names”にあって当然だ と考えるかもしれません.しかし,もう一人の読者は,二文字の名前の特定の概 念を覚えていて,“Two letter names for indices”としてリストアップされて いる項目を探すかもしれません.良い索引は,両方の項目を持ち,それは両方の 読者を助けるでしょう.

植字のように,索引の構築は高度に熟練した専門的な芸術品で,自分で構築する 必要が無ければ正当に評価できない繊細なものです.

本の終りに索引を印刷する,またはInfoファイルで索引メニューを作成する方法 の情報は,See section 索引メニューと索引の印刷.


[ < ] [ > ]   [ << ] [] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

12.2 前もって定義されている索引

Texinfoは六つの前もって定義されている索引を提供しています.

全てのマニュアルがこれらの全てを必要とするわけではなく,ほとんどのマニュ アルはそのいくつかを使用します.このマニュアルには二つの索引があります. 概念の索引と,@-コマンドの索引(実際には関数索引ですが,章見出しでコマン ド索引と呼ばれています)です.二つ以上の索引を,@synindex@syncodeindexコマンドを使用して,一つに統合することが可能です. See section 索引の統合.


[ < ] [ > ]   [ << ] [] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

12.3 索引の項目の定義

索引を作成するデータは,Texinfoソースファイル中に散らばってる多くの個別 の索引コマンドからきます.それぞれのコマンドは,一つの項目を特定の索引に 加わるよう伝えます.書式化後,索引は現在のページ番号や参照するノード名を 与えます.

索引項目は,行の最初に索引コマンドを書き,残りの行に項目と続けることから 成り立ちます.

例えば,このセクションは,概念索引のため五つの項目が続いています.

 
@cindex Defining indexing entries
@cindex Index entries
@cindex Entries for an index
@cindex Specifying index entries
@cindex Creating index entries

それぞれの前もって定義された索引は,それ自身の索引コマンドがあります — それは,概念索引に対する@cindex,関数索引に対する@findex などです.

概念の索引項目は,テキストから成り立ちます.索引を書く最も良い方法は,簡 潔且つ明確な項目を選択することです.こうすることが可能な場合,項目が大文 字化されておらず,文の内部に現れるものを書く方が,索引は見栄えが良くなり ます.(常に大文字で書かれる固有名前や頭字語を大文字化してください.)これ は,我々がほとんどのGNUマニュアルの索引で使用する慣習している事実です.

簡潔且つ明確な項目を作成する方法を知らない場合,より長い明確なものを作成 してください — 簡潔で紛らわしいものを作成しないでください.項目の多く が数単語の場合,異なる慣習(それぞれの項目の最初の単語を大文字にする)を使 用した方が索引は良く見えます.しかし,CやLispの関数名やシェルコマンドの ような大文字小文字を識別する名前を大文字化してはいけません.それはスペル エラーとなります.

どちらを慣習として使用した場合でも,それを慣習として使用してください!

概念の索引以外の索引の項目は,プログラム言語やプログラム名のシンボル名で す.これらの名前は通常大文字小文字を識別するので,それらが要求する大文字 または小文字を使用してください.

デフォルトで,概念の索引の項目は小さなローマンフォントで印刷され,他の索 引の項目は@codeフォントで印刷されます.項目の一部の印刷方法を, ファイル名に対する@fileや,強調に対する@emphのような (see section 単語と句の印付け),通常のTexinfoコマンドで変更してもかまいません.

前もって定義されている六つの索引コマンドは以下のものがあります.

@cindex concept

conceptに対して概念の索引の項目を作成します.

@findex function

functionに対して関数の索引の項目を作成します.

@vindex variable

variableに対して変数の索引の項目を作成します.

@kindex keystroke

keystrokeに対してキー索引の項目を作成します.

@pindex program

programに対してプログラムの索引の項目を作成します.

@tindex data type

data typeに対してデータ型の索引の項目を作成します.

注意:索引項目にコロンを使用しないでください.Infoでは,コロンは ノード名と項目名を分離するので,項目自身のコロンでInfoは混乱します.メ ニュー項目の構造の詳細は,See section The Parts of a Menu.

それらの標準的な目的のために,前もって定義されている索引を実際に使用する ことを要求されているわけではありません.例えば,Cプリプロセッサマクロの 索引を望む場合を考えます.それらに対し@findexコマンドを書くこと で,それらを実際の関数に属する関数索引に書くことが可能です.そして,番号 付けされていない章として“関数の索引”を印刷するとき,タイトルに‘関数と マクロの索引’を与えることで読者に対しも全く矛盾しません.または,マクロ を@tindexコマンドでデータ型に書き,それに適した索引タイトルを与 えると読者は理解できるでしょう.(See section 索引メニューと索引の印刷.)


[ < ] [ > ]   [ << ] [] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

12.4 索引の統合

索引の一つがおかしいくらい小さいなどの理由から,関数と概念のように二つに 分離されている索引を統合したいこともあります.

@cindexコマンドを@findexコマンドの代わりに書くことで関数 を概念ど索引に書き,‘関数の索引’と印刷するのではなく‘関数と概念の索引’ というタイトルで概念索引を印刷することで,一貫したマニュアルを生成するこ とは可能でしょう.しかし,これは強力な手続きではありません.それはドキュ メントが,分離されている関数の索引を持つように設計されていない他のドキュ メントに挿入される場合のみ動作します.そのようなドキュメントにドキュメン トを挿入した場合,ドキュメントの関数と他から持って来たものは一緒になりま せん.また,関数名は概念の索引の右側に表示するため,@codeのカッ コの間にそれらの一つを個別に囲む必要もあります.


[ < ] [ > ]   [ << ] [] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

12.4.1 @syncodeindex

関数と概念を一つの索引に統合したいとき,関数を@findexで索引にし, 概念を@cindexで索引にし,そして関数の索引の項目を概念索引にリダ イレクトするため@syncodeindexコマンドを使用すべきです.

@syncodeindexコマンドは二つの引数をとります.それらはリダイレク ト元の索引名と,リダイレクト先の索引名です.テンプレートは以下のようにな ります.

 
@syncodeindex from to

この目的のため,索引には二文字の名前が与えられています.

cp

概念の索引

fn

関数の索引

vr

変数の索引

ky

キーの索引

pg

プログラムの索引

tp

データ型の索引

@syncodeindexコマンドを,Texinfoファイルの最初にend-of-header行 の前または直後に書いてください.例えば,関数の索引を概念の索引に統合する ため以下のように書いてください.

 
@syncodeindex fn cp

これで,関数の索引にとして指定されている全ての項目は,代わりに概念索引に 統合されます.

変数の索引と関数の索引の両方を概念の索引に統合するため以下のように書きま す.

 
@syncodeindex vr cp
@syncodeindex fn cp

@syncodeindexコマンドは‘from’索引(リダイレクトされる索引)からの 全ての項目を@codeフォントにし,それは,項目がリダイレクト先の索 引で使用してデフォルトフォントが何であろうと優先します.このように,関数 名を関数索引から概念索引にリダイレクトする場合,全ての関数名は期待したよ うに@codeフォントで印刷されます.


[ < ] [ > ]   [ << ] [] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

12.4.2 @synindex

‘from’索引項目を@codeフォントに置き換えない以外, @synindexコマンドは@syncodeindexコマンドとほとんど同じで す.その代わりにローマンフォントに置き換えます.このため,概念の索引を関 数の索引に統合するとき@synindexを使用します.

本の終りに索引を印刷したり,Infoファイルに索引メニューを作成する詳細は, See section 索引メニューと索引の印刷.


[ < ] [ > ]   [ << ] [] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

12.5 新しい索引の定義

前もって定義されている索引に加えて,@defindex@defcodeindexコマンドを,新しい索引を定義するために使用してもか まいません.これらのコマンドは,索引項目の印に使用する新しい索引を作成す る@-コマンドを作成します.@defindexコマンドは以下のように使用し ます.

 
@defindex name

索引の名前は‘au’のような二文字の単語にするべきです.例えば,以下のよ うにします.

 
@defindex au

これは‘au’索引と呼ばれる新しい索引を定義します.同時に,新しい索引 作成コマンド@auindexを作成し,索引項目の印付けに使用することが可 能になります.新しい索引コマンドを,前もって定義されている索引コマンドと 全く同じように使用してください.

例えば,セクション見出しに概念索引項目と二つの‘au’索引項目が続いた 例は以下のようになります.

 
@section Cognitive Semantics
@cindex kinesthetic image schemas
@auindex Johnson, Mark
@auindex Lakoff, George

(明らかに,‘au’はここで“著者”の省略として提供されています.) Texinfoは‘index’を使用した索引の名前を連結して,新しい索引コマンド を構成します.このため,‘au’索引の定義は自動的に@auindexコ マンドの作成を行います.

前もって定義されている索引で使用したように,@printindexコマンド を索引を印刷するために使用してください.例えば以下のようにします.

 
@node Author Index, Subject Index, , Top
@unnumbered Author Index

@printindex au

印刷物でローマンフォントの代わりに@codeフォントで項目を印刷する 以外,@defcodeindex@defindexコマンドに似ています.この ように,それは@cindexコマンドより@findexコマンドに似てい ます.

新しい索引をTexinfoファイルのend-of-headerの内部か直後に,あらゆる @synindex@syncodeindexコマンド(see section Texinfoファイルのヘッダ)の前で使用すべきです.


[ << ] [ >> ]           [冒頭] [目次] [見出し] [ ? ]

この文書は新堂 安孝によって2009年9月22日texi2html 1.82を用いて生成されました。