Table of Contents


Node:Top, Next:, Up:(dir)

Top

ドキュメントはSexに似ていて,いいときはとってもいいし,ダメなときは何も しないのと一緒だね.--Dick Brandon


Node:Copying, Next:, Previous:Top, Up:Top

Texinfoのコピー条件

GNU Emacsの一部を含むTexinfoに関連して配布されるプログラムとは,他の別々 のプログラム(makeinfoinfotexindexと, texinfo.texを含む)を現在は追加しています.これらのプログラムは フリーです.これは,誰でも自由に使え,自由を基本として,自由に再配 布できるということを意味します.Texinfo関連のプログラムは,パブリックド メインではありません.著作権があり配布に関して制限がありますが,これらの 制限は,良い協力的な市民が望むものを全て認めるよう設計されています.許可 されないことは,あなたから得たこれらのプログラムのあらゆるバージョンを, 他の人が共有することの妨害を試みることです.

明らかに我々は,Texinfoに関連したプログラムのコピーを与える権利をあなた が持っていることを確かめたいと思い,それらの権利とは,あなたがソースコー ドを受け取るか欲しい場合得ることができることと,これらのプログラムを変更 したり新しいフリーのプログラムにその一部を使ったりできることと,これらの ことを知っているということです.

皆がそのような権利を持っていることを確認するため,我々は,あなたが他の誰 かから権利を奪うことを禁止する必要があります.例えば,あなたがTexinfoに 関連するプログラムを配布する場合,あなたは,あなたが持つ全ての権利を与え る必要があります.そして,ソースコードを受け取る,または得られることを確 かめる必要があります.そして,権利について教える必要があります.

また,我々自身を守るため,我々は,Texinfoに関連するプログラムに対し,保 証が無いことを全ての人が理解することを確実にする必要があります.プログラ ムが誰かに編集されて渡された場合,我々は,受け取ったものが我々が配布した ものではないので,他人が招いたあらゆる問題が,我々の判断の影響を受けてい ないことを,受け取り人が知ることを望みます.

Texinfoに関連して配布されている現在のプログラムに対するライセンスの正確 な状態は,一緒に配布されるGeneral Public Licensesで見つかります.


Node:Overview, Next:, Previous:Copying, Up:Top

Texinfoの概要

Texinfo1は,オンラインの情報と印刷物の両方を作成するための, 単一ファイルを用いたドキュメントシステムです.これは,1つをオンライン情 報,もう1つを印刷物,といった異なる2つのドキュメントを書く代わりに,1つ のドキュメントを書くだけで良いことを意味します.それゆえ,ワークが修正さ れたとき,1つのドキュメントだけを修正する必要があります.


Node:Reporting Bugs, Next:, Up:Overview

バグの報告

我々は,Texinfoシステムに対するプログラムとドキュメントの両方のバグの報 告と提案を歓迎します.それらを電子メールで,bug-texinfo@gnu.org に送ってください.Texinfoの最新バージョンは, ftp://ftp.gnu.org/gnu/texinfo/と世界中のミラーサイトで入手できま す.

管理者が問題を再現するため,バグの報告に十分な情報を含めてください.一般 的に言って以下を意味します.

必要かどうか疑わしい場合はそれを含めてください.重要なものを除くより多く を含める方が良いです.

パッチは最も歓迎しますが,できればdiff -c(see Top)で作り, ChangeLogの項目(see Change Log)を含めてください.

電子メールで送る場合,できれば何とかして,メッセージを符号化したり分けた りしないでください.たとえ大きくても一つのプレーンテキストの方が多くの小 さいものより簡単に扱えます.GNU sharは,電子メールで複数のバイナリファイルをまとめる便利な方法です.


Node:Using Texinfo, Next:, Previous:Reporting Bugs, Up:Overview

Texinfoを使う

Texinfoを使い普通の本のような形態の印刷されたドキュメントの作成が可能で, それは,章,セクション,相互参照と,索引を含みます.同じTexinfoのソース ファイルから,メニュー形式の,ノード,メニュー,相互参照と,索引を使った, オンラインInfoファイルを作ることができます.また,同じソースファイルから, ウェブブラウザの利用に適した,HTML出力ファイルを作ることもできます. The GNU Emacs Manualは,このマニュアル同様,Texinfoファイルの良い 例です.

印刷されたドキュメントを作るため,Texinfoソースファイルを,TeX植字プ ログラムを使って処理します(しかし,Texinfo言語は,TeXの普通の言語のプ レーンTeXと比べてかなり異なります).これは,本やレポートのように植字 して印刷するDVIファイルを作ります(see Hardcopy).

Infoファイルを出力するため,Texinfoソースファイルを,makeinfoユー ティリティか,Emacsのtexinfo-format-bufferコマンドで処理してくだ さい.結果をInfoツリーにインストールすることができます(see Install an Info File).

HTMLファイルを出力するために,Texinfoソースファイルを,makeinfoで, --htmlオプションを使って処理してください.(例えば)結果をウェブサ イトに置くことができます.

もしあなたがプログラマで,Texinfoのための出力フォーマットの追加をインプ リメントし,GNUプロジェクトに貢献したいというのは素晴らしいことです.し かし,好みのフォーマットfooのための別に書かれた変換器texi2fooを書かない でください!それは,その仕事にとって困難な方法で,その後のメンテナンスで 余分な仕事が発生します.なぜなら,Texinfo言語は拡張と更新が続いているた めです.その代わりの最善のアプローチは,makeinfoを,現在Infoと HTMLを生成しているように,新しいフォーマットを生成するよう修正することで す.

TeXは,ほとんど全てのプリンタで働きます.Infoは,ほとんど全てのコン ピュータ端末で動きます.HTML出力はほとんど全てのブラウザで動きます.この ように,Texinfoはほとんどのあらゆるコンピュータユーザーが利用できます.

TexinfoソースファイルはプレーンのASCIIファイルで,テキストと,植字 とフォーマットのプログラムにすることを伝える@-コマンド (@ を前に置く単語)から成り立ちます.Texinfoファイルをテキストエディタで編集 できますが,GNU Emacsを使うと便利で,それはエディタがTexinfoモードという 特別なモードを持っていて,それは様々なTexinfoに関連する特徴を供給するた めです.(See Texinfo Mode.)

Texinfoソースファイルを書く前に,ノード,メニュー,相互参照と,その他の, 例えばこのマニュアルの読み方を学ぶべきです.

オンラインヘルプと印刷されたマニュアルの両方を作るため,Texinfoを使うこ とができます.さらにTexinfoは自由に再配布できます.この理由のため, TexinfoはGNUプロジェクトの公式はドキュメントフォーマットです.詳細は, GNU documentation web pageで利用可能です.

時々,伝統的なUnix manページをTexinfoから生成できるよう提案されます.こ れはサポートされる可能性は今のところ高くなく,それはmanページが非常に厳 密な従来の書式があるためです.makeinfoをtroffフォーマットを出 力するよう単に拡張するのでは不十分です.それゆえ,良いmanページを出力す るには,良いユーザーマニュアルと良いリファレンスマニュアルを生成する,典 型的なTexinfoアプリケーションと比べ,完全に異なるソースが必要です.これ は,生成されたmanページが,異なる出力形式に対し,異なる方法で,同じ情報 を文章にするという,Texinfoのデザインのゴールに矛盾します.manページを直 接書く方が良いでしょう.

manページをサポートしたい場合,プログラムhelp2manが役に立つか も知れません.それは,プログラムの--help出力から伝統的なmanページ を生成します.これは現在,Texinfoプログラム自身のmanページの生成に実際に 使っています.それは,フリーソフトで,Brendan O'Deaによって書かれ, http://www.ozemail.com.au/~bod/help2man.tar.gzで利用可能です.


Node:Info Files, Next:, Previous:Using Texinfo, Up:Overview

Infoファイル

Infoファイルは,Infoドキュメントを読むプログラムが処理できるように,書式 化されたTexinfoファイルです.(makeinfotexinfo-format-bufferは,TexinfoファイルをInfoファイルに変換する, 2つのコマンドです.)

Infoファイルは,ノードと呼ばれる部分に分けられ,それぞれが1つのト ピックの議論を含みます.それぞれのノードは名前を持ち,ユーザーが読むテキ ストと他のノードへポインタを含み,それは名前で識別されます.Infoプログラ ムは,一度に一つのノードを表示し,ユーザーが他の関連するノードへ移動でき るコマンドを供給します.

Infoファイルのそれぞれのノードには,ノードのトピックのサブトピックを議論 する,子ノードがいくつかあります.子ノードの名前は,親ノードのmenu で列挙されています.これで,Infoコマンドを使って1つの子ノードに移動する ことができます.一般にInfoファイルは本のように構成されています.ノードが 章の論理レベルの場合,子ノードはセクションレベルで,同様にセクションの子 ノードはサブセクションレベルです.

1つの親の全ての子どもは,`Next'と`Previous'で双方向に連鎖して,お互いに リンクされています.`Next'ポインタは次のセクションへのリンクを供給し, `Previous'ポインタは前のセクションへのリンクを供給します.これは,章のセ クションレベルにあるノードは,お互いにリンクされていることを意味します. 普通,連鎖の順番は,親のメニューでの子どもの順番と同じです.それぞれの子 ノードは,親ノード名を`Up'ポインタに記録しています.最後の子ノードは `Next'ポインタが無く,最初の子ノードは`Previous'と`Up'ポインタ両方が親に なります.2

ノードが章やセクションやそれに類するものに対応するような,Infoファイルの 本のような構造は,要求ではなく慣習の問題です.ノードの,`Up',`Previous' と,`Next'ポインタは他のノードを示し,メニューは他のノードを含みます.こ のように,ノードの構造は方向性のあるグラフであるべきです.しかし,印刷さ れた本やレポートの,章とセクションの構造に対応した構造に従うため,通常は より理解しやすいです.

メニューと,`Next',`Previous'と,`Up'ポインタに加え,Infoは参照と呼ばれ るもう一つの種類のポインタを供給し,それはテキスト中にあるはずです.これ は通常,階層構造に適さないリンクを現す最善の方法です.

通常,印刷された出力物の章とセクションの構造に,ノードがマッチするように ドキュメントを設計します.しかし,議論の材料に対し正しくない時も良くあり ます.それゆえ,TexinfoはInfoファイルに対するノード構造と,印刷された出 力物に対するセクション構造を指定する別のコマンドを使います.

一般に,慣習で`Top'と命名されているノードを通じて,Infoファイルに入りま す.このノードは通常,ファイルの目的の短い概要と,ファイルの残りに至る大 きなメニューを含みます.このノードから,ノードからノードへ移動することで 組織的にファイルを横断したり,メインメニューに列挙されたノードを指定して 移動したり,索引メニューで検索し欲しい情報があるノードに直接行くことがで きます.また,スタンドアローンInfoプログラムで,コマンドラインで特定のメ ニューアイテムを指定することができます(see Top).

印刷されたマニュアルのように順番通りInfoファイルを読みたい場合, <SPC>を繰り返し押したり,アドバンスInfoコマンドg *でファイル全 体を利用することができます.(see Advanced Info commands.)

infoディレクトリのdirファイルは,Infoシステム全体の出発点 としての役目を果たします.そこから,完全なInfoシステムの,それぞれのドキュ メントの`Top'ノードに行くことができます.

URIでInfoを参照したい場合,以下で例示された(非公式な)構文を使うことがで きます.これはEmacs/W3で働きます.以下が例です.

info:///usr/info/emacs#Dissociated%20Press
info:emacs#Dissociated%20Press
info://localhost/usr/info/emacs#Dissociated%20Press

infoプログラム自身は,あらゆる種類のURIに続きません.


Node:Printed Books, Next:, Previous:Info Files, Up:Overview

印刷された本

Texinfoファイルは,印刷された本やマニュアルのように書式化し植字できます. こうするためにはTeXが必要で,それは強力で洗練された植字プログラムで, Donald Knuthによって書かれました.3

Texinfoを基本とした本は,他の植字で印刷された仕事に似ています.タイトル ページ,著作権ページ,目次,序文,章のようなもの,番号が有るまたは無いセ クションとサブセクション,相互参照,脚注,そして索引があるはずです.

オンライン情報に変換するつもりがなく,本を書くためにTexinfoを使うことが できます.印刷された小説を書くためにTexinfoを使うこともでき,メモを書い たりできますが,電子メールの方がもっと簡単なので,これ以降のアプリケーショ ンは勧められません.

TeXは,一般的な植字を目的としたプログラムです.Texinfoは,Texinfoファ イルを植字するときにTeXが使う情報(定義とマクロ)を含むファイル texinfo.texを供給します.(texinfo.texは,TeXにTexinfoの @-コマンドをTeXコマンドに変換する方法を伝え,そしてTeXは植字ドキュ メントを作成する処理できます.)texinfo.texは,ドキュメントを印刷 するための仕様書を含みます.texinfo.texの最新バージョンは, ftp://ftp.gnu.org/gnu/texinfo.texで取得できます.

ほとんどの場合,ドキュメントは縦横8.5インチx11インチ(216mmx 280mmがデフォルトサイズ)で印刷されますが,7インチx9.25インチ (178mmx235mmの@smallbookサイズ)や,ヨーロッパのA4サ イズの紙(@afourpaper)でも印刷できます.(See Printing "Small" Books. また,Printing on A4 Paper, を参照してください.)

texinfo.texで変数を変えることで,印刷されたドキュメントのサイズを 変えることができます.さらに,書式化される印刷されたドキュメントで,スタ イルを変えることもできます.例えば,サイズや使っているフォント,それそれ の段落に対する字下げの量,ハイフネーションされた単語の度合と,それに類す るものを変えることができます.仕様書を変えることで,本を格調高く古臭く真 面目に見せたり,気楽に若々しく陽気に見せたりできます.

TeXは自由に配布できます.それは,WEBと呼ばれるPascalのスーパーセット で書かれていて,Pascalでも(TeX配布物と同梱の変換プログラムを使って)C でもコンパイルできます.(TeXの詳細は,See TeX Mode.)

TeXは非常に強力で,非常に多くの特徴があります.Texinfoファイルは, Info形式の文字のみの端末と,植字された本の両方で情報を表現できるので, Texinfoがサポートする書式化コマンドは必然的に制限されます.

TeXのコピーを得るために,How to Obtain TeX, を参照してください.


Node:Formatting Commands, Next:, Previous:Printed Books, Up:Overview

@-コマンド

Texinfoファイルでは,TeXに印刷されるマニュアルの植字法を伝えたり, makeinfotexinfo-format-bufferにInfoファイルの作り方を伝 えるコマンドは,@が前につきます.それらは@-コマンドと呼ば れています.例えば,@nodeはコードを示すコマンドで, @chapterは章の最初を示すコマンドです.

注意してください:全ての@-コマンドは,@TeX{}コマンド 以外,全体を小文字で書く必要があります.

Texinfoの@-コマンドは,厳密に制限された構成のセットです.厳密な制限で, Texinfoファイルを,TeXとInfoファイルに変換するコードの両方が理解する ことを可能とします.Infoファイルを英数字を表示する端末で表示することがで きます.同様に,TeXで生成した出力を様々なプリンタで印刷できます.

することや取る引数に依存して,4それ自身の行や,文の一部として,@- コマンドを書く必要があります.

一般的な規則として,他のテキストの間に混ぜる場合,コマンドにはカッコが必 要です.しかし行の始まり場合は不要です.@:のようなアルファベット でないコマンドは,規則に対し例外でカッコを必要としません.

Texinfoの経験を積むにつれ,違うコマンドに書き方をすぐに覚えられます.コ マンドの書き方の異なる方法で,全てのコマンドが同じ構文に正確に従うことに 比べ,より簡単にTexinfoファイルを書いたり読んだりできます.(@-コマンド 構文の詳細は,@-Command Syntax,を参照してくださ い.)


Node:Conventions, Next:, Previous:Formatting Commands, Up:Overview

一般的な構文の慣習

このセクションは,全てのTexinfoドキュメントで使われる,一般的な慣習を述 べます.

注意:タブをTexinfoファイルで使わないでください!TeXは,様々な 幅のフォントを使い,それは全ての環境で働くように,タブを前定義できないこ とを意味します.従って,TeXはタブを単一のスペースとして扱い,タブのよ うに見えません.さらにmakeinfoはタブに対し,特別なことをしないの で,入力ファイルのタブ文字は,出力で異なるように現れるかもしれません.

この問題を避けるためTexinfoモードは,<TAB>キーを押したとき,GNU Emacsに多数のスペースを挿入させます.

同様に,タブを一つの領域の複数のスペースに変換するため,Emacsで untabifyを実行することもできます.


Node:Comments, Next:, Previous:Conventions, Up:Overview

コメント

Texinfoファイルで,Infoファイルや印刷されたマニュアルに現れないコメント を,@commentコマンドを使って書くことができます(省略されて @cかも知れません).そのようなコメントは,Texinfoファイルを修正す る人のためです.@comment@cに続く行の全てのテキストはコ メントです.行の残りはInfoファイルにも印刷されたマニュアルにも現れません. (@comment@cを行の途中に書くこともでき, @comment@cコマンドの後のテキストのみ現れません.しかし, @settitle@setfilenameのようなコマンドは行全体で働きま す.@comment@cを,そのようなコマンドを使う行では使えま せん.)

Infoファイルや印刷されたマニュアルに現れないテキストの長い範囲を, @ignore@end ignoreコマンドを使って書くことができます. 単独行にこれらのコマンドをそれぞれ書き,行の最初からそれぞれのコマンドを 始めてください.これら2つのコマンドの間のテキストは,処理された出力物に 現れません.@ignore@end ignoreを,コメントを書くために 使うことができます.@ignore@end ignoreは,Infoや印刷さ れたドキュメントではなく,ドキュメントのTexinfoソースファイルに適応する ため,著作権の部分を囲むために使われます.


Node:Minimum, Next:, Previous:Comments, Up:Overview

Texinfoファイルが必要とするもの

慣習によって,Texinfoファイルの名前は,拡張子.texinfo.texi.txiや,.texで終ります.人が読むとき,ファイ ルの性質がはっきり述べられているので,長い拡張子が好まれます.短い拡張子 は,長いファイル名を扱えないオペレーティングシステムのためです.

印刷されたマニュアルやInfoファイルのため,Texinfoファイルは,以下のよう な行で始める必要があります

\input texinfo
@setfilename info-file-name
@settitle name-of-manual

ファイルの内容はこの始まりに続き,Texinfoファイルは,以下の行で終る 必要があります

@bye

\input texinfo行は,TeXにtexinfo.texファイルを使うよう に伝え,それは,Texinfoの@-コマンドをTeXの植字コマンドに変換する方法 をTeXに伝えます.(バックスラッシュ,\を使うことに注意してくだ さい.これは,TeXに対して正しいです.)@setfilename行は,Info ファイルの名前を供給し,TeXに補助ファイルを開くよう伝えます. @settitle行は,印刷されたマニュアルのページヘッダ(やフッタ)のタ イトルを指定します.

ファイルの終りの行の@byeは,フォーマッタにファイルの終りを伝え, 書式化を停止するように伝えます.

通常,予備のフォーマットを全く使わないでしょうが,Texinfoファイルの最初 に以下のような,モード設定とヘッダの始まりとヘッダの終りを含めます.

\input texinfo   @c -*-texinfo-*-
@c %**start of header
@setfilename info-file-name
@settitle name-of-manual
@c %**end of header

最初の行の-*-texinfo-*-で,Emacsはファイル編集時にTexinfoモードに 切替えます.

@setfilename@settitle行の周りにある@c行はオプ ションで,ファイルの一部のTeXやInfoを実行するため必要です.(詳細は See Start of Header.)

さらに通常は,Texinfoファイルは,タイトルページ,索引と,そのようなもの を供給します.しかし,最小限で短いドキュメントで役に立つよう,始めの3行 と終りの1行になります.


Node:Six Parts, Next:, Previous:Minimum, Up:Overview

Texinfoファイルの6つの部分

一般に,Texinfoファイルは最初と最後の最小限以上から成り立ち,通常6つの部 分から成り立ちます.

1.ヘッダ
ヘッダは,ファイルに名前をつけ,TeXに使う定義ファイルを伝え,そ の他の"家事(?)"5の仕事を実行し ます.
2.要約の記述と著作権
要約の記述と著作権の部分は,Infoファイルのドキュメントを述べ,著作 権通知とコピーの許可から成り立ちます.この部分は,Infoファイルでのみフォー マッタが置くように,@ifinfo@end ifinfoコマンドで囲まれ ています.
3.タイトルと著作権
タイトルと著作権の部分は,印刷されたマニュアルのためのタイトルと著 作権ページとコピーの許可から成り立ちます.この部分は@titlepage@end titlepageコマンドで囲まれています.タイトルと著作権ページは, 印刷されたマニュアルのみで現れます.
4.`Top'ノードとマスターメニュー
マスターメニューは,Infoファイル全体の,全てのノードの完全なメニュー から成り立ちます.それは,Infoファイルのみで`Top'ノードに現れます.
5.本体
ドキュメントの本体は,伝統的な本や,百科辞典や,自由形式のように, 構造化されます.
6.終り
終りは,目次を印刷したり,索引を生成したりするコマンドと,単独の @byeコマンドの行から成り立っています.


Node:Short Sample, Next:, Previous:Six Parts, Up:Overview

Texinfoの短いサンプル

ここに,完全ですが非常に短い,6つの部分があるTexinfoファイルがあります. ファイルの最初の3つの部分は,\input texinfoから@end titlepageまでで,他より恐ろしく(?)6見えます.材料のほとんどが標準的な常套句です.マニュアルを 書くとき,単純にこの部分に独自のマニュアルの名前をいれてください. (See Beginning a File.)

以下で,サンプルテキストは字下げされています.そのコメントはそう なっていません.コメントのない完全なファイルは,Sample Texinfo File,で見れます.

Part 1:ヘッダ

ヘッダはInfoファイルにも印刷された出力物にも現れません.それは様々な変数 を設定し,それにはInfoファイルの名前とヘッダで使っているタイトルが含まれ ます.

\input texinfo   @c -*-texinfo-*-
@c %**start of header
@setfilename sample.info
@settitle Sample Document
@setchapternewpage odd
@c %**end of header

Part 2:要約の記述と著作権

要約の記述と著作権の部分は,印刷されたドキュメントには現れません.

@ifinfo
これは,完全なTexinfoファイルの短いサンプルです.

Copyright @copyright{} 1990 Free Software Foundation, Inc.
@end ifinfo

Part 3:タイトルページと著作権

タイトルページの部分はInfoファイルに現れません.

@titlepage
@sp 10
@comment The title is printed in a large font.
@center @titlefont{Sample Title}

@c The following two commands start the copyright page.
@page
@vskip 0pt plus 1filll
Copyright @copyright{} 1990 Free Software Foundation, Inc.
@end titlepage

Part 4:`Top'ノードとマスターメニュー

`Top'ノードは,Infoファイルのマスターメニューから成り立ちます.印刷され たマニュアルはメニューよりは目次を使うので,マスターメニューはInfoファイ ルでのみ現れます.

@node    Top,       First Chapter, ,         (dir)
@comment node-name, next,          previous, up
@menu
* First Chapter::    The first chapter is the
                     only chapter in this sample.
* Concept Index::    This index has two entries.
@end menu

Part 5:ドキュメントの本体

本体の部分はドキュメントの全ての部分を含みますが,索引と目次は含みません. この例は,列挙されたリストからなるノードと章を説明します.

@node    First Chapter, Concept Index, Top,      Top
@comment node-name,     next,          previous, up
@chapter First Chapter
@cindex Sample index entry

これは,最初の章の内容です.
@cindex Another sample index entry

これは,番号付のリストです.

@enumerate
@item
これは,最初の項目です.

@item
これは,2番目の項目です.
@end enumerate

@code{makeinfo}と@code{texinfo-format-buffer}コマンドは,このよう
なTexinfoファイルをInfoファイルに変換し,@TeX{}は,それを印刷されたマ
ニュアルに植字します.

Part 6:ドキュメントの終り

終りの部分は,それ自身が番号付けされていない章とノードの索引を生成するコ マンド,(通常)目次を生成するコマンドと,ドキュメントの終りを示す @byeコマンドから成り立ちます.

@node    Concept Index,    ,  First Chapter, Top
@unnumbered Concept Index

@printindex cp

@contents
@bye

結果

ここに,サンプルの最初の章の内容のようなものがあります.

これは,最初の章の内容です.

これは,番号付のリストです.

  1. これは,最初の項目です.
  2. これは,2番目の項目です.

makeinfotexinfo-format-bufferコマンドは,このような TexinfoファイルをInfoファイルに変換し,TeXは,それを印刷されたマニュ アルに植字します.


Node:Acknowledgements and History, Previous:Short Sample, Up:Overview

感謝と歴史

Richard M. StallmanがTexinfoフォーマットを発明し,最初のプロセッサを書 き,このマニュアルのEdition 1.0を作りました.Robert J. Chassellは このマニュアルにかなりの修正と拡張をし,Edition 1.1を始めました.Brian Foxは,バージョン3.8まで,スタンドアローンのTexinfo配布物に責任があり, makeinfoinfoを書きました.Karl BerryはTexinfo 3.8 から更新し,マニュアルのEdition 2.22を始めました.

この仕事の開発を助けてくれた全てに人々に感謝し,特に,François PinardとDavid D. Zuhnは飽きること無く,間違いと曖昧さの記録と報告 をしてくれました.特に,幾度となくほとんど似ているエディションの退屈な査 読に対し,Melissa Weisshausに感謝します.飽きること無い,Eli Zaretskiiと Andreas Schwabは,数え切れないパッチを供給してくれました.Zack Weinberg は,texinfo.texでマクロ構文をインプリメントするという,不可能とも いえることを行いました.その他,何十人もがパッチと提案を供給してくれ,そ れはChangeLogファイルで多いに感謝しています.我々の間違いは,我々 自身のものです.

ちょっとした歴史:1970年代のCMUで,Brian Reidは印刷のためにドキュメントを マークアップするプログラムとScribeという名前の書式を開発しました.それは, Texinfoが行い,書式化というよりむしろドキュメントの内容を記述するような, @文字をコマンド導入に使用していました.

一方,MITの人々は他のものを開発し,それはBolioと呼ばれる余り違わない書式 でした.これは,植字の言語としてTeXを使うように変更され,BoTeXにな りました.

BoTeXは,印刷されたドキュメントのためのマークアップ言語としてのみ利用 可能で,オンラインドキュメントはできませんでした.Richard Stallman (RMS) は,BolioとBoTeXの両方で仕事をしました.彼は,Infoと呼ばれる気のきい たオンラインヘルプ書式を開発し,Texinfoを作るため,BoTeXとInfoを組合 せ,オンラインと印刷されたハードコピーの両方で読めるようにしたテキストの ためのマークアップ言語となりました.


Node:Texinfo Mode, Next:, Previous:Overview, Up:Top

Texinfoモードを使う

Texinfoファイルは,どんなテキストエディタを選んでも編集できます.Texinfo ファイルは,他のASCIIファイルと差がありません.しかし,GNU Emacsは, Texinfoモードと呼ばれる特別なモードがあり,仕事が楽になるようEmacsコマン ドとツールを供給します.

この章は,GNU EmacsのTexinfoモードの特徴について述べ,Texinfo書式化言語 の特徴は述べません.このマニュアルを始めからまっすぐ読んでいる場合,この 章は軽く流し,詳細にTexinfoフォーマット言語を述べている章を読み終えた後 戻りたくなるかもしれません.


Node:Texinfo Mode Overview, Next:, Previous:Texinfo Mode, Up:Texinfo Mode

Texinfoモードは,Texinfoファイルで働く特別な特徴を供給します.以下のよう にできます.

恐らく,最も役に立つ特徴の2つは,良く使う@-コマンドの挿入とノードポイン タとメニューの作成です.


Node:Emacs Editing, Next:, Previous:Texinfo Mode Overview, Up:Texinfo Mode

通常の,GNU Emacsエディットコマンド

ほとんどの場合,通常のテキストモードのコマンドは,Texinfoモードでもテキ ストモード同様に働きます.Texinfoモードは,新しい編集コマンドとツールを, GNU Emacsの一般的な優れた編集能力に追加されます.主な違いは,中身に関係 します.Texinfoモードでは,段落分離の変数と構文表は,単独行のTexinfoコマ ンドが不注意で段落に含まれないように再定義されています.このように, M-q (fill-paragraph)コマンドは段落を再定義しますが,隣接し ている索引コマンドを段落内に混ぜません.

さらに,Texinfoモードはpage-delimitertexinfo-chapter-level-regexpの値をセットします.デフォルトで,こ れは,章や,付録のようなその等価物に対するコマンドに一致する正規表現です. ページの分離にこの値を使うと,C-x ](forward-page)とC-x [(backward-page)コマンドで,章のタイトルから章のタイトルへ移動で き,C-x p(narrow-to-page)コマンドで章を限定できます.(ペー ジコマンドの詳細は,See Pages.)

Texinfoファイルは,お望みの名前を付けられますが,慣習で,.texinfo.texi.txiや,.texといった拡張子の一つで終ります. 長い拡張子は明示的なので好まれますが,短い拡張子はファイル名の長さに制限 があるオペレーティングシステムに必要です.GNU Emacsは,.texinfo.texiや,.txiの拡張子を持つファイルのとき,自動的にTexinfo モードに入ります.また,-*-texinfo-*-を最初の行に持つファイルのと き,Texinfoモードに切り替わります.他のモードからTexinfoモードに切替えた い場合は,M-x texinfo-modeと入力してください.

他のEmacsの特徴同様,望むようにTexinfoモードをカスタマイズしたり拡張した りできます.特にキーバインドは非常に簡単に変更できます.ここではデフォル トと標準的なキーバインドを述べます.


Node:Inserting, Next:, Previous:Emacs Editing, Up:Texinfo Mode

良く使うコマンドの挿入

Texinfoモードは,良く使う様々な@-コマンドをバッファに挿入するコマンドを 供給します.これらのコマンドでキーストロークを減らすことができます.

挿入コマンドは,C-cを2度の後,@-コマンドの最初の文字を入力し呼び 出します.

C-c C-c c
M-x texinfo-insert-@code
@code{}を挿入し,カッコの間にカーソルを置きます.
C-c C-c d
M-x texinfo-insert-@dfn
@dfn{}を挿入し,カッコの間にカーソルを置きます.
C-c C-c e
M-x texinfo-insert-@end
@endを挿入し,exampletableといった,以下に続く正し い単語を推測します.(このコマンドはネストされたリストを正確に処理しません が,すぐ前のリストに適切な単語を挿入します.)
C-c C-c i
M-x texinfo-insert-@item
@itemを挿入し,次の行の始めにカーソルを置きます.
C-c C-c k
M-x texinfo-insert-@kbd
@kbd{}を挿入し,カッコの間にカーソルを置きます.
C-c C-c n
M-x texinfo-insert-@node
@nodeと,`Next',`Previous'と,`Up'ノードに対し,連続したリストの コメント行を挿入します.@nodeの後にポイントは置かれます.
C-c C-c o
M-x texinfo-insert-@noindent
@noindentを挿入し,次の行の最初にカーソルを置きます.
C-c C-c s
M-x texinfo-insert-@samp
@samp{}を挿入し,カッコの間にカーソルを置きます.
C-c C-c t
M-x texinfo-insert-@table
@tableとその後にSPCを挿入し,<SPC>の後にカーソルを置きま す.
C-c C-c v
M-x texinfo-insert-@var
@var{}を挿入し,カッコの間にカーソルを置きます.
C-c C-c x
M-x texinfo-insert-@example
@exampleを挿入し,次の行の最初にカーソルを置きます.
C-c C-c {
M-x texinfo-insert-braces
{}を挿入し,カッコの間にカーソルを挿入します.
C-c C-c }
C-c C-c ]
M-x up-list
前後の閉じたカッコの間を移動します.C-c C-c ]C-c C-c }よ り簡単ですが,後者の方が覚えやすいです.それで2つのキーバインドとなりま す.(同様に,C-fの入力で,カッコの間から出られます.)

存在する単語の周りに,@code{...}のようなコマン ドを置くため,単語の前にカーソルを置き,C-u 1 C-c C-c cと入力して ください.これで,簡単に既存のプレーンテキストを編集できます.プレフィク ス引数の値は,1単語の場合は1,2単語の場合は2等のように,カッ コの間に含める,それ以降の単語がいくつあるかをEmacsに伝えます.負の引数 は,前の単語を囲むために使ってください.プレフィクス引数を指定しない場合, Emacsは,@-コマンド文字列を挿入し,カーソルをカッコの間に置きます.この 特徴は,@kbd@varのような,一つの単語や一行内の単語を操 作する@-コマンドに対してのみ働きます.

この挿入コマンドのセットは,GNU Emacs ManualGDB Manualで 使われている,異なる@-コマンドの頻度の解析後に作られました.独自の挿入 コマンドを加えたい場合,キーにキーボードマクロをバインドしたり,省略を使っ たり,texinfo.elのコードを拡張することができます.

C-c C-c C-d(texinfo-start-menu-description)は,他の挿入コマ ンドと異なる,挿入コマンドです.それは,メニュー項目行で,記述のための空 白にノードのセクションや章のタイトルを挿入します.(メニュー項目は3つの部 分があり,項目名,ノード名と,記述です.ノード名のみ要求されますが,記述 はノードが関係するものの説明を助けます.See The Parts of a Menu.)

texinfo-start-menu-descriptionを使うため,メニュー項目行にポイン トをおき,C-c C-c C-dを入力してください.コマンドはノード名に付属 するタイトルを探しコピーし,タイトルを記述として挿入します.それは編集で きるように,挿入されたテキストの始めにポイントを置きます.メニュー項目行 に記述が含まれる場合は,この機能はタイトルを挿入しません.

このコマンドは,記述を書くためだけで役立ちます.それは仕事を全部しません. タイトルはノード名と同じ単語を使いやすいのですが,役に立つ記述は異なる単 語を使うので,挿入されたテキストを編集する必要があります.


Node:Showing the Structure, Next:, Previous:Inserting, Up:Texinfo Mode

ファイルのセクションの構造を見る

C-c C-sコマンド(texinfo-show-structure)を使って,Texinfoファ イルのセクションの構造を見ることができます.このコマンドは, @chapter@sectionのような,@-コマンドで始まる行をリス トアップし,Texinfoファイルのセクションの構造を見せます.それは,結果と して目次を構成します.これらの行は,*Occur*と呼ばれる別のバッファ に表示されます.そのバッファでTexinfoファイルの関連する場所に移動するた め,行の1つにカーソルを置き,C-c C-cコマンド (occur-mode-goto-occurrence)を使うことができます.

C-c C-s
M-x texinfo-show-structure
Texinfoファイルの@chapter@sectionと,そのような行を表示 します.
C-c C-c
M-x occur-mode-goto-occurrence
*Occur*バッファのカーソルの下の行に関連する,Texinfoファイルの行 に行きます.

C-u C-c C-sを入力し,プレフィクス引数を付けて texinfo-show-structureを呼び出す場合,@chapter@sectionと,これに類する@-コマンドがある行だけでなく, @node行もリストアップします.@node行の,`Next', `Previous'と,`Up'ポインタが,正しいかどうか調べるため, texinfo-show-structureにプレフィクスを付けて使うことができます.

マニュアルの作業中,現在の章の構造のみに興味があることも良くあります.こ の場合,C-x n n(narrow-to-region)コマンドを使い,興味がある バッファの領域を区別することができ,texinfo-show-structureはその 領域のみで働きます.再びバッファの領域全体を見るため,C-x n w(widen)を使ってください.(コマンドの制限は,See Narrowing.)

texinfo-show-structureコマンドの供給に加えて,Texinfoモードは,章 レベルの@-コマンドに一致する,ページデリミタ変数の値をセットします.こ れで,C-x ](forward-page)とC-x [ (backward-page)コマンドを,前後の章に移動するために使ったり, C-x p (narrow-to-page)コマンドを,章を小さくするために使っ たりできます.ページコマンドの詳細は,See Pages.


Node:Updating Nodes and Menus, Next:, Previous:Showing the Structure, Up:Texinfo Mode

ノードとメニューの更新

Texinfoモードは,自動的にメニューとノードポインタを作成し更新するコマン ドを供給します.コマンドは"更新"コマンドと呼ばれ,その理由は,作業後に Texinfoファイルを更新するため最も良く使われるためです.しかし,`Next', `Previous'と,`Up'ポインタを,何も持たない@node行に挿入したり, 何も持たないファイルでメニューを作成したりするために使うことができます.

更新コマンドを使わない場合,メニューとノードポインタを手で書く必要があり, それは退屈な仕事です.


Node:Updating Commands, Next:, Previous:Updating Nodes and Menus, Up:Updating Nodes and Menus

以下のために,更新コマンドを使うことができます.

Texinfoの一部や全体の,全てのノードとメニューを更新するため,コマンドを 使うこともできます.

更新コマンドは,慣習的なTexinfoファイルでしか働かず,それは本に似た階層 構造をしています.そのようなファイルで,構造的なコマンド行は,`Top' @node行以外の,それぞれの@node行に続くはずです.(構 造的なコマンド行は,@chapter@sectionや,他の似たコマ ンドで始まる行です.)

@node行の直後に続く行や,単一の@comment行や,単一の @ifinfo行の後に続く行に,構造的なコマンド行を書くことができます. @node行と構造的なコマンド行の間に,1行以上挿入できません. @comment行や,@ifinfo行のみ挿入できます.

バッファ全体で働くコマンドは,@chapterや,同等のレベルコマンドを 使ったノードが続く`Top'ノードが必要です.メニュー更新コマンドは, @chapterレベルのノードしか持たないTexinfoファイルに対し,メイン やマスターメニューを作成しません!メニュー更新コマンドは,低いレベルのノー ドのの中にメニューを作成するだけです.章のメニューを作成するため に`Top'ノードを供給する必要があります.

メニュー更新コマンドは現在のバッファ内のノードを参照しないので,他のInfo ファイルを参照するメニュー項目を削除します.これは欠陥です.メニュー項目 を使うより,他のInfoファイルを参照する相互参照を使うことができます.更新 コマンドは相互参照に影響しません.

Texinfoモードは,良く使う5つの更新コマンドがあります.2つは,単一ノード (や領域)のノードポインタやメニューを更新します.2つは,ファイルの全ての ノードポインタとメニューを更新します.もう1つは, texinfo-master-menuコマンドで,完全なファイルのマスターメニューを 作成し,さらに,Texinfoファイル全体の全てのノードとメニューを更新します.

texinfo-master-menuコマンドは,主要なコマンドです.

C-c C-u m
M-x texinfo-master-menu
全ての他のメニューを含むマスターメニューを作成更新します(既存のメニュー があれば,それから記述を含めます).

引数(対話的な場合,プレフィクス引数,C-u,)を使うと,マスターメニュー を構築する前に,バッファの全ての通常のメニューを最初に作成更新します. (マスターメニューについては,See The Top Node and Master Menu.)

texinfo-master-menuを働かせるため,Texinfoファイルは,`Top'ノード と,少なくとも1つのサブシーケンスノードがある必要があります.

広範囲でTexinfoファイルを編集後,以下を入力します.

C-u M-x texinfo-master-menu

または
C-u C-c C-u m

これで,一度に全てのノードとメニューを,完全に更新します.

他の主要な更新コマンドは小さな仕事をし,人間がノードやメニューをTexinfo ファイルに書くように,設計されています.

以下のコマンドです.

C-c C-u C-n
M-x texinfo-update-node
`Next',`Previous'と,`Up'ポインタを,ポインタがあるノード(例えば, @node行をポイントの前)に挿入します.@node行に,`Next', `Previous'や,`Up'ポインタがある場合,古いポインタは削除され新しいものが 挿入されます.引数(対話的な場合,C-uプレフィクス引数)を使うと,こ のコマンドは,領域の全ての@node行を更新します(それは,ポイントと マークの間のテキストです).
C-c C-u C-m
M-x texinfo-make-menu
ポイントがあるノードのメニューを作成更新します.引数(対話的な場合は, C-uプレフィクス引数)を使うと,コマンドは領域内またはその一部のノー ドに対しメニューを作成更新します.

texinfo-make-menuが既存のメニューを更新する場合は,メニューの記述 は常に新しいメニューに挿入されます.これは,既存のメニューから,同じノー ド名を持つ新しいメニュー項目に記述をコピーすることで行います.ノードメ ニューが異なる場合,記述は新しいメニューにコピーされません.

C-c C-u C-e
M-x texinfo-every-node-update
バッファ内の全てのノードに対し,`Next',`Previous'と,`Up'ポインタを挿入 更新します.
C-c C-u C-a
M-x texinfo-all-menus-update
バッファ内の全てのメニューを作成更新します.引数(対話的な場合はプレフィ クス引数C-u)を使うと,メニューで働く前に,最初に全てのノードを挿入 更新します.

マスターメニューがある場合,texinfo-all-menus-updateコマンドはそ れを更新します.しかし,メニューが無い場合,コマンドは新しいマスターメ ニューを作成しません.(そのためには,texinfo-master-menuコマンド を使ってください.)

マスターメニューに値しないドキュメントで作業する場合,以下のように入力で きます.

C-u C-c C-u C-a

または
C-u M-x texinfo-all-menus-update

これで,全てのノードとメニューを更新します.

texinfo-column-for-description変数は,メニューの記述が字下げされ る列を指定します.デフォルトで値は32ですが,24以下にした方が便利なときが 多いです.M-x edit-optionsコマンド(see Edit Options)や,M-x set-variable コマンド(see Examining)で,変数をセットできます.

同様に,texinfo-indent-menu-descriptionを,既存のメニューでの記述 の字下げの列の指定に使うことができます.終りに,希望があれば texinfo-insert-node-linesコマンドを,ファイルに足りない @node行を挿入するために使うことができます.(詳細はSee Other Updating Commands.)


Node:Updating Requirements, Next:, Previous:Updating Commands, Up:Updating Nodes and Menus

必要条件の更新

更新コマンドを使うため,章,セクション,サブセクションとそれに類するもの を使って,Texinfoファイルを階層的に組織化する必要があります.マニュアル の階層化を構築するとき,一度に1レベル以上`jump down'してはいけません.章 を`Top'ノードの次にできますが,セクションではできません.セクションを章 の次にできますが,サブセクションではできません.しかし,一度に何レベルで も`jump up'できます--例えば,サブセクションから章にいけます.

それぞれの@node行は,`Top'ノードの行は例外として, @chapter@sectionや,@unnumberedsubsecのような, 構造的なコマンドによる行が続きます.

それぞれの@node行や構造的コマンド行は,以下のような組合せにする 必要があります.

@node     Comments,  Minimum, Conventions, Overview
@comment  node-name, next,    previous,    up
@section Comments

(@comment行が無ければ)このようになります.

@node Comments, Minimum, Conventions, Overview
@section Comments

この例で,`Comments'はノードとセクションの名前です.次のノードは `Minimum'と呼ばれ,前のノードは`Conventions'と呼ばれます.`Comments'セク ションは`Overview'ノードにあり,`Up'ポインタで指定されます. (@comment行の代わりに,@ifinfo行を書くこともできます.)

ファイルに`Top'ノードがある場合,それは,topTopと呼ばれ, ファイルの最初のノードにする必要があります.

メニュー更新コマンドは,章のセクションメニュー,セクションのサブセクショ ンメニュー等を作ります.これは,章のメニューが欲しい場合,`Top'ノードが 必要だということを意味します.

ところで,makeinfoコマンドは,`Next',`Previous'と,`Up'ポインタ が無い階層的に組織化されたTexinfoファイルに対し,Infoファイルを作ります. このように,Texinfoファイルがmakeinfoで書式化されるのを確かめるこ とができる場合,ノード更新コマンドは不要です.(makeinfoの詳細は, See Creating an Info File.)しかし,makeinfotexinfo-format-...コマンドでは,どちらもファイルにメニューを 挿入する必要があります.


Node:Other Updating Commands, Previous:Updating Requirements, Up:Updating Nodes and Menus

他の更新コマンド

5つの主な更新コマンドに加え,Texinfoモードには余り使われない更新コマンド もあります.

M-x texinfo-insert-node-lines
@node行を,Texinfoファイル全体で欠けている場合は, @chapter@sectionと,その他のセクションコマンドの前に挿入 します.

引数(対話的な場合は,C-uプレフィクス引数)を使うと, texinfo-insert-node-linesコマンドは,@node行を挿入するだ けでなく,対応するノードの名前として,章やセクションのタイトルも挿入しま す.さらに,既存の名前が欠けている@node行に,ノード名としてタイ トルを挿入します.ノード名は,セクションや章のタイトルより簡潔にすべきな ので,挿入されたノード名を手作業で編集する必要があります.

例えば,以下のようにして,バッファ全体を領域としてマークし, @node行とタイトルを全体に挿入します.

C-x h C-u M-x texinfo-insert-node-lines

このコマンドは,タイトルをノード名として@node行に挿入します. texinfo-start-menu-descriptionコマンド(see Inserting Frequently Used Commands)は,タイトルをメニュー項目に記述とし て挿入する,異なる動作です.しかし,どちらの場合でも挿入されたテキストを 編集する必要があります.

M-x texinfo-multiple-files-update
分離されたファイルから構築されたドキュメントで,ノードとメニューを更新し ます.プレフィクス引数C-uを使うと,外部ファイルにマスターメニュー を作成挿入します.C-u 2のように,数字のプレフィクス引数を使うと, 外部ファイルにマスターメニューを作成挿入する前に,全てのインクルードファ イルの全てのメニューと,全ての`Next',`Previous'と,`Up'ポインタを最初に 更新します.texinfo-multiple-files-updateコマンドは, @includeファイルの付録で述べられています.
M-x texinfo-indent-menu-description
指定された列の位置に,メニューのすべての記述を字下げします.記述により多 くのスペースを与えるために,このコマンドを使うことができます.引数(対話 的な場合,C-u引数)を使うと,texinfo-indent-menu-description コマンドは,領域の全てのメニューの記述をを字下げします.しかし,このコマ ンドは,複数行の記述行の2番目と次に続く行を字下げしません.
M-x texinfo-sequential-node-update
現在のノードの直前直後に,ノードの階層レベルに係わらず,`Next'や `Previous'ポインタとしてノード名を挿入します.これは,サブセクションの `Next'ノードが次の章にできることを意味します.連続して並んだノードは,小 説や順番に読んでいくドキュメントで役立ちます.(しかしInfoでは,g * コマンドでファイルを順番に見ることができ,順番に並んだノードは厳密には不 要です.)引数(対話的な場合は,プレフィクス引数)を使うと, texinfo-sequential-node-updateコマンドは領域の全てのノードを更新 します.


Node:Info Formatting, Next:, Previous:Updating Nodes and Menus, Up:Texinfo Mode

Infoの書式化

Texinfoモードは,InfoのためTexinfoファイルの一部または全体を書式化するコ マンドも供給します.ドキュメントを書いているとき,ファイルの一部だけ,す なわち領域を書式化したいことが良くあります.

texinfo-format-regionmakeinfo-regionコマンドを使って,領 域の書式化ができます.

C-c C-e C-r
M-x texinfo-format-region
C-c C-m C-r
M-x makeinfo-region
Infoのため,現在の領域の書式化を行います.

texinfo-format-buffermakeinfo-bufferコマンドを使って,バッ ファ全体の書式化ができます.

C-c C-e C-b
M-x texinfo-format-buffer
C-c C-m C-b
M-x makeinfo-buffer
Infoのため,現在のバッファを初期化します.

例えば,Texinfoを書いた後,以下のように入力します.

C-u C-c C-u m

または
C-u M-x texinfo-master-menu

これで,全てのノードとメニューを更新します.そして,Infoファイルを作るた め以下のように入力します.

C-c C-m C-b

または
M-x makeinfo-buffer

TeXやInfo書式化初期化コマンドを働かせるため,ファイルには,ヘッダに @setfilename行を含める必要があります.

Infoの書式化の詳細は,See Creating an Info File.


Node:Printing, Next:, Previous:Info Formatting, Up:Texinfo Mode

書式化と印刷

Texinfoファイルの植字と印刷は,最初に印刷のための(DVIと呼ばれる)ファイル を作り,ファイルを印刷するという,複数のステップによる処理になります.オ プションで索引を作ることもできます.こうするため,最初にtex植字コ マンドを実行した後,texindexコマンドを実行する必要があります.そ して,もう一度texコマンドを実行する必要があります.また別の方法と して,必要なら索引を自動的に作成する,texi2dviコマンドを実行しま す(see Format with texi2dvi).

ドキュメントを書いているとき,見え方を見るため,ファイルの一部だけを植字 し印刷したいときが良くあります.texinfo-tex-regionと,この目的に 関係するコマンドを使うことができます.texinfo-tex-bufferコマンド は,バッファ全体の書式化に使ってください.

C-c C-t C-b
M-x texinfo-tex-buffer
バッファでtexi2dviを実行します.バッファでTeXの実行に追加し, このコマンドは,必要な場合,自動的に索引を作成更新します.
C-c C-t C-r
M-x texinfo-tex-region
領域でTeXを実行します.
C-c C-t C-i
M-x texinfo-texindex
texinfo-tex-regionで書式化されたTexinfoファイルの索引をソートする ため,texindexを実行します.texinfo-tex-regionコマンドは, 自動的にtexindexを実行しません.それは,tex植字コマンドを 実行するだけです.texindexコマンドで生の索引ファイルをソートした 後,texinfo-tex-regionコマンドを2回実行する必要があります.(通常, 領域を書式化したときは,索引を書式化せず,バッファを書式化したときのみ行 います.現在はtexi2dviコマンドがあるので,このコマンドはほとんど, あるいは全く必要ありません.)
C-c C-t C-p
M-x texinfo-tex-print
前もって,texinfo-tex-buffertexinfo-tex-regionで書式化さ れたファイル(またはファイルの一部)を印刷します.

texinfo-tex-regiontexinfo-tex-bufferが働くように,ファイ ルは,\input texinfo行で始める必要があり, @settitle行を含める必要があります.ファイルは,@bye行で 終る必要があります.(texinfo-tex-regionを使うとき, @settitle行を,start-of-headerとend-of-header行で囲む必要があり ます.)

tex-show-print-queueのような,他のTeXに関連するコマンドの記述 は,See Hardcopy.


Node:Texinfo Mode Summary, Previous:Printing, Up:Texinfo Mode

Texinfoモードの概要

Texinfoモードでは,それぞれのコマンドセットは,同じキーで始まるデフォル トのキーバインドがあります.Texinfoモードのためにカスタムで作られた全て のコマンドは,C-cで始まります.キーは多少記憶を助けます.

挿入コマンド

挿入コマンドは,C-cを2度入力し,挿入する@-コマンドの最初の文字を 入力し呼び出します.(それは,`カスタム挿入'のためのC-c C-iを使う記 憶より能力がいるかもしれませんが,C-c C-cは,素早く入力できます.)

C-c C-c c       @codeを挿入.
C-c C-c d       @dfnを挿入.
C-c C-c e       @endを挿入.
C-c C-c i       @itemを挿入.
C-c C-c n       @nodeを挿入.
C-c C-c s       @sampを挿入.
C-c C-c v       @varを挿入.
C-c C-c {       カッコを挿入.
C-c C-c ]
C-c C-c }       閉じたカッコの外へ移動.

C-c C-c C-d     メニュー項目行で
                記述のためのスペースに
                ノードのセクションタイトルを挿入

構造を見る

texinfo-show-structureコマンドは,限定された領域でよく使われます.

C-c C-s         全ての見出しをリストアップします.

マスター更新コマンド

texinfo-master-menuコマンドはマスターメニューを作ります.そして同 様に,ファイルの全てのノードとメニューの更新にも使用可能です.

C-c C-u m
M-x texinfo-master-menu
                マスターメニューを作成更新します.

C-u C-c C-u m   プレフィクス引数C-uを使う場合,
                最初に全てのノードと普通のメニューを作成更新し,
                そしてマスターメニューを作成する.

ポインタの更新

ポインタを更新するコマンドは,C-c C-uと入力してから, texinfo-update-nodeにのためのC-n,または, texinfo-every-node-updateのためのC-eを入力します.

C-c C-u C-n     ノードの更新.
C-c C-u C-e     バッファの全てのノードの更新.

メニューの更新

メニューの更新のコマンドは,C-c C-uと入力してから, texinfo-make-menuのためのC-m,または, texinfo-all-menus-updateのためのC-aを入力し呼び出してくださ い.ノードとメニューの両方を同時に更新するため,C-c C-u C-aの前に C-uを入力してください.

C-c C-u C-m     メニューの作成更新.

C-c C-u C-a     バッファの全ての
                メニューの作成更新.

C-u C-c C-u C-a プレフィクス引数C-uを使うと,
                最初に全てのノードを作成更新し
                そして全てのメニューを作成更新します.

Infoの書式化

Emacs Lispで書かれているInfoの書式化コマンドは,C-c C-eと入力して から,領域に対しC-r,または,バッファ全体に対しC-bを入力しま す.

Cで書かれていて,makeinfoプログラムを基本としたInfoの書式化コマン ドは,C-c C-mと入力してから,領域に対しC-r,または,バッファ 全体に対しC-bを入力し呼び出します.

texinfo-format...コマンドを使用します.

C-c C-e C-r     領域の書式化.
C-c C-e C-b     バッファの書式化.

makeinfoを使用します.

C-c C-m C-r     領域の書式化.
C-c C-m C-b     バッファの書式化.
C-c C-m C-l     makeinfo出力バッファの更新.
C-c C-m C-k     makeinfo書式化の停止.

植字と印刷

TeXの植字と印刷コマンドは,C-c C-tと入力してから,もう1つ制御コ マンドを入力して呼び出します.texinfo-tex-regionのためのC-rtexinfo-tex-bufferのためのC-b,等などです.

C-c C-t C-r     TeXを領域で実行.
C-c C-t C-b     texi2dviをバッファで実行.
C-c C-t C-i     texindexの実行.
C-c C-t C-p     DVIファイルの印刷.
C-c C-t C-q     プリントキューの表示.
C-c C-t C-d     プリントキューからジョブを削除.
C-c C-t C-k     現在のTeX書式化の停止.
C-c C-t C-x     現在停止中のTeX書式化を終了.
C-c C-t C-l     出力バッファの更新.

その他の更新コマンド

残っている更新コマンドは滅多に使わないので,キーバインドはありません.

M-x texinfo-insert-node-lines
                領域に足りない@node行を挿入.
                プレフィクス引数C-uを使うと,
                セクションタイトルをノード名として使用.

M-x texinfo-multiple-files-update
                複数ファイルのドキュメントの更新.
                プレフィクス引数C-u 2を使うと,
                最初に全てのインクルードファイルを
                作成更新.

M-x texinfo-indent-menu-description
                記述の字下げ.

M-x texinfo-sequential-node-update
                厳密な順序でノードポインタの挿入.


Node:Beginning a File, Next:, Previous:Texinfo Mode, Up:Top

Texinfoファイルを始める

情報の特定の部分は,Texinfoファイルの最初に供給する必要があり,それは, ファイル名やドキュメントタイトルのようなものです.


Node:Four Parts, Next:, Previous:Beginning a File, Up:Beginning a File

通常,Texinfoの始まりは,4つの部分があります.

  1. ヘッダは,特別なコメント行で分離されていて,Texinfoファイルを命名するコ マンドを含み,TeXにTexinfoファイルを処理するとき使う定義ファイルを伝 えます.
  2. ファイルが関連するものの短い提示で,著作権の注意と著作権の許可があります. これは,Infoファイルでのみフォーマッタが配置するように,@ifinfo@end ifinfoコマンドで囲まれています.
  3. タイトルページと著作権のページで,著作権の注意と著作権の許可があります. これは,@titlepage@end titlepageコマンドで囲まれていま す.タイトルと著作権ページは印刷されたマニュアルのみで現れます.
  4. Infoファイル全体のメニューを含む`Top'ノードです.このノードの内容はInfo ファイルのみで現れます.

追加で,プログラムのコピー条件と保証の放棄を含むこともできます.コピーの セクションは,マニュアルの「はじめに」の部分や最初の章が続きます.

Texinfoドキュメントの著作権の注意と著作権の許可は(プログラムのコピーの許 可に比べ),Infoファイルや印刷されたマニュアルでしか現れない部分にあるの で,この情報は2度与える必要があります.


Node:Sample Beginning, Next:, Previous:Four Parts, Up:Beginning a File

Texinfoファイルの始まりのサンプル

以下のサンプルは,必要なものを現しています.

\input texinfo   @c -*-texinfo-*-
@c %**start of header
@setfilename name-of-info-file
@settitle name-of-manual
@setchapternewpage odd
@c %**end of header

@ifinfo
このドキュメントファイルは...

Copyright year copyright-owner

Permission is granted to ...
@end ifinfo

@c  This title page illustrates only one of the
@c  two methods of forming a title page.

@titlepage
@title name-of-manual-when-printed
@subtitle subtitle-if-any
@subtitle second-subtitle
@author author

@c  The following two commands
@c  start the copyright page.
@page
@vskip 0pt plus 1filll
Copyright @copyright{} year copyright-owner

Published by ...

Permission is granted to ...
@end titlepage

@node Top, Overview, , (dir)

@ifinfo
このドキュメントが述べているのは...

このドキュメントは,プログラム名...のバージョン...に対応します.
@end ifinfo

@menu
* Copying::          Your rights and freedoms.
* First Chapter::    Getting started ...
* Second Chapter::              ...
  ...
  ...
@end menu

@node    First Chapter, Second Chapter, top,      top
@comment node-name,     next,           previous, up
@chapter First Chapter
@cindex Index entry for First Chapter


Node:Header, Next:, Previous:Sample Beginning, Up:Beginning a File

Texinfoファイルのヘッダ

Texinfoファイルは,少なくとも,InfoとTeXに必要な情報を供給する3行から 始めます.これらは,\input texinfo行,@settitle行と, @setfilename行です.Texinfoファイルの一部でTeXを実行したい場 合,@settitle@setfilename行を,start-of-headerと end-of-header行の間に書く必要があります.

それで,Texinfoファイルの始まりは,このようになります.

\input texinfo   @c -*-texinfo-*-
@setfilename sample.info
@settitle Sample Document

または,このようになります.

\input texinfo   @c -*-texinfo-*-
@c %**start of header
@setfilename sample.info
@settitle Sample Document
@c %**end of header


Node:First Line, Next:, Up:Header

Texinfoファイルの最初の行

TeXに入力する最上位となるすべてのTexinfoファイルは,以下の行で始める 必要があります.

\input texinfo   @c -*-texinfo-*-

この行は,2つの機能を提供します.

  1. ファイルがTeXで処理されるとき,\input texinfoコマンドは, Texinfoファイルを処理するため必要なマクロを,TeXにロードするよう伝え ます.これらは,texinfo.texと呼ばれるファイルにあり,通常, /usr/lib/tex/macrosディレクトリにあります.TeXはバックスラッシュ \をコマンドの始めの印として使い,ちょうどTexinfoが使う@の ようなものです.texinfo.texファイルは,\@に切替 えます.切替え前に,TeXは\を要求し,それがファイルの最初に現す 理由です.
  2. ファイルをGNU Emacsで編集するとき,-*-texinfo-*-モード指定は, EmacsにTexinfoモードを使うよう伝えます.


Node:Start of Header, Next:, Previous:First Line, Up:Header

ヘッダを始める

Texinfoファイルの2行目に,start-of-header行を書いてください. start-of-header行に続けて,@setfilename@settitle行と,オ プションで@smallbook@footnotestyleのような,他のコマンド 行を書いてください.そしてend-of-header行になります.(see End of Header).

これらの行を使うと,Infoの部分の書式化や印刷部分の植字ができます.

start-of-header行は以下のようになります.

@c %**start of header

%**という奇妙な文字列は,他のコメントが偶然start-of-header行だと思 われないことを保証します.


Node:setfilename, Next:, Previous:Start of Header, Up:Header

@setfilename

makeinfoやTeXのための主要な入力ファイルとして提供するため, Texinfoファイルは以下の行を含む必要があります.

@setfilename info-file-name

@setfilenameコマンドを行の最初に書き,同じ行にInfoファイル名を続け てください.その行に他のものは書かないでください,その行のコマンド後は,コ メントであっても,全てファイル名の一部と考えられます.

@setfilenameは,生成する出力ファイルの名前を指定します.この名前は Texinfoファイルの名前と異なるべきです.名前を選ぶ慣習が2つあり,入力ファイ ル名から(.texiのような)拡張子を削除したり,.info拡張子で置換 したりできます.HTML出力の処理のとき,makeinfoは,あらゆる拡張子を htmlに置換するか,拡張子が無い場合は.htmlを加えます.

オペレーティングシステムには,長いファイル名を扱わないものもあります.あな たが指定したファイル名が十分短い時でも,問題となるはずです.これは,Infoフォー マッタが長いInfoファイルを短い間接的なサブファイルに分け,-1-2...-10-11等を,元のファイル名に加えるた めです.(See Tag Files and Split Files.)例えば, サブファイル名texinfo.info-10は,システムにとって長すぎることもあり ます.そのため,このドキュメントのInfoファイル名は,texinfo.infoで はなくtexinfoとしています.makeinfoを,MSーDOSのようなファイ ル名に重大な制限を加えるオペレーティングシステムで実行するとき,それは元の ファイル名から数文字削除し,サブファイルのサフィックスに十分なものだけ残し, そしてファイル名は,texin-10gcc.i12等になります.

Info書式化コマンドは,@setfilename行の前に書かれている全てのものを 無視し,それは,ファイルの最初の行(\input行)を出力に表示しません.

@setfilename行は,TeXでマニュアルを植字するとき出力を作成しませ んが,それにも関わらず不可欠です.それは,索引,相互参照と,その他の Texinfoファイルが使う追加ファイルを開き,システムにtexinfo.cnfファ イルがあれば,それも読み込みます(see Preparing for TeX).


Node:settitle, Next:, Previous:setfilename, Up:Header

@settitle

印刷されたマニュアルにするため,Texinfoファイルは,以下のような行を含める 必要があります.

@settitle title

@settitleコマンドを行の最初に書き,同じ行にタイトルを続けてくださ い.これは,TeXにヘッダやフッタで使うタイトルを伝えます.その行には他に 何も書かないでください.コマンド以降のその行は,タイトルの一部と考えられ, それにはコメントも含みます.

慣習的に,TeXでTexinfoファイルを両面出力物のための書式化するとき,タイ トルは左側(偶数)のページの見出しに印刷され,現在の章のタイトルは右側(奇数 )のページの見出しに印刷されます.(TeXは,それぞれの@chapterコマ ンドからの,それぞれの章のタイトルを,記憶します.)ページフッタは印刷され ません.

片面スタイルの場合でさえ,TeXは@settitleコマンド行を探し,マニュ アルタイトルを見出しに含める場合に備えます.

@settitleコマンドは,TeXの実際に生成される全ての出力の前に置く べきです.

@settitleコマンドのタイトルは,通常タイトルページのタイトルと同じ ですが,タイトルページに現れるタイトルに影響しません.このように,2つは正 確に一致する必要はありません.そして,@settitleコマンドのタイトル は,タイトルページに現れるタイトルの,短い,あるいは拡張版にできます. (See @titlepage.)

TeXは,Texinfoファイルの@end titlepage以降や,見出しを付ける @headingsコマンド以降のテキストに対してのみ,ページ見出しを印刷し ます.(詳細は,See The @headings Command.)

希望があれば,独自のカスタム見出しやフッタを作ることができます.この処理の 詳細な記述は,See Page Headings.


Node:setchapternewpage, Next:, Previous:settitle, Up:Header

@setchapternewpage

公式に製本された本で,テキストは通常,紙の両面に印刷され,章は右側のページ から始まり,右のページは偶数番号です.しかし,短いレポートでテキストが紙の 片面で印刷されることも良くあります.また短いレポートで,章で改ページしない ときもありますが,小量の縦方向の空白の後,前の章の終りと同じページで印刷さ れます.

@setchapternewpageコマンドを,TeXが章を開始する方法と,紙の片面 や両面に印刷する(1面や2面印刷の)ためのヘッダの書式化の方法を指定する,様々 な引数で使用できます.

@setchapternewpageコマンドを,行の最初に引数を続けて書いてください.

例えば,それぞれの章を新しい偶数ページから始めるため,以下のように書きます.

@setchapternewpage odd

@setchapternewpageコマンドで,3つの選択肢の1つを指定できます.


@setchapternewpage off
TeXに,直前の章と同じページで,いくつかの縦方向の空白を挟み,新しい章 を植字させます.同様に,TeXに片面印刷のためのページヘッダの書式化をさ せます.(@headings doubleコマンドで,ヘッダの書式化を優先できま す.The @headings Command,を参照してく ださい.)
@setchapternewpage on
TeXに,新しいページで章を開始させ,片面印刷のためのページヘッダの書式化 をさせます.これは,短いレポートや個人的な印刷で最も良く使われる形式です.

この選択肢はデフォルトです.

@setchapternewpage odd
TeXに,新しい章を新しい偶数ページ(右側のページ)で開始させ,両面印刷のた めの植字をさせます.これは,本やマニュアルで最も良く使われる形式です.

Texinfoには,@setchapternewpage evenコマンドはありません.

@setchapternewpageコマンドのヘッダに対する効果を, @headingsコマンドで取り消したり変更したりできます. See The @headings Command.

マニュアルや本の最初でページは番号付けされません--例えば,本のタイトルと 著作権のページは番号付けされていません.慣習で,目次のページはローマ数字で 番号付けされ,ドキュメントの残りの部分に続けません.

Infoファイルはページが無いので,@setchapternewpageはそれに対し効果 はありません.

要求される出力物がドキュメントの本質ではないため, @setchapternewpageコマンドをマニュアルのソースに入れるよう,全く要 求されません.代わりに,デフォルトオプション(空白ページがない,全てのペー ジで同じヘッダ)が不要な場合,texi2dviへの--texinfoオプ ションを,お望みの出力指定に利用してください.


Node:paragraphindent, Next:, Previous:setchapternewpage, Up:Header

段落の字下げ

Texinfoプロセッサは,それぞれの段落の最初の行の始めに空白を挿入し,それに より段落を字下げします.@paragraphindentコマンドを,この字下げの指 定に使うことができます.行の最初に,@paragraphindentコマンドを asisや数字を続けて書いてください.

@paragraphindent indent

字下げは,indentの値に従います.

asis
既存の字下げを変更しません(TeXでは実装されていません).
0
すべての字下げを取り消します.
n
Info出力ではn個の空白文字,TeXではn字下げします.

indentのデフォルト値はasisです.@paragraphindentは, HTML出力では無視されます.

@paragraphindentコマンドは,Texinfoファイルの最初に, end-of-header行の前かすぐ後に書いてください.(start-of-headerと end-of-header行の間に書いた場合,領域書式化コマンドは,指定されたように段 落を字下げします.)

texinfo-format-buffertexinfo-format-regionの特別なところは, @w@*コマンドを含む段落を字下げしない(または補充しない)こ とです.詳細は,See Refilling Paragraphs.


Node:exampleindent, Next:, Previous:paragraphindent, Up:Header

@exampleindent:環境に応じた字下げ

The Texinfo processors indent each line of @example and similar environments. You can use the @exampleindent command to specify this indentation. Write an @exampleindent command at the beginning of a line followed by either asis or a number:

Texinfoプロセッサは,それぞれの@exampleとそれに似た環境の行で字下 げします.@exampleindentコマンドで字下げを指定できます. @exampleindentコマンドを,行の始めにasisや数字を続けて書い てください.

@exampleindent indent

字下げは,indentの値に従います.

asis
既存の字下げを変更しません(TeXでは実装されていません).
0
すべての字下げを取り消します.
n
Info出力では,n個の空白文字,TeXではn,環境に応じて字下げし ます.

indentのデフォルト値は5です.@exampleindentはHTML出力で無 視されます.

@exampleindentコマンドは,Texinfoファイルの最初に,end-of-header行 の前かすぐ後に書いてください.(start-of-headerとend-of-header行の間に書い た場合,領域書式化コマンドは指定されたように例を字下げします.)


Node:End of Header, Previous:exampleindent, Up:Header

ヘッダの終り

ヘッダ行に,end-of-headerを続けてください.end-of-headerは以下のとおり です.

@c %**end of header

start-of-headerとend-of-header行の間に,@setchapternewpageコマンド を含める場合,TeXは,コマンドで指定したように領域を植字します.同様に, start-of-headerとend-of-header行の間に,@smallbookコマンドを含める 場合,TeXは"小さな"本の書式で領域を植字します.


Node:Info Summary and Permissions, Next:, Previous:Header, Up:Beginning a File

Infoの著作権許可の概要

タイトルページと著作権ページは,マニュアルの印刷されたコピーにのみ現れます. それゆえ,同じ情報をInfoファイルにのみ現れるセクションに挿入する必要があり ます.このセクションは,通常,Infoファイルの内容の短い記述,著作権の注意と, 著作権の許可を含みます.

著作権の注意は読むべきです.

Copyright year copyright-owner

そして,それは単独にします.

著作権の許可のための標準テキストは,このマニュアルの付録に含まれています. 完全なテキストは,ifinfo Copying Permissions,を参照してください.

許可のテキストは,Infoファイルの最初のノードのに現れます.これは, アドバンスドInfoコマンドg *を使うとき以外,Infoを使うファイルを読む とき,読者がこのテキストを読まないことを意味します.


Node:Titlepage & Copyright Page, Next:, Previous:Info Summary and Permissions, Up:Beginning a File

タイトルと著作権ページ

マニュアルの名前と著作者は,通常はタイトルページに印刷されます.著作権情報 も同様に,タイトルページに印刷されることもあります.ほとんどの場合,著作権 情報は,タイトルページの裏に印刷されます.

タイトルと著作権ページは印刷されたマニュアルでは現れますが,Infoファイルに は現れません.このため,Infoファイルで使えない,分かりにくいTeX植字コマ ンドを,僅かですが使うことができます.さらに,Texinfoファイルの始めのこの 部分は,印刷されたマニュアルに現れる著作権の許可のテキストを含みます.

プレーンテキスト出力のため,タイトルページのような情報を含めたい場合もあり ます.単純に,@ifinfo@end ifinfoの間に,そのような導入材 料を置いてください.makeinfoは,これをプレーンテキスト出力に含め ます.Infoリーダーでは表示されません.

著作権許可の標準テキストは,See Titlepage Copying Permissions.


Node:titlepage, Next:, Previous:Titlepage & Copyright Page, Up:Titlepage & Copyright Page

@titlepage

タイトルページと,それに続く著作権ページのための材料は, @titlepageのみの行で始め,@end titlepageのみの行で終ります.

@end titlepageコマンドは,新しいページを始め,ページ番号付けを開始 します.(ページ見出し生成の詳細は,See Page Headings.) 番 号付けされないページにしたいものは, @titlepage@end titlepageコマンドの間に置きます.@setcontentsaftertitlepageコマン ドで,目次をそこに現すことができます(see Contents).

@pageコマンドを使うと,@titlepage@end titlepageコマンドで線引きをした領域で改ページでき,1ページ以上のページ付 けされないものが作成できます.これは,著作権ページを作成する方法です. (@titlepageコマンドは,おそらく@titleandadditionalpagesと 名付けた方がいいのですが,それは長すぎます!)

コンピュータプログラムのマニュアルを書くとき,マニュアルが適合するプログ ラムのバージョンをタイトルページに書くべきです.マニュアルが,プログラム より変更頻度が高い,または,プログラムに依存しない場合,マニュアルのエディ ション番号7含めるべきです. これは,マニュアルがどのプログラムのバージョンに対するものかを,読者が追 跡する助けとなります.(`Top'ノードは,この情報も含みます.@top,を参照してください.)

Texinfoは,タイトルページを作るため,2つの主な方法を提供します.1つの方法 は,@titlefont@spと,@centerコマンドを,ページの 単語をセンタリングした,タイトルページを生成するために使います.

2番目の方法は,@title@subtitleと,@authorコマン ドを,タイトルの下に黒い罫線をつけてタイトルページを作り,著作者の行とサブ タイトルテキストをページで右寄せするために使います.この方法を使うと,タイ トルページの実際の書式化を何も指定しません.テキストを望み通りに指定し, Texinfoは書式化を行います.

どちらかの方法,または,両方組み合わせて使うことができます.以下のセクショ ンでサンプルを参照してください.

非常に簡単なアプリケーションのためと,伝統的な本の前部の規格外のタイトルペー ジのため,Texinfoはタイトルを単一の引数とする@shorttitlepageコマン ドも供給しています.引数は,ページにそれだけを植字し,次は空白のページにな ります.


Node:titlefont center sp, Next:, Previous:titlepage, Up:Titlepage & Copyright Page

@titlefont@centerと,@sp

印刷されたドキュメントに対しタイトルページを作るため,@titlefont@spと,@centerコマンドを使うことができます.(これは, Texinfoのタイトルページを作る,二つの方法の内の最初のものです.)

タイトル自身に適した大きなフォントを選択するため,@titlefontコマン ドを使ってください.特に長いタイトルがある場合,1度以上 @titlefontを使うことができます.

例えば,以下のようにします.

@titlefont{Texinfo}

残りのテキストを行の中心に置くため,行の最初で@centerコマンドを使っ てください.こうして,以下のようになります.

@center @titlefont{Texinfo}

例では,タイトル"Texinfo"はセンタリングされ,タイトルフォントで印刷され ます.

縦の空白を挿入するため,@spコマンドを使ってください.例えば,以下 のようにします.

@sp 2

これは,印刷されたページに2行の空白行を挿入します.(@spコマンドの 詳細は,See @sp.)

この手法のテンプレートは,以下のようになります.

@titlepage
@sp 10
@center @titlefont{name-of-manual-when-printed}
@sp 2
@center subtitle-if-any
@sp 2
@center author
...
@end titlepage

例の空白は,8.5x11インチのマニュアルに適しています.


Node:title subtitle author, Next:, Previous:titlefont center sp, Up:Titlepage & Copyright Page

@title@subtitleと,@author

垂直と水平方向に,自動的に空白を置いたタイトルページを作るため, @title@subtitleと,@authorコマンドを使うことがで きます.これは前のセクションの記述とは異なり,@spコマンドは,垂直 方向の空白調整に必要です.

@title@subtitleと,@authorコマンドを行の最初に, タイトル,サブタイトルや,著作者を続けて書いてください.

@titleコマンドは,ページの左側に通常より大きいフォントでタイトルを セットした行を生成します.タイトルは黒い罫線の下線があります.1行のみ可能 です.@*コマンドを,タイトルを2行に分けるために使ってはいけません. 非常に長いタイトルを扱うため,@title@titlefontの両方を使っ た方が便利だと分かるかもしれません.このセクションの最後の例を参照してくだ さい.

@subtitleコマンドは,通常の大きさのフォントで,ページの右側にサブ タイトルをセットします.

@authorコマンドは,著作者(達)の名前を,中間の大きさのフォントで, ページの左側に,タイトルページの下の近くの行にセットします.名前は,タイト ルの下線より細い黒い罫線の下線があります.(黒い罫線は,@authorコマ ンド行に,@pageコマンド行が続く場合に生じます.)

@authorコマンドを使うため2つの方法があります.@authorコマ ンドで始まった行の残りの部分に,名前(達)を書くことができます.

@author by Jane Smith and John Doe

または,2つ(またはそれ以上)のそれぞれの前に@authorを使って,名前を 書くことができます.

@author Jane Smith
@author John Doe

(下の名前のみ,黒い罫線の下線がつきます.)

この方法のテンプレートは,以下のようになります.

@titlepage
@title name-of-manual-when-printed
@subtitle subtitle-if-any
@subtitle second-subtitle
@author author
@page
...
@end titlepage

前のセクションで記述された@titlefontの方法と,ここで記述されている @titleの方法を組み合わせることもできます.これは,長いタイトルの場 合便利です.ここに,現実的な例があります.

@titlepage
@titlefont{GNU Software}
@sp 1
@title for MS-Windows and MS-DOS
@subtitle Edition @value{edition} for Release @value{cd-edition}
@author by Daniel Hagerty, Melissa Weisshaus
@author and Eli Zaretskii

(ここでの@valueの使用は,@value Example,で述べられています.)


Node:Copyright & Permissions, Next:, Previous:title subtitle author, Up:Titlepage & Copyright Page

著作権ページと許可

国際的な条約で,本の著作権の注意は,タイトルページかタイトルページの裏にす るべきです.著作権の注意は,年と,それに続いて,著作権を所有する組織か人の 名前を含めるべきです.

著作権の注意がタイトルページの裏にあるとき,そのページは慣習的に,番号付け されません.それゆえ,Texinfoでは,著作権ページの情報は, @titlepage@end titlepageコマンドの間にすべきです.

@pageコマンドを,改ページに使用してください.著作権の注意と著作権 ページの他のテキストがページの下になるように,@pageコマンドの後に, 幾分奇妙な行を書くことができ,以下のようにします.

@vskip 0pt plus 1filll

これは,Info書式化コマンドがサポートしていないTeXコマンドです. @vskipコマンドは空白を挿入します.0pt plus 1filllは,0ポイ ントの必須の空白を置き,以下のテキストを,ページの下に置くのに必要な追加の 空白を置くことを意味します.filllの3つのlを使うことに注意し てください.これは,TeXでは正しい使い方です.

印刷されたマニュアルでは,@copyright{}コマンドは,円の中の cを生成します.(Infoでは,(C)を生成します.)著作権の注意は, 以下の合法的に定義された順番があります.

Copyright © year copyright-owner

著作権の注意の後でマニュアルの取得方法の情報を置くことは慣習的で,続けてマ ニュアルの著作権の許可を置きます.

許可は,ヘッダに続けた@ifinfo@end ifinfoでの概要部分と同 じものを,ここで与える必要があり,それは,このテキストは印刷されたマニュア ルでのみ現れ,ifinfoテキストはInfoファイルでのみ現れるためです.

標準的なテキストは,See Sample Permissions.


Node:end titlepage, Next:, Previous:Copyright & Permissions, Up:Titlepage & Copyright Page

見出しの生成

単独行の@end titlepageコマンドは,タイトルと著作権のページの終りを マークするだけでなく,TeXにページ見出しとページ番号の生成を開始させます.

他で述べた繰り返しですが,Texinfoは,2つの標準ページ見出しの書式があり, 1つは,紙のそれぞれの片側に印刷されたドキュメント(片面印刷)のためで,もう 1つは,それぞれの用紙の両側に印刷されたドキュメント(両面印刷)のためです. (See @setchapternewpage.)これらの書式化を, 異なる方法で指定できます.

ほとんどのドキュメントは標準的な片面または両面の書式で書式化され,両面印刷 のため@setchapternewpage oddを使い,片面印刷のため @setchapternewpageコマンドを使いません.


Node:headings on off, Previous:end titlepage, Up:Titlepage & Copyright Page

@headingsコマンド

@headingsコマンドは,滅多に使われません.それは,それぞれのページ に印刷するページ見出しとフッタの種類を指定します.通常,これは, @setchapternewpageコマンドで制御されます. @setchapternewpageコマンドが望まないことをしたり,独自の定義の前に 前もって定義されているページ見出しを止める場合のみ,@headingsコマ ンドが必要です.@headingsコマンドを,@end titlepageコマン ドの直後に書いてください.

以下のように,@headingsを使うことができます.

@headings off
ページ見出しの印刷を停止します.
@headings single
片面印刷に適したページ見出しを開始します.
@headings double
@headings on
両面印刷に適したページ見出しを開始します.2つのコマンド, @headings on@headings doubleは同意語です.
@headings singleafter
@headings doubleafter
現在のページを出力した後,それぞれ,singleまたはdouble見出 しを開始します.
@headings on
ページ見出しを開始します.@setchapternewpage onの場合は singleで,それ以外ではdoubleです.

例えば,前の章の終りに続けて同じページで新しい章を開始するようTeXに伝え るための@titlepageコマンドの前に,@setchapternewpage offを 書く場合を考えます.また,このコマンドは,片面印刷のページヘッダをTeXに 植字させます.両面印刷でTeXに植字させるため,@end titlepageコマ ンドの後に@headings doubleを書いてください.

@end titlepageコマンドを含む行の直後に,単独行の@headings offを書くことで,TeXのページ見出しの生成を停止できます.

@end titlepage
@headings off

@headings offコマンドは,@end titlepageコマンドに優先し, それ以外の場合は,TeXにページ見出しを印刷させます.

ページ見出しとフッタの独自のスタイルの指定もできます.詳細は, See Page Headings.


Node:The Top Node, Next:, Previous:Titlepage & Copyright Page, Up:Beginning a File

`Top'ノードとマスターメニュー

`Top'ノードは,Infoファイルの入口のノードです.

`Top'ノードは,Infoファイルの短い記述と,Infoファイル全体の大規模なマスター メニューを含むべきです.これは,読者がInfoファイルが何について書いてあるの かを理解する助けとなります.また,Infoファイルが適応するプログラムのバージョ ンナンバーを書くべきです.または,少なくともエディションナンバーを書くべき です.

`Top'ノードの内容は,Infoファイルでのみ現れます.@ifinfo@end ifinfoコマンドで囲まれているので,印刷された出力物では何も現 れません.(TeXは@node行もメニューも印刷しません.Infoでのみ現れ ます.厳密には,@ifinfo@end ifinfoでこれらの部分を囲む必 要はありませんが,そうするのが最も簡単です.See Conditionally Visible Text.)


Node:Title of Top Node, Next:, Up:The Top Node

`Top'ノードのタイトル

@node Top行の直後のドキュメントの,タイトルを含む@topセク ションコマンド行を,置きたい場合もあります(詳細は,see The @top Sectioning Command).

例えば,このマニュアルの`Top'ノードの始めは,@topセクションコマン ド,短い記述と,エディションとバージョン情報を含んでいます.それは,以下の ようになっています.

...
@end titlepage

@ifnottex
@node Top, Copying, , (dir)
@top Texinfo

Texinfoは,ドキュメントシステムで...

これは,エディション...

...
@end ifnottex

@menu
* Copying::                 Texinfo is freely
                              redistributable.
* Overview::                What is Texinfo?
...
@end menu

`Top'ノードで,`Previous'と`Up'ノードは,通常Infoシステム全体のトップレベ ルのディレクトリを参照し,それは,(dir)と呼ばれます.`Next'ノードは, それに続くメインまたはマスターメニューの最初のノードを参照し,それは,通常 著作権の許可,はじめにや,第1章です.


Node:Master Menu Parts, Previous:Title of Top Node, Up:The Top Node

マスターメニュー部

マスターメニューは,ファイル全体のノードをリストアップする詳細なメイ ンメニューです.

マスターメニューは,@menu@end menuコマンドで囲まれていて, 印刷されたドキュメントには現れません.

一般に,マスターメニューはいくつかの部分に分かれています.

メニューのそれぞれのセクションは,記述行で紹介されています.そのため,アス タリスクで始まらない程長い行は,メニュー項目として扱われません.(詳細は, See Writing a Menu.)

例えば,このマニュアルのマスターメニューは,以下のようになっています(もっ と多くの項目がありますが.)

@menu
* Copying::             Texinfo is freely
                          redistributable.
* Overview::            What is Texinfo?
* Texinfo Mode::        Special features in GNU Emacs.
...
...
* Command and Variable Index::
                        An entry for each @-command.
* Concept Index::       An entry for each concept.

@detailmenu
 --- The Detailed Node Listing ---

Overview of Texinfo

* Info Files::          What is an Info file?
* Printed Manuals::     Characteristics of
                          a printed manual.
...
...

Using Texinfo Mode

* Info on a Region::    Formatting part of a file
                          for Info.
...
...
@end detailmenu
@end menu


Node:Software Copying Permissions, Previous:The Top Node, Up:Beginning a File

ソフトウェアコピーの許可

Texinfoファイルが,"General Public License"と,文章化されたソフトウェア に対する配布情報と免責を含むセクションがある場合,このセクションは,通常 `Top'ノードに続きます.General Public Licenseは,Project GNUのソフトウェア にとって,非常に重要です.それは,万人に対するソフトウェアの使用と共有の維 持を保証します.

コピーと配布の情報と,免責には,はじめにやマニュアルの最初の章が続きます.

はじめには,Texinfoの必須部分ではありませんが,大変役に立ちます.理想的に は,それはファイルが何に関係するするのか,誰が興味を持って読むのかを,明白 に簡潔に述べるべきです.ドキュメントの最初の方に置く人もいますが,一般に, はじめににはライセンスと情報の記述が続きます.通常,はじめには, @unnumberedセクションに置きます.(See The @unnumbered and @appendix Commands.)


Node:Ending a File, Next:, Previous:Beginning a File, Up:Top

Texinfoファイルを終える

Texinfoファイルの終りは,索引を作るコマンドと,(通常)詳細と概要の目次を生 成するコマンドを含むべきです.そしてそれは,TeXが処理する最後の行を示す, @byeコマンドを含む必要があります.

例えば,以下のようにします.

@node    Concept Index,     , Variables Index, Top
@c        node-name,    next, previous,        up
@unnumbered Concept Index

@printindex cp

@contents
@bye


Node:Printing Indices & Menus, Next:, Previous:Ending a File, Up:Ending a File

索引メニューと索引の印刷

索引を印刷することは,マニュアルやInfoファイルの一部として,それを含むこと です.これは,@cindexや,その他の索引項目を生成するコマンドを, Texinfoファイルで使っているので,自動的に発生しません.それらは,索引のた め生データを蓄積します.索引を生成するため,@printindexコマンドを, ドキュメントの索引を置きたい場所に含める必要があります.同様に,印刷された マニュアルを作成する過程でソートされた索引ファイルを生成する際,生データを ソートするため,texindexと呼ばれるプログラム(see Hardcopy)を実 行する必要があります.ソートされた索引ファイルは,索引の印刷で実際に使われ ます.

Texinfoは,6つの異なるタイプの前もって定義された索引を提供し,それは,コン セプト索引,関数索引,変数索引,キーストローク索引,プログラム索引と,デー タ型索引です(see Predefined Indices).それぞれの索引は2文字の名前があ り,それらは,cpfnvrkypgと, tpです.索引を併合したり,セクションに分けたり(see Combining Indices)できます.また,独自の索引を定義できます(see Defining New Indices).

@printindexコマンドは,2文字の索引名をとり,対応するソートされた索 引ファイルを読み,索引内に適切に書式化します.

@printindexコマンドは,索引の章の見出しを生成しません.したがって, 適切な@printindexコマンドを,章の見出しの供給と索引を目次に含める ため,セクションや章コマンド(通常@unnumbered)の前に置くべきです. @unnumberedコマンドを@node行の前に置いてください.

例えば,以下のようにします.

@node Variable Index, Concept Index, Function Index, Top
@comment    node-name,         next,       previous, up
@unnumbered Variable Index

@printindex vr

@node     Concept Index,     , Variable Index, Top
@comment      node-name, next,       previous, up
@unnumbered Concept Index

@printindex cp

読者は,見つけやすいので,コンセプト索引が本の最後にあることを望みます. 1つの索引のみ持つことも,見る場所が1つだけなので,助かります (see synindex).


Node:Contents, Next:, Previous:Printing Indices & Menus, Up:Ending a File

目次の生成

@chapter@sectionとその他の構造化コマンドは,目次を作る情 報を供給しますが,実際の表をマニュアルに現しません.こうするため, @contentsと/や,@summarycontentsコマンドを使う必要がありま す.

@contents
印刷されたマニュアルに目次を生成し,それは,全ての章,セクション,サブセク ションなど,付録や番号付けされない章まで含みます.(@headingと同列 のコマンドで生成された見出しは,目次に現れません.)
@shortcontents
@summarycontents
(@summarycontentsは,@shortcontentsと同義語で,2つのコ マンドは,全く同じです.)

章(と,付録と番号付けされない章)のみをリストアップした,短い,または,概要 の目次を生成します.セクション,サブセクションと,サブサブセクションは削除 されます.長いマニュアルのみ,完全な目次への追加で短い目次が必要です.

どちらの目次コマンドも,単独行に書くべきです.目次コマンドは,自動的に章の ような見出しを,最初の目次ページのトップに生成し,そのため,その前に @unnumberedのようなセクションコマンドを含まないでください.

Infoファイルは目次の代わりにメニューを使うので,Indo書式化コマンドは,目次 コマンドを無視します.しかし,目次は(makeinfo --no-headersで生成さ れる)プレーンテキスト出力に含まれます.

目次コマンドは,ファイルの最後で,索引(前のセクションを参照してください)の 後の@bye(次のセクションを参照してください)の直前,または,ファイル の最初で,@end titlepage(see titlepage)の後に置かれます.前者 の利点は,目次出力が常に更新されることで,それは,行われた処理を参照するた めです.後者の利点は,目次が適切な場所に印刷されることで,DVIファイルを dviselectで再配列したり,紙をかき回す必要がありません.しかし, ドキュメントの最初の目次コマンドは,標準出力に出力するとき無視されます.

著者としては,目次コマンドを好きなところに置くことができます.しかし,単に マニュアルを印刷するユーザーは,たとえ著者が目次コマンドをドキュメントの最 後に置いている場合でも,(ほとんどのTexinfoドキュメントと同じように)目次を タイトルページの後に置きたいと思うかもしれません.これは, @setcontentsaftertitlepageと/や, @setshortcontentsaftertitlepageで指定することができます.最初のも のは,@end titlepageの後に主な目次のみを印刷します.2番目のものは, 短い目次と主な目次の両方を印刷します.どちらの場合でも,それに続く @contents@shortcontentsは,(@end titlepageがない 場合は)無視されます(@end titlepage

@set...contentsaftertitlepageを,ドキュメントの最初の方(例えば @setfilenameの直後)に含める必要があります.または, texi2dvi(see Format with texi2dvi)を使う場合, --texinfoオプションを,ソースファイルの変更無しで指定することがで きます.例えば,以下のようにします.

texi2dvi --texinfo=@setshortcontentsaftertitlepage foo.texi


Node:File End, Previous:Contents, Up:Ending a File

ファイルの終りの@bye

@byeコマンドは,TeXやInfoの書式化を終了します.ファイルの @bye以下には,書式化コマンドは全くありません.@byeは,単 独行にすべきです.

お望みなら,@bye行にメモを続けることができます.これらのメモは書式 化されず,Infoや印刷されたマニュアルに現れません.それは,@bye後の テキストが@ignore...@end ignoreにあるかのようです.同 様に,@bye行に,ローカルな変数リストを続けることもできます.詳細は, See Using Local Variables and the Compile Command.


Node:Structuring, Next:, Previous:Ending a File, Up:Top

章の構造

章の構造化コマンドは,ドキュメントを,章,セクション,サブセクション と,サブサブセクションの階層構造に分けます.これらのコマンドは,大きな見出 しを生成します.それらは,印刷されたマニュアルの目次の情報も供給します (see Generating a Table of Contents).

章の構造化コマンドはInfoノード構造を作成しないので,通常は@nodeコ マンドを,それぞれの章の構造化コマンドの直前に置くべきです (see Nodes).ノード構造化コマンドを使わず,章の構造化コマンドを使うの は,おそらく,相互参照を含まないドキュメントや,Info形式に変換しないドキュ メントを書く場合だけでしょう.

印刷可能なドキュメントではなく,InfoファイルためだけにTexinfoファイルを書 くことは,おそらくないでしょう.そうする場合でも,章の構造化コマンドをそれ ぞれのノードの見出しを作るために--不要ですが--書くことができます.


Node:Tree Structuring, Next:, Up:Structuring

セクションのツリー構造

Texinfoファイルは,通常,章,セクション,サブセクションと,そのようなもの を持つ,本のような構造をしています.この構造は,上に根があり,レベルに対応 した,章,セクション,サブセクションと,サブサブセクションを持つ,木(また は,さかさまの木)のように見えます.

ここに,それぞれ2つのセクションを持つ章が3つある,Texinfoファイルの図があ ります.

                                  Top
                                   |
             ---------------------------------------------
            |                      |                      |
           1 章                   2 章                   3 章
            |                      |                      |
       -----------            -----------            -----------
      |           |          |           |          |           |
 セクション  セクション セクション  セクション セクション  セクション
     1.1         1.2        2.1         2.2        3.1         3.2

この構造を持つTexinfoファイルで,2章は次のようにはじめます.

@node    Chapter 2,  Chapter 3, Chapter 1, top
@chapter Chapter 2

章の構造化コマンドは,以下のセクションで述べています.@node@menuコマンドは,以下の章で述べています.(See Nodes. そして, Menus,を参照してください.)


Node:Structuring Command Types, Next:, Previous:Tree Structuring, Up:Structuring

構造化コマンドの型

章を構造化するコマンドは,4つのグループ,またはシリーズに分類され,それぞ れは,章,セクション,サブセクションと,サブサブセクションの階層レベルに対 応する,構造化コマンドを含みます.

4つのグループは,@chapterシリーズ,@unnumberedシリーズ, @appendixシリーズと,@headingシリーズです.

それぞれのコマンドは,印刷されたページやInfoファイルで,異なるタイトルを生 成します.いくつかのコマンドのみ,印刷された本やマニュアルの目次でリストアッ プされるタイトルを持ちます.

ここに,4つの章の構造化コマンドのグループがあります.

改ページ 改ページ無し
番号付き 番号無し 文字と番号 番号無し
目次にある 目次にある 目次にある 目次にない
@top @majorheading
@chapter @unnumbered @appendix @chapheading
@section @unnumberedsec @appendixsec @heading
@subsection @unnumberedsubsec @appendixsubsec @subheading
@subsubsection @unnumberedsubsubsec @appendixsubsubsec @subsubheading


Node:makeinfo top, Next:, Previous:Structuring Command Types, Up:Structuring

@top

@topコマンドは,Texinfoファイルの最初で,@node Top行の後 に使っている特別なセクションコマンドです.@topコマンドは, makeinfoフォーマッタに`Top'ノードを伝え,マニュアルが暗黙のポイン タを使う場合,それはノードツリーの根として使うことができます. @unnumbered(see @unnumbered and @appendix)の植字効果と同じです.詳細は,The @top Command,を参照してください.

@topノードとそのメニュー(がある場合)は,InfoとHTML出力のみで現れ, TeXで現れないようにするため,慣習で,@ifnottex環境になります.


Node:chapter, Next:, Previous:makeinfo top, Up:Structuring

@chapter

@chapterは,ドキュメントの章を識別します.行の最初にコマンドを,同 じ行に続けて章のタイトルを書いてください.

例えば,このマニュアルのこの章は,"章の構造(Chapter Structuring)"という 項目です.@chapter行は以下のようになります.

@chapter 章の構造(Chapter Structuring)

TeXでは,@chapterコマンドはドキュメントに章を作成し,章のタイト ルを指定します.章は,自動的に番号付けされます.

Infoでは,@chapterコマンドは,タイトルを単独行に現し,行の下にはア スタリスクの挿入があります.このように,Infoで上の例は,以下の出力を生成し ます.

章の構造(Chapter Structuring)
*****************************

Texinfoは,コマンド@centerchapも供給し,それは @unnumberedに似ていますが,印刷された出力物でその引数をセンタリン グします.この種の形式上の選択は,通常Texinfoでは提案されません.


Node:unnumbered & appendix, Next:, Previous:chapter, Up:Structuring

@unnumbered@appendix

@unnumberedコマンドを,印刷されたマニュアルであらゆる種類の数字が 付かない章を作成するために使用してください.@appendixコマンドを, 印刷されたマニュアルで数字の代わりに文字でラベルが付く付録を作成するために 使用してください.

Infoファイル出力に対し,@unnumbered@appendixコマンドは, @chapterを同じです.タイトルは単独行で印刷され,下にアスタリスクの 行が付きます.(See @chapter.)

付録や番号を付けない章を作成するため,章の作成と同様に, @appendix@unnumberedコマンドを行の最初から書き,同じ行に タイトルを続けてください.


Node:majorheading & chapheading, Next:, Previous:unnumbered & appendix, Up:Structuring

@majorheading@chapheading

@majorheading@chapheadingコマンドは,ドキュメントの本体 に章のような見出しを置きます.

しかし,いずれのコマンドも,TeXに番号付の見出しや目次項目を生成させませ ん.また,どちらのコマンドも,TeXに印刷されたマニュアルで新しいページを 開始させません.

TeXでは,@majorheadingコマンドは,@chapheadingコマンド が生成するより大きな縦方向の空白を生成します.

Infoでは,@majorheading@chapheadingコマンドは @chapterと同じで,下にアスタリスクの行が付いた単独行に,タイトルを 出力します.(See @chapter.)


Node:section, Next:, Previous:majorheading & chapheading, Up:Structuring

@section

印刷されたマニュアルでは,@sectionコマンドは,章の中の番号付のセク ションとなります.セクションのタイトルは目次に現われます.Infoでは, @sectionコマンドは,=で下線を引かれたテキストをタイトルとし て提供します.

このセクションは,@sectionコマンドが前置され,Texinfoファイルで は以下のように見えます.

@section @code{@@section}

セクションを作るため,@sectionコマンドを行の最初に書き,同じ行に セクションのタイトルを続けてください.

以下のようにします.

@section This is a section

以下を生成します.

This is a section
=================

以上はInfoで,生成されます.


Node:unnumberedsec appendixsec heading, Next:, Previous:section, Up:Structuring

@unnumberedsec@appendixsec@heading

@unnumberedsec@appendixsec@headingコマンドは, それぞれ,@sectionコマンドの,番号無し,付録と,見出しのようなもの と同じです.(See @section.)

@unnumberedsec
@unnumberedsecコマンドは,番号無しの章の中や,通常の章や付録の中で, 番号無しのセクションを供給するために使用できます.
@appendixsec
@appendixsection
@appendixsectionは,@appendixsecコマンドの長い綴です.2つ は同じです.

慣習的に,@appendixsec@appendixsectionコマンドは,付録で のみ使用します.

@heading
@headingコマンドは,章の形式の見出しで目次に現われないもののため, 希望の場所で,どこでも使用できます.


Node:subsection, Next:, Previous:unnumberedsec appendixsec heading, Up:Structuring

@subsectionコマンド

サブセクションとセクションの関係は,セクションと章の関係のようなものです. (See @section.)Infoで,サブセクションのタイトルは, -で下線が引かれます.例えば,以下のようになります.

@subsection これはサブセクションです.

以下を生成します.

これはサブセクションです.
--------------------

印刷されたマニュアルでは,サブセクションは目次にリストアップされ,3レベル の深さで番号が付きます.


Node:unnumberedsubsec appendixsubsec subheading, Next:, Previous:subsection, Up:Structuring

@subsectionのようなコマンド

@unnumberedsubsec@appendixsubsecと, @subheadingコマンドは,それぞれ,@subsectionコマンドの,番 号無し,付録と,見出しのようなものと同じです.(See @subsection.)

Infoでは,@subsectionのようなコマンドは,ハイフンで下線が引かれた タイトルを生成します.印刷されたマニュアルでは,@subheadingコマン ドは,番号無しのものと目次に現われないもの以外,サブセクションのような見出 しを生成します.同様に,@unnumberedsubsecコマンドは,サブセクショ ンに似た,番号がない見出しを生成し,@appendixsubsecコマンドは,文 字と数字でラベルが付いたサブセクションのような見出しを生成します.これらの コマンドは,両方とも目次に現われる見出しを生成します.


Node:subsubsection, Next:, Previous:unnumberedsubsec appendixsubsec subheading, Up:Structuring

`subsub'コマンド

Texinfoでの4番目以下のレベルのセクションコマンドは,`subsub'コマンドです. 以下のものがあります.

@subsubsection
サブサブセクションとサブセクションの関係は,サブセクションとセクションの関 係のようなものです.(See @subsection.)印刷された マニュアルで,サブサブセクションのタイトルは目次に現われ,4番目の深さのレ ベルで番号を付けられます.
@unnumberedsubsubsec
番号付けされていないサブサブセクションのタイトルは,印刷されたマニュアルの 目次に現われますが,番号はありません.それ以外で,番号付けされていないサブ サブセクションはサブサブセクションと同じです.Infoでは,番号付けされていな いサブサブセクションは,実際に,普通のサブサブセクションのように見えます.
@appendixsubsubsec
慣習的に,付録コマンドは付録のためのみに使用され,印刷されたマニュアルで, 文字と番号が適切に付けられます.それらは目次にも現われます.Infoでは,付録 のサブサブセクションは,実際に,普通のサブサブセクションのように見えます.
@subsubheading
@subsubheadingコマンドは,目次に現われない小さい見出しが必要なあら ゆる場所で使用できます.Infoで,サブサブ見出しは,実際に,普通のサブサブセ クションの見出しのように見えます.

In Info, `subsub' titles are underlined with periods. For example,

Infoでは,`subsub'タイトルはピリオドで下線が引かれます.例えば,以下のよう にします.

@subsubsection これはサブサブセクションです.

以下を生成します.

これはサブサブセクションです.
.......................


Node:Raise/lower sections, Previous:subsubsection, Up:Structuring

@raisesections@lowersections

@raisesections@lowersectionsコマンドは,章,セクション, サブセクションのようなものの,階層的レベルをあげたり下げたりします. @raisesectionsコマンドは,セクションを章,サブセクションをセクショ ンなどのように変更します.@lowersectionsコマンドは,章をセクション, セクションをサブセクションなどのように,変更します.

他のTexinfoファイルの内部ファイルやインクルードファイルとなる,外部や単独 のTexinfoファイルとして書かれているテキストを含める場合, @lowersectionsコマンドは役に立ちます.ファイルの最初にコマンドを書 くと,すべての@chapterコマンドは@sectionコマンドであるかの ように書式化され,すべての@sectionコマンドは@subsectionコ マンドであるかのように書式化される等となります.

@raisesectionsは,章の構造階層でコマンドを1レベルあげます.

  Change           To

@subsection     @section,
@section        @chapter,
@heading        @chapheading,
          etc.

@lowersectionsは,章の構造階層でコマンドを1レベル下げます.

  Change           To

@chapter        @section,
@subsection     @subsubsection,
@heading        @subheading,
          etc.

@raisesections@lowersectionsコマンドは,Texinfoファイル の,それ以降の章の構造化コマンドのみを変更します.@raisesections@lowersectionsコマンドは,単独行に書いてください.

@lowersectionsコマンドは,@raisesectionsコマンドでキャンセ ルされ,逆も同様です.典型的に,コマンドは以下のように使用します.

@lowersections
@include somefile.texi
@raisesections

@raisesectionsコマンドが無い場合,ドキュメントのそれ以降全てのセク ションは,レベルが下がります.

コマンドの繰り返しの使用で,階層レベルは一度に1ステップづつ,上がるか下が るかし続けます.

`章'を上に上げようとすると,章コマンドを再生成します.`サブサブセクション 'を下に下げようとすると,サブサブセクションコマンドを再生成します.


Node:Nodes, Next:, Previous:Structuring, Up:Top

ノード

ノードは,Texinfoファイルの主要な部分です.それらは,それ自身が階層 的ではなく,ファイル構造でもありません.ノードは,他のノードの名前を持つ ノードポインタを含み,ノードをリストアップしているメニューを含 めることもできます.Infoでは,移動コマンドで,指示されたノードやメニューの ノードリストへ移動することができます.ノードポインタとメニューは,Infoファ イルに,章,セクション,サブセクション等のような構造を供給し,それらは,印 刷された本に構造を供給しているものです.


Node:Two Paths, Next:, Up:Nodes

2つのパス

ノードとメニューコマンドと,章の構造化コマンドは,専門的にはお互い独立して います.

ノードポインタとメニューを,Infoファイルを好きなように構造化するために使用 することができます.Texinfoファイルで,Info出力が印刷された出力と異なるよ うに書くこともできます.しかし,ほとんど全てのTexinfoファイルは,Info出力 の構造が印刷された出力の構造に対応するように書かれています.そうしなければ, 読者は不便で理解不能になります.

一般に,印刷された出力は,章が主要な大枝で,そこからセクションが枝を出して いる木のような階層構造です.同様に,ノードポインタとメニューは,Info出力で 一致する構造を作成するように組織化されています.


Node:Node Menu Illustration, Next:, Previous:Two Paths, Up:Nodes

ノードとメニューの図

ここに,前で示した,章が3つでそれぞれが2つのセクションを含むTexinfoファ イル図の,コピーがあります.

"root"は図の最上部で,"leaves"が最下部です.これはそのような図を書く慣 習的な方法です.それは,さかさまの木を描きます.このため,ルートノードは `Top'ノードと呼ばれ,`Up'ノードはルートに近い方向へ導きます.

                                  Top
                                   |
             ---------------------------------------------
            |                      |                      |
           1 章                   2 章                   3 章
            |                      |                      |
       -----------            -----------            -----------
      |           |          |           |          |           |
 セクション  セクション セクション  セクション セクション  セクション
     1.1         1.2        2.1         2.2        3.1         3.2

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 makeinfo Pointer Creation),これらのノード名を書くことを省略でき ますが,ポインタの関係は得られます.

注意してください:`Next'は,マニュアルで同じ階層レベルの次のノード を参照し,それは,Texinfoファイル内での次のノードである必要はありません. Texinfoファイルでは,次のノードは下のレベルかもしれず,例えば,セクション レベルノードは,章レベルのノードに続くことが多くあります.`Next'と `Previous'は,同じ階層レベルのノードを参照します.(`Top'ノードはこ の規則の例外です.`Top'ノードはそのレベルでの唯一のノードなので,`Next'は, 以下にある最初のノードを参照し,それは通常,章や章レベルのノードです. )

Infoを使って,セクション2.1と2.2に行くため,2章の内部にメニューが必要です. (See Menus.)以下のように,セクション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'に近い方向です). (相互参照は,あらゆるレベルのノードを指し示します.Cross References,を参照してください.)

通常,@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, Next:, Previous:Node Menu Illustration, Up:Nodes

@nodeコマンド

ノード@nodeコマンドで始まり,次の@nodeコマンドまで 続くテキストの部分です.ノードの定義は章やセクションと異なります.章はセク ションを含ことができ,セクションはサブセクションを含むことができます.しか し,ノードはサブノードを含みません.ノードのテキストは,ファイルの次の @nodeコマンドまで続くだけです.ノードは通常,章の構造化コマンドを 1つだけ含み,それは@node行に続けます.一方,印刷された出力で,ノー ドはクロスリファレンスとしてのみ使用され,そして,章やセクションはノード番 号を含むことができます.実際,章は通常,それぞれのセクション,サブセクショ ンと,サブサブセクションとなる,複数のノードを含みます.

ノードを作成するため,@nodeコマンドを行の最初に書き,コンマで分け た4つの引数を,同じ行の残りの部分に続けてください.最初の引数は必要です. それはノードの名前です.次の引数は,その順番で,`Next',`Previous'と, `Up'ポインタの名前で,Texinfoドキュメントが階層的に組織化されている場合, 省略可能です(see makeinfo Pointer Creation).

好みにより,それぞれの名前の前にスペースを置くこともできます.スペースは無 視されます.ノードの名前と`Next',`Previous'と,`Up'ポインタの名前を,同じ 行に書く必要があります.そうしない場合,書式化は失敗します.(Infoのノード の詳細は,see info.)

通常,章の構造化コマンド行を@nodeの直後に書き,例えば,それは @section@subsectionです.(See Structuring Command Types.)

注意してください:GNU Emacs Texinfoモードの更新コマンドは, @node行が章の構造化コマンドに続いている,Texinfoファイルでのみ働き ます.See Updating Requirements.

TeXは@node行を相互参照で使う名前を識別するために使用します. このため,@node行を,印刷のための書式化を行いたいTexinfoファイル に,たとえInfoで書式化するつもりがなくても書く必要があります.(相互参照 は,この文章の終りにあるようなもので,@xrefとそれに関連するコマ ンドで作成されます.Cross References,を参照してください.)


Node:Node Names, Next:, Up:node

ノードの選択とポインタ名

ノード名はノードの識別子です.ポインタは他のノードに行くことができ,これら のノード名から成り立ちます.

通常ノードの`Up'ポインタは,そのメニューがそのノードを記述しているノード名 を含みます.ノードの`Next'ポインタは,メニューでそのノードの次のノード名を 含み,`Previous'ポインタは,メニューでそのノードの前のノード名を含みます. ノードの`Previous'ノードが`Up'ノードと同じとき,両方のノードは同じノード名 を示します.

通常,Texinfoファイルの最初のノードは`Top'ノードで,その`Up'と`Previous'ポ インタはdirファイルを指し示し,それは,Info全てのメインメニューを含 みます.

`Top'ノード自身は,マニュアルのメインまたはマスターメニューを含みます.ま た,`Top'ノードに簡単なマニュアルの記述を含めると便利です.Texinfoファイル の最初のノードの書き方の詳細は,See First Node.

明示的に全てのポインタを指定したときでも,任意の順番でTexinfoソースファイ ルにノードを書くことができることを意味しません!TeXは,ファイルをノード ポインタにかかわらず,順番に処理するので,印刷された出力物に現したい順番に ノードを書く必要があります.


Node:Writing a Node, Next:, Previous:Node Names, Up:node

@node行の書き方

@node行の最も簡単な書き方は,@nodeを行の最初に書き,その後 ノード名を以下のように書く方法です.

@node node-name

GNU Emacsを使っている場合,ポインタ名を挿入するTexinfoモードで,ノードの 更新コマンドが供給されています.また,ポインタをTexinfoファイルの外に置 き,makeinfoにノードポインタを作成するInfoファイルに挿入させるこ ともできます.(See Texinfo Mode. またmakeinfo Pointer Creation,を参照してください.)

代わりに,`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行を挿入した後,すぐに@-コマンドを章やセクションに対し書き, 名前を挿入するべきです.次に(これが肝心!),いくつかの索引項目を置いてくだ さい.通常,少なくとも2つ置き,索引でノードを参照する方法として,4または 5あることも良くあります.これで,人々がノードをより容易に見つけるようにな ります.


Node:Node Line Tips, Next:, Previous:Writing a Node, Up:node

@node行の助言

ここに3つの提案があります.


Node:Node Line Requirements, Next:, Previous:Node Line Tips, Up:node

@node行の必要事項

ここに,いくつかの@node行の必要事項があります.


Node:First Node, Next:, Previous:Node Line Requirements, Up:node

最初のノード

Texinfoファイルの最初のノードは,インクルードファイルは例外として (see Include Files),トップノードです.トップノードは,ドキュメ ントのメインまたはマスターメニューと,ドキュメントの短い概要を含みます (see Top Node Summary).

トップノードは(topまたはTopと命名する必要があり),`Up'ノード として他のファイルのノード名を持つべきで,それはこのファイルへ導くメニュー があります.カッコでファイルを指定してください.ファイルを直接Infoディレク トリファイルにインストールした場合,(dir)をトップノードの親として使 用してください.これは,(dir)topのための短いもので,dirファ イルでトップノードを指定し,それは,Infoシステム全体のメインメニューを含み ます.例えば,このマニュアルの@node Top行は以下のようになります.

@node Top, Copying, , (dir)

(これらのポインタを自動的に挿入するため,Texinfo更新コマンドや, makeinfoユーティリティを使用することができます.)

ユーザーに対し動作が紛らわしいので,トップノードの`Previous'ノードを (dir)で定義しないでください.トップノードにいて,戻るために <DEL>を押した場合,dirファイルの他の項目の真中に戻り,それは読 みたいものではないはずです.

Infoファイルのinfoディレクトリへのインストールの詳細は, See Install an Info File.


Node:makeinfo top command, Next:, Previous:First Node, Up:node

@topセクションコマンド

特別なセクションコマンド@topは,@node Top行で使用するため に作成されました.@topセクションコマンドは,makeinfoに,そ れがファイルの`Top'ノードだというマークを付けるよう伝えます.それは,ノー ドポインタを自動的に挿入するため,makeinfoが必要とする情報です. @topコマンドを行の最初に書き,直後に@node Top行を続けてく ださい.同じ行の残りの部分に,@topコマンドとして,タイトルを書いて ください.

Infoでは,@topセクションコマンドは,タイトルが単独行に現れるように し,アスタリスクが下に挿入されます.

TeXとtexinfo-format-bufferでは,@topセクションコマンドは, @unnumberedとほとんど同義語です.これらのフォーマッタは, @topコマンドを要求せず,特別なことは何もしません.これらのフォーマッ タを使用するとき,@chapter@unnumbered@node Top行の後に使用することもできます.同様に,@chapter@unnumberedを,ポインタとメニューを作成更新するため,Texinfo更新コ マンドを使うとき使用することもできます.


Node:Top Node Summary, Previous:makeinfo top command, Up:node

`Top'ノードのまとめ

@top行の後で,メインまたはマスターメニューの前に,`Top'ノードの概 要を書くと読者は便利です.概要は,ドキュメントを手短に記述するべきです. Infoでは,この概要はマスターメニューの前に現れます.印刷されたマニュアルで は,この概要は単独ページに現れます.

印刷されたマニュアルで,単独ページに概要を現したくない場合,`Top'ノード全 体を,@node Top行と@topセクションコマンド行やその他のセク ションコマンド行を含めて,@ifinfo@end ifinfoで囲むことが できます.これは,印刷された出力物で,あらゆるテキストが現れるのを妨げます. (see Conditionally Visible Text)印刷されたマニュアルで 読むため,最初の章の始めに,@iftex ... @end iftexの中 に,`Top'ノードから短い記述を繰り返すことができます.これは紙の使用を押え, きちんとしているように見えるでしょう.

マニュアルが適応するプログラムのバージョンナンバーを,概要に書くべきです. これは,マニュアルがプログラムのどのバージョンに対するのものなのかを,読 者が記録追跡するのに役立ちます.プログラムや,それが依存するものより,マ ニュアルの更新が多い場合,マニュアルのエディションナンバーを含めるべきで す.(タイトルページにも,この情報を含めるべきです.@titlepage,を参照してください.)


Node:makeinfo Pointer Creation, Next:, Previous:node, Up:Nodes

makeinfoでポインタの作成

makeinfoプログラムは,階層的に組織化されているファイルに対し,自動 的にノードポインタを定義する特徴があります.

この特徴を利用するとき,`Next',`Previous'と`Up'ポインタをノード名の後に書 く必要がありません.しかし,@chapter@sectionのような区分 けコマンドを,それぞれの切り詰めた@node行の直後の行に書く必要があ ります(例外は,コメント行が間に入ることです).

さらに,`Top'@node行に,ファイルの`Top'ノードに印を付ける @topで始まる行を続ける必要があります.See @top.

最後に,(`Top'ノード以外の)それぞれのノード名を,ノードの階層レベルの上に, 1つかそれ以上の階層レベルとなるメニューに書く必要があります.

このmakeinfoのノードポインタ挿入の特徴は,手動やTexinfoモードのコマ ンドで,メニューやポインタを更新する必要から開放します.(See Updating Nodes and Menus.)


Node:anchor, Previous:makeinfo Pointer Creation, Up:Nodes

@anchor: 相互参照のターゲット任意に定義する(Defining Arbitrary Cross-reference Targets)

anchorは,相互参照が参照できる,まるでノードのようなドキュメント内の 位置です.@anchorコマンドでアンカーを作成し,普通のカッコで分けら れた引数としてラベルを与えることができます.例えば,以下のようになります.

これは,@anchor{x-spot}スポットをマークします....
@xref{x-spot,,the spot}.

以下を生成します.

これはスポットをマークします.
...
See [the spot], page 1.

お分かりのように,@anchorコマンド自身は出力を生成しません.この例 はアンカー`x-spot'だけを,単語`スポット'の直前に定義します.その後で,後述 の@xrefや,その他の相互参照を使用して参照できます.相互参照の詳細 は,See Cross References.

@anchorコマンドを,参照する位置の直前に置くのが最善です.そうする と,読者の目は,アンカーにジャンプしたとき正しいテキストに導かれます. @anchorコマンドを単独行に置くとソースの可読性を助ける場合は,そう することもできます.@anchor後のスペースは常に無視されます.

アンカー名とノード名は衝突できません.アンカーとノードは同じように扱われる こともあります.例えば,スタンドアローンInfoのgoto-nodeコマンドは, アンカー名やノード名を引数としてとります. (See goto-node.)


Node:Menus, Next:, Previous:Nodes, Up:Top

メニュー

メニューは,従属的なノードへのポインタを含みます.8Infoでは,メニューをそのようなノード へ行くために使用します.メニューは印刷されたマニュアルで効果がなく,それら には現れません.

慣習で,メニューを使用する読者が,それ以降のテキストを見ない可能性があるの でメニューはノードの終りに置かれます.さらに,メニューがあるノードは多くの テキストを含むべきではありません.多くのテキストとメニューがある場合は,テ キストのほとんどを--数行以外全て--新しいサブノードに移動してください.そ うしない場合,数行しか表示できない端末を使用する読者は,メニューとそれに関 連するテキストが見えません.実際問題として,メニューはノードの最初の20行以 内に配置すべきです.


Node:Menu Location, Next:, Previous:Menus, Up:Menus

メニューの前の短いテキストは,印刷されたマニュアルで不様に見えるかもしれま せん.これを避けるため,メニューをそのノードの最初の方に書き,メニューを @node行で続け,その後で@heading行を,@ifinfo@end ifinfoの間に置くことができます.こうすると,@node行の メニューとタイトルは,Infoファイルでしか現れず,印刷されたドキュメントには 現れません.

例えば,前の2つの段落は,Infoのみのメニュー@node行と,見出しが続き, 以下のように見えます.

@menu
* Menu Location::             Put a menu in a short node.
* Writing a Menu::            What is a menu?
* Menu Parts::                A menu entry has three parts.
* Less Cluttered Menu Entry:: Two part menu entry.
* Menu Example::              Two and three part entries.
* Other Info Files::          How to refer to a different
                                Info file.
@end menu

@node Menu Location, Writing a Menu, , Menus
@ifinfo
@heading Menus Need Short Nodes
@end ifinfo

このドキュメントのTexinfoファイルは,1ダース以上のこの手続きの例を含んで います.1つはこの章の最初にあります.もう1つは,Cross References, の最初にあります.


Node:Writing a Menu, Next:, Previous:Menu Location, Up:Menus

メニューを書く

メニューは,単独行の@menuコマンドと,それに続く項目行やメニューコ メント行と,その後の単独行の@end menuコマンドから成り立ちます.

メニューは,以下のようになります.

@menu
Larger Units of Text

* Files::                       All about handling files.
* Multiples: Buffers.           Multiple buffers; editing
                                  several files at once.
@end menu

メニューでは,で始まる全ての行は,メニュー項目です.(ア スタリスクの後のスペースに注意してください.)で始まらない行も メニューに現すこともできます.そのような行は,メニュー項目ではなく,Infoファ イルで現れるメニューコメント行です.上記の例では,Larger Units of Textはメニューコメント行です.で始まる2行はメニュー 項目です.メニューのスペース文字は,このように維持されます.これで,メニュー を望み通りに書式化できます.


Node:Menu Parts, Next:, Previous:Writing a Menu, Up:Menus

メニューの部分

メニュー項目は,3つの部分があり,2番目のみ必要です.

  1. メニュー項目名(オプション).
  2. ノード名(必須).
  3. 項目の記述(オプション).

メニュー項目のテンプレートは,以下のようになります.

* menu-entry-name: node-name.   description

メニュー項目名に,1つのコロンを続け,ノード名にタブ,コンマ,ピリオドや, 改行を続けてください.

Infoでは,ユーザはノードを,m(Info-menu)コマンドで選択します. メニュー項目名は,ユーザがmコマンドの後で入力するものです.

メニュー項目の3番目の部分は,記述的な句または文です.メニュー項目名とノー ド名は短い場合が多いです.記述は読者に,何について書かれているノードかを説 明します.役立つ記述は,繰り返しではなくノード名への補完になります.追加の 記述は,2行以上に分けることができます.そうする場合,著作者は,最初(と他の 全て)と同列にするより,2行目を字下げするほうを好みます.それは,好きにでき ます.


Node:Less Cluttered Menu Entry, Next:, Previous:Menu Parts, Up:Menus

バラバラでないメニュー項目

メニュー項目名とノード名が同じとき,行の最初でアスタリスクとスペースの直後に 名前を書き,名前に2つのコロンを続けることができます.

例えば,以下のように書きます.

* Name::                                    description

代わりに以下のようにします.

* Name: Name.                               description

メニューが見た目バラバラに散らばるので,可能な場合,ノード名をメニュー項目 名として使用すべきです.


Node:Menu Example, Next:, Previous:Less Cluttered Menu Entry, Up:Menus

メニューの例

Texinfoでは,メニューは以下のようになります.

@menu
* menu entry name: Node name.   A short description.
* Node name::                   This form is preferred.
@end menu

これは,以下を生成します.

* menu:

* menu entry name: Node name.   A short description.
* Node name::                   This form is preferred.

ここに,Texinfoファイルで見るような例があります.

@menu
Larger Units of Text

* Files::                       All about handling files.
* Multiples: Buffers.           Multiple buffers; editing
                                  several files at once.
@end menu

これは,以下を生成します.

* menu:
Larger Units of Text

* Files::                       All about handling files.
* Multiples: Buffers.           Multiple buffers; editing
                                  several files at once.

この例で,メニューは2つの項目があります.Filesは,メニュー項目とそ の名前で参照されるノード名です.Multiplesは,メニュー項目名です.そ れは,Buffersという名前のノードで参照します.Larger Units of Textはコメントです.それはメニューには現れますが項目ではありません.

FilesBuffersでファイル名が指定されていないので,それらは, 同じInfoファイルでのノード名のはずです.(see Referring to Other Info Files).


Node:Other Info Files, Previous:Menu Example, Up:Menus

他のInfoファイルへの参照

ノード名の直前のカッコにファイル名を書くことで,Infoの読者が他のInfoファイ ルのノードへ行くことを可能にするメニュー項目を作成することができます.この 場合,3つの部分のメニュー項目書式を使用するべきで,それは,読者がファイル 名を入力することを省きます.

書式は,以下のようになります.

@menu
* first-entry-name:(filename)nodename.     description
* second-entry-name:(filename)second-node. description
@end menu

例えば,Emacs Manualで直接OutliningRebindingノード を参照するため,メニューを以下のように書きます.

@menu
* Outlining: (emacs)Outline Mode. The major mode for
                                  editing outlines.
* Rebinding: (emacs)Rebinding.    How to redefine the
                                  meaning of a key.
@end menu

ノード名をリストアップせず,ファイル名だけの場合,Infoは`Top'ノードを参照 しているものと推測します.

Infoのメインメニューを含むdirファイルは,ファイル名のみを列挙したメ ニュー項目があります.これで,それぞれのInfoドキュメントの`Top'ノードへ, 直接行くことができます.(See Install an Info File.)

例えば,以下のようになります.

* Info: (info).         Documentation browsing system.
* Emacs: (emacs).       The extensible, self-documenting
                        text editor.

(Infoシステムに対するdirのトップレベルディレクトリはInfoファイルで, Texinfoファイルではありませんが,メニュー項目はどちらの形式のファイルでも 同じように見えます.)

GNU Emacs Texinfoモードでのメニュー更新コマンドは,現在のバッファのノード でのみ働くので,他のファイルを参照するメニューを作成するために使用すること はできません.そのようなメニューは,手で書く必要があります.


Node:Cross References, Next:, Previous:Menus, Up:Top

相互参照

相互参照は,同じまたは異なるTexinfoファイルの他の部分へ,読者を導く ために使用します.Texinfoでは,ノードとアンカーは相互参照が参照する場所で す.


Node:References, Next:, Previous:Cross References, Up:Cross References

いつもではありませんが,ほとんどの印刷されたドキュメントは順番に読むよう に設計されています.人々は,必要なとき提出されるべき情報を見つけるために, 前後にページをめくるのが嫌になります.

しかし,あらゆるドキュメントで,現在の文脈に対し詳しすぎたり,主要でなかっ たりする情報もあります.そのような情報へのアクセスを供給するため相互参照 を使用してください.また,オンラインヘルプシステムや,リファレンスマニュ アルは.小説とは異なります.そのようなドキュメントを最初から最後まで順番 に読む人はほとんどいません.代わりに,人々は必要なところを拾い読みします. このため,そのようなものは,読者が読まなかった可能性のある他の情報を見つ けるとき役に立つ,相互参照を多く含めるべきです.

印刷されたマニュアルでは,完全に他のマニュアルでない限り,相互参照は結果 としてページ参照となり,その場合は相互参照はマニュアルの名前になります.

Infoでは,相互参照は結果として,Infoのfコマンドに続いて使用するこ とができる項目となります.(see Some advanced Info commands.)

様々な相互参照コマンドは,ノード(やアンカー see @anchor)を,相互参照の位置を定義するために使用し ます.これは,Infoの環境では,そこでの相互参照は指定した場所に移動します. TeXもノードを相互参照の位置を定義するために使用しますが,動作は明白で はありません.TeXがDVIファイルを生成するとき,それは,それぞれのノー ドのページを記録し,参照を作成する際ページ番号を使用します.このため,印 刷されるだけのマニュアルを書きオンラインで使用しない場合でさえ,相互参照 する場所に名前をつけるために@node行を書く必要があります.


Node:Cross Reference Commands, Next:, Previous:References, Up:Cross References

異なる相互参照コマンド

4つの異なる相互参照のコマンドがあります.

@xref
印刷されたマニュアルでの`See ...'9や,Infoでの相互参 照の*Note name: node.を告げる文を開始するために使用さ れます.
@ref
文中や主に文の最後で使用します.Infoでは@xrefと同じです.印刷さ れたマニュアルでは参照だけを生成し,前に`See'を生成しません.
@pxref
Infoファイルや印刷された本に適した参照を生成するためカッコ内で使用します. 印刷されたマニュアルでは小文字の`see'で始まります.(pは `parenthesis'です.)
@inforef
Infoファイルでの参照を作成するために使用し,印刷されたマニュアルにはあり ません.

(@citeコマンドは,Infoと関係の無い,本とマニュアルへの参照を作成 するために使用され,それゆえ,指し示すノードはありません.See @cite.)


Node:Cross Reference Parts, Next:, Previous:Cross Reference Commands, Up:Cross References

相互参照の部分

相互参照のコマンドは1つの引数のみを要求し,それは参照するノード名です. しかし,相互参照コマンドは4つの追加の引数を含むことができます.これらの 引数を使用すると,Infoに対する相互参照名,トピックの記述や印刷された出力 でのセクションのタイトル,異なるInfoファイルの名前と,異なる印刷されたマ ニュアルの名前を供給できます.

ここに,簡単な相互参照の例があります.

@xref{Node name}.

これは,以下を生成します.

*Note Node name::.

また,以下を生成します.

See Section nnn [Node name], page ppp.

これは,完全な5つの部分を持つ相互参照です.

@xref{Node name, Cross Reference Name, Particular Topic,
info-file-name, A Printed Manual}, for details.

これは,以下を生成します.

*Note Cross Reference Name: (info-file-name)Node name,
for details.

これはInfoでのものです.

See section "Particular Topic" in A Printed Manual, for details.

印刷された本では上記のようになります.

相互参照のための5つの利用可能な引数は,以下の通りです.

  1. ノードやアンカー名(必須).これは,相互参照が連れて行く場所です.印刷され たドキュメントでは,ノードの場所は,同じドキュメント内のみの参照のための ページ参照を供給します.
  2. 相互参照名がノード名と異なっている場合の,Info参照に対する相互参照名.こ の引数を含める場合,それは相互参照の最初の部分になります.通常省略されま す.
  3. トピックの記述やセクション名.これはよくセクションのタイトルになります. これは印刷されたマニュアルでの参照名として使用されます.省略された場合, ノード名が使用されます.
  4. 参照先が現在のファイルと異なる場合,参照先があるInfoファイル名.Infoリー ダは自動的に追加するので,ファイル名の.info接尾子は不要です.
  5. 異なるTexinfoファイルから印刷されたマニュアル名.

完全な5つの引数を持つ相互参照のテンプレートは,以下のようになります.

@xref{node-name, cross-reference-name, title-or-topic,
info-file-name, printed-manual-title}.

1つ,2つ,3つ,4つと,5つの引数を持つ相互参照は,@xrefの記述に続 けて,別々に記述されます.

相互参照で,@node行と正確に同じ方法で,同じように大文字小文字を 使用して,ノード名を書いてください.そうしない場合,フォーマッタは参照を 見つけることができません.

段落で相互参照を書くこともできますが,InfoとTeXがそれぞれの,様々なコ マンドの出力をどのようにして書式化するのかに注意してください.それは, @xrefを文の最初に書く.@pxrefをカッコ内でのみ書くなどで す.


Node:xref, Next:, Previous:Cross Reference Parts, Up:Cross References

@xref

@xrefコマンドは文の最初での相互参照を生成します.Info書式化コマ ンドはそれをInfo相互参照に変換し,Infoのfで他のノードへ直接行くこ とができます.TeX植字コマンドはそれをページ参照や,他の本やマニュアル への参照に変換します.


Node:Reference Syntax, Next:, Previous:xref, Up:xref

よくあるInfo相互参照は,以下のようになります.

*Note node-name::.

または,以下のようになります.

*Note cross-reference-name: node-name.

TeXでは,相互参照は以下のようになります.

See Section section-number [node-name], page page.

または,以下のようになります.

See Section section-number [title-or-topic], page page.

@xrefコマンドは,Infoファイルや印刷されたマニュアルで,ピリオド やカンマを相互参照の終りに生成しません.ピリオドやカンマは独自に書く必要 があります.10そう しない場合,参照の終りを認識しません.(@pxrefコマンドは異なる動 作をします.See @pxref.)

注意してください:ピリオドやカンマを,@xrefに続ける 必要があります.相互参照の終了で要求されます.このピリオドやカ ンマは,Infoファイルと印刷されたマニュアルの両方の出力に現れます.

@xrefはInfoをノード名で参照する必要があります.@nodeをノー ドの定義に使用してください(see Writing a Node).

@xrefはカッコ内に,カンマで分けられたいくつかの引数が続きます. これらのカンマの前後の空白は無視されます.

相互参照は,ノード名のみ必要です.しかし,それは最大4つまで追加引数を含 むことができます.これらの変数はそれぞれ,幾分異なるように見える相互参照 を生成します.

注意してください:カンマは相互参照で引数を分けます.フォーマッタ がそれらをセパレータと間違えないように,タイトルや他の部分にそれらを含め るのを避けてください.


Node:One Argument, Next:, Previous:Reference Syntax, Up:xref

1つの引数を用いた@xref

@xrefの最も簡単な形式は,同じInfoファイルの他のノード名を1つの引 数として持つものです.Infoフォーマッタは,Infoリーダが参照へジャンプでき る出力を生成します.TeXはページとセクション番号を指定する出力を生成し ます.

例えば,以下のようにします.

@xref{Tropical Storms}.

これは,以下を生成します.

*Note Tropical Storms::.

また,以下を生成します.

See Section 3.1 [Tropical Storms], page 24.

(前の例では,閉じカッコはピリオドが続くことに注意してください.)

相互参照の後に,以下のように文節を書くことができます.

@xref{Tropical Storms}, for more info.

それは,以下を生成します.

*Note Tropical Storms::, for more info.

また以下を生成します.

See Section 3.1 [Tropical Storms], page 24, for more info.

(前の例では,閉じカッコはカンマと,文節が続き,それにはピリオドが続くこと に注意してください.)


Node:Two Arguments, Next:, Previous:One Argument, Up:xref

2つの引数を用いた@xref

With two arguments, the second is used as the name of the Info cross reference, while the first is still the name of the node to which the cross reference points.

2つの引数を用いた場合,2番目は,Info相互参照の名前として使用され,一方,最 初のものは,相互参照が示すノード名のままです.

テンプレートは以下のようになります.

@xref{node-name, cross-reference-name}.

例えば,以下のようにします.

@xref{Electrical Effects, Lightning}.

以下を生成します.

*Note Lightning: Electrical Effects.

また,以下を生成します.

See Section 5.2 [Electrical Effects], page 57.

(前の例では,閉じカッコはピリオドが続き,ノード名が印刷され,相互参照は印 刷されないことに注意してください.)

相互参照の後に,以下のように文節を続けることができます.

@xref{Electrical Effects, Lightning}, for more info.

以下を生成します.

*Note Lightning: Electrical Effects, for more info.

また,以下を生成します.

See Section 5.2 [Electrical Effects], page 57, for more info.

(前の例では,閉じカッコはカンマと文節が続き,それにはピリオドが続くことに 注意してください.)


Node:Three Arguments, Next:, Previous:Two Arguments, Up:xref

3つの引数を用いた@xref

3番目の引数は,TeX出力でノード名を置換します.3番目の引数は,印刷され た出力でのセクション名にするか,セクションで述べられているトピックを述べ るべきです.参照を印刷したとき読みやすいように,頭文字を大文字にしたいこ とも多いです.構文や意味のためノード名が適切でないときは,3番目の引数を 使用してください.

相互参照のタイトルやトピックや,その他のあらゆるセクションで,カンマの配置 を避けることを覚えておいてください.フォーマッタは,カンマに従い引数の相互 参照を分けます.タイトルやセクションのカンマは,それを2つの引数に分けます. 参照では,タイトルをカンマ無しで"Clouds, Mist, and Fog"のように書く必要 があります.

また,相互参照を終了するために,カンマやピリオドを@xrefの閉じカッ コの後に書くことを覚えておいてください.以下の例では,文節が終端のカンマに 付きます.

テンプレートは以下のようになります.

@xref{node-name, cross-reference-name, title-or-topic}.

例えば,以下のようにします.

@xref{Electrical Effects, Lightning, Thunder and Lightning},
for details.

以下を生成します.

*Note Lightning: Electrical Effects, for details.

また,以下を生成します.

See Section 5.2 [Thunder and Lightning], page 57, for details.

3番目の引数が与えられ,2番目が空の場合,3番目の引数が両方を提供します. (2つのカンマが並んで,2番目の引数が空だということを示している方法に注意し てください.)

@xref{Electrical Effects, , Thunder and Lightning},
for details.

以下を生成します.

*Note Thunder and Lightning: Electrical Effects, for details.

また,以下を生成します.

See Section 5.2 [Thunder and Lightning], page 57, for details.

実際問題として,ノード名とセクションタイトルが同じ場合は,相互参照を最初の 引数で書き,ノード名とタイトルが異なる場合は,1番目と3番目の引数で書くこと が最善です.

ここに,The GNU Awk User's Guideの例がいくつかあります.

@xref{Sample Program}.
@xref{Glossary}.
@xref{Case-sensitivity, ,Case-sensitivity in Matching}.
@xref{Close Output, , Closing Output Files and Pipes},
   for more information.
@xref{Regexp, , Regular Expressions as Patterns}.


Node:Four and Five Arguments, Previous:Three Arguments, Up:xref

4つと5つの引数を用いた@xref

相互参照では,4番目の引数は,リファレンスが現れるファイルと異なるInfoファ イルのアンカー名を指定し,5番目の引数は,印刷されたマニュアルでのそのタ イトルを指定します.

カンマやピリオドを,相互参照を終了する@xrefの閉じカッコに続ける 必要があることを覚えておいてください.以下の例では,終端のカンマに文節が 続きます.

テンプレートは以下のようになります.

@xref{node-name, cross-reference-name, title-or-topic,
info-file-name, printed-manual-title}.

以下が例です.

@xref{Electrical Effects, Lightning, Thunder and Lightning,
weather, An Introduction to Meteorology}, for details.

以下を生成します.

*Note Lightning: (weather)Electrical Effects, for details.

Infoファイルの名前はカッコで囲まれ,前にノード名があります.

印刷されたマニュアルでは,参照は以下のようになります.

See section "Thunder and Lightning" in An Introduction to Meteorology, for details.

印刷されたマニュアルのタイトルは,イタリック体で植字されます.他のマニュア ルを参照するとき,参照が参照するページをTeXは知ることができないので,ペー ジ番号はありません.

長いバージョンの@xrefを使用するとき,2番目に引数を省略することもよ くあります.この場合,トピックを記述する3番目に引数はInfoでの相互参照名と して使用されます.

テンプレートは以下のようになります.

@xref{node-name, , title-or-topic, info-file-name,
printed-manual-title}, for details.

それは,以下を生成します.

*Note title-or-topic: (info-file-name)node-name, for details.

そして,以下を生成します.

See section title-or-topic in printed-manual-title, for details.

例えば,以下のようにします.

@xref{Electrical Effects, , Thunder and Lightning,
weather, An Introduction to Meteorology}, for details.

以下を生成します.

*Note Thunder and Lightning: (weather)Electrical Effects,
for details.

そして,以下を生成します.

See section "Thunder and Lightning" in An Introduction to Meteorology, for details.

滅多にありませんが,単一の印刷されたマニュアルにある,他のInfoファイルへ参 照したいときもあります--それは,複数のTexinfoファイルが同じTeXの実行に 組み込まれるにもかかわらず,別々のInfoファイルを作成するときです.この場合, 4番目の引数のみを指定し,5番目はその必要がありません.


Node:Top Node Naming, Next:, Previous:xref, Up:Cross References

`Top'ノードに名前を付ける

相互参照では,常にノードを名付ける必要があります.これは,マニュアル全体 を参照するために,@xrefコマンドの最初の引数として書き込むことで `Top'ノードを識別する必要があるということを意味します.(これは,メニュー 項目を書く方法と異なります.Referring to Other Info Files,を参照してください.)同時に,印刷された相互参照で有意義なセ クショントピックやタイトルを(単語`Top'の代わりに)提供するために, @xrefコマンドの3番目の引数として適切な項目を書く必要があります.

こうして,The GNU Make Manualへの相互参照を作成するために,以下のよ うに書いてください.

@xref{Top, , Overview, make, The GNU Make Manual}.

それは,以下を生成します.

*Note Overview: (make)Top.

また,以下を生成します.

See section "Overview" in The GNU Make Manual.

この例は,Topが最初のノード名で,Overviewがマニュアルの最初 のセクション名です.


Node:ref, Next:, Previous:Top Node Naming, Up:Cross References

@ref

@refは印刷された出力で`See'を生成せず,参照のみを生成する以外, @xrefとほとんど同じです.これは,文の終りの部分とするとき役に立 ちます.

例えば,以下のようにします.

For more information, see @ref{Hurricanes}.

以下を生成します.

For more information, see *Note Hurricanes::.

また,以下を生成します.

For more information, see Section 8.2 [Hurricanes], page 123.

@refコマンドは,著者がそれを表現する方法として,印刷されたマニュア ルに適しているが,Info書式では悪く見えるものを導き出すときもあります.使用 者が印刷物とInfo書式の両方で使用することを心に留めておいてください.

例えば,以下のようにします.

Sea surges are described in @ref{Hurricanes}.

以下を生成します.

Sea surges are described in Section 6.7 [Hurricanes], page 72.

以上は印刷されたマニュアルで,Infoでは以下のようになります.

Sea surges are described in *Note Hurricanes::.
注意:ピリオド,カンマや正しいカッコを,@refコマンドの後に 2つ以上の引数とともに書く必要があります.そうしない場合,Infoは相互 参照の項目を見つけることができず,相互参照を追う試みは失敗します.一般的な 規則として,ピリオドやカンマを,全ての@refコマンドの後に書くべきで す.これは,印刷されたマニュアルでもInfo出力でも最善に見えます.


Node:pxref, Next:, Previous:ref, Up:Cross References

@pxref

丸カッコの参照コマンド@pxrefは,@xrefとほとんど同じです が,丸カッコの中でのみ使用し,コマンドの閉じカッコの後にカンマや ピリオドを入力しません.コマンドは2つの点で@xrefと異なり ます.

  1. TeXは印刷されたマニュアルに対し,大文字の`See'ではなく小文字の`see'を用 いて,参照を植字します.
  2. Info書式化コマンドでは自動的に閉じコロンやピリオドで参照を終りにします.

書式化の1つの型は,自動的に閉じる句読点を挿入し,他のものはそうしないので, @pxrefは他の文の一部として丸カッコ内でのみ使用すべきです. また,@xrefで行うような,参照後に句読点を挿入すべきではありません.

@pxrefは,印刷された出力とInfoファイルの両方で,出力が正しく見え, 丸カッコが正しく働くように設計されています.印刷されたマニュアルでは,閉じ るカンマやピリオドは丸カッコ内の相互参照の後に続きません.そのような句読点 は間違いです.しかしInfoファイルでは,適切な閉じる句読点をInfoが終りとして 認識できるように,相互参照に続ける必要があります.@pxrefは,出力の 1つの形式に終端を置き,それ以外では置かないことに対し,複雑な方法を使用す ることを免除します.

1つの引数を用いた丸カッコ相互参照は以下のようになります.

... storms cause flooding (@pxref{Hurricanes}) ...

それは,以下を生成します.

... storms cause flooding (*Note Hurricanes::) ...

また,以下を生成します.

... storms cause flooding (see Section 6.7 [Hurricanes], page 72) ...

2つの引数を用いた丸カッコ相互参照は,以下のようなテンプレートになります.

... (@pxref{node-name, cross-reference-name}) ...

それは,以下を生成します.

... (*Note cross-reference-name: node-name.) ...

また,以下を生成します.

... (see Section nnn [node-name], page ppp) ...

@pxref@xref同様に,最大5つの引数を使用することができます (see @xref).

注意してください:@pxrefは,丸カッコの参照としてのみ使用し てください.@pxrefを文の文節として使用しようとしないでください.それ は,Infoファイル,印刷された出力,またはその両方で悪く見えます.

同様に,丸カッコ相互参照は,文の終りで最善に見えます.文中に書くこともでき ますが,その場所はテキストの流れを分断します.


Node:inforef, Next:, Previous:pxref, Up:Cross References

@inforef

@inforefは印刷されたマニュアルには無い,Infoファイルへの相互参照 のために使用されます.印刷されたマニュアルでも,@inforefは,Info ファイルでユーザに見せるような参照を生成します.

このコマンドは,以下の順番で2つまたは3つの引数をとります.

  1. ノード名.
  2. 相互参照名(オプション).
  3. Infoファイル名.

@xrefのように,引数はカンマで分けられます.同様に,@xrefの ように,}の後でカンマやピリオドで参照を終端する必要があります.

以下がテンプレートです.

@inforef{node-name, cross-reference-name, info-file-name},

このようにします.

@inforef{Expert, Advanced Info commands, info},
for more information.

以下を生成します.

*Note Advanced Info commands: (info)Expert,
for more information.

また,以下を生成します.

See Info file info, node Expert, for more information.

同様に,以下のようにします.

@inforef{Expert, , info}, for more information.

以下を生成します.

*Note (info)Expert::, for more information.

また,以下を生成します.

See Info file info, node Expert, for more information.

@inforefの逆は@citeで,それはInfo形式がない,印刷の仕事を 参照するために使用します.See @cite.


Node:uref, Previous:inforef, Up:Cross References

@uref{url[, text][, replacement]}

@urefは,ユニフォームリソースロケータ(url)への参照を生成します. それは,1つの必須の引数urlと,表示されるテキストを制御する2つの追加の引 数をとります.HTML出力では,@urefは追うことができるリンクを生成 します.

2番目の引数が指定されている場合,それは表示するテキストです(デフォルトは url自身です).InfoとDVI出力では,urlも出力され,HTML出力ではそうなりませ ん.

一方,3番目の引数が指定されている場合も同様にテキストは表示されますが, urlはあらゆる書式で出力されません.これは,テキストがmanページの ように既に十分参考にされているとき便利です.3番目の引数が与えられた場合, 2番目の引数は無視されます.

簡単な1つの引数の形式では,urlはターゲットとリンクのテキストの両方になり ます.

The official GNU ftp site is @uref{ftp://ftp.gnu.org/gnu}.

以下を生成します.

The official GNU ftp site is ftp://ftp.gnu.org/gnu.

2つの引数の形式の例です.

The official @uref{ftp://ftp.gnu.org/gnu, GNU ftp site} holds
programs and texts.

以下を生成します.

The official GNU ftp site holds
programs and texts.

そして,Info出力はこのようになります.

The official GNU ftp site (ftp://ftp.gnu.org/gnu) holds
programs and texts.

HTML出力はこのようになります.

The official <a href="ftp://ftp.gnu.org/gnu">GNU ftp site</a> holds
programs and texts.

3つの引数の形式の例です.

The @uref{http://example.org/man.cgi/1/ls,,ls(1)} program ...

以下を生成します.

The ls(1) program ...

しかしHTMLでは,以下のようになります.

The <a href="http://example.org/man.cgi/1/ls">ls(1)</a> program ...

人々が追うことができるリンクを作成せず,単にurlを示すため,@urlを 使用してください(see @url).

urlの明確な書式を表示することを好む人もいます.

<URL:http://host/path>

好みにより,この形式を入力ファイルで使用することもできます.テキストで urlの検出を試みるあらゆるソフトウェアは,便利にするため,<URL:無し で検出する必要があるので,我々は,余分な<URL:>を用い,出力 をバラバラにすることは必要ないと思います.


Node:Marking Text, Next:, Previous:Cross References, Up:Top

単語と句のマーキング

Texinfoでは,様々な方法で単語や句にマークを付けることができます.Texinfo フォーマッタは,テキストの強調の仕方を決定するため,この情報を使用します. 例えば,単語や句が,定義している事象,メタ構文の変数や,プログラムで定義 されているシンボルであっても指定できます.同様にいくつかの異なる方法で, テキストを強調できます.


Node:Indicating, Next:, Previous:Marking Text, Up:Marking Text

定義,コマンド等を示す

Texinfoには,テキストの一部が関係する種類を示すコマンドがあります.例え ば,メタ構文の変数は@varで,コードは@codeでマークされま す.テキストの一部はそのオブジェクトの種類を伝えるコマンドでラベルが付く ので,Texinfoフォーマッタがそのようなテキストを準備する方法を変更するこ とは簡単です.(Texinfoは植字的な書式化言語というよりはむしろ, 意図的な書式化言語です.)

例えば,印刷されたマニュアルで,コードは通常タイプライターのフォントで図 案化されます.@codeはTeXに,このテキストをこのフォントで植字 するよう伝えます.しかし,TeXのコードの強調を他のフォントを使用するよ う変更することは簡単で,この変更はキーストローク例の強調方法に影響を与え ません.直接的な植字コマンドがファイルの本体で使用され,それを変更したい 場合,コードを変更し,他が変更されていないことを確かめるため,全ての単一 の事象を調べる必要があります.


Node:Useful Highlighting, Next:, Previous:Indicating, Up:Indicating

強調コマンドは,関数やファイル名のリストのような,ファイルの役に立つ情報を 抽出するために使用できます.例えば,指定したコマンドでマークされた単語と句 を,全ての段落の後に索引項目を挿入する,Emacs Lisp(またはキーボードマクロ )でプログラムを書くことも可能です.まだ項目を作成していない場合,関数の索 引を構築するためこれを行うことができます.

コマンドは様々な目的を満たします.

@code{sample-code}
プログラムの一部のリテラル例となるテキストを示します.
@kbd{keyboard-characters}
キーボード入力を示します.
@key{key-name}
キーボードのキーに対する慣習的な名前を示します.
@samp{text}
文字列のリテラル例となるテキストを示します.
@var{metasyntactic-variable}
メタ構文変数を示します.
@env{environment-variable}
環境変数を示します.
@file{file-name}
ファイル名を示します.
@command{command-name}
コマンド名を示します.
@option{option}
コマンドラインオプションを示します.
@dfn{term}
用語使用の紹介や定義を示します.
@cite{reference}
本の名前を示します.
@acronym{acronym}
頭字語11を示します.
@url{uniform-resource-locator}
ワールドワイドウェブ(WWW)のためのユニフォームリソースロケータ(URL)を示します.
@email{email-address[, displayed-text]}
電子メールアドレスを示します.


Node:code, Next:, Previous:Useful Highlighting, Up:Indicating

@code{sample-code}

プログラムの一部と,構文的なトークン全体からなるテキストを示すため, @codeコマンドを使用してください.カッコでテキストを囲ってください.

このように,@codeをプログラムの表現,プログラムで使用している変数 や関数の名前や,プログラム言語のキーワードに対して使用すべきです.

Texinfoのようなプログラム言語に似ている言語のコマンド名に対し, @codeを使用してください.例えば,@code@sampは, Texinfoソースファイルで,それぞれ@code{@@code}@code{@@samp}と書くことで生成されます.

文の最初に現れるとき,@codeコマンドの中で単語の大文字小文字を変え るのは正しくありません.ほとんどのコンピュータ言語は大文字小文字の違いを識 別します.例えばCでは,Printfprintfの識別子と異なり,おそ らくそのスペルミスです.大文字小文字の区別をしない言語でも,異なる方法で綴 られた識別子を見ると,人間の読者は混乱します.1つの綴りを選び,それを常に 使用してください.全てが小文字で書かれたコマンド名で文を開始したくない場合, 文の配置替えをするべきです.

印刷されたマニュアルで,@codeでTeXは引数をタイプライターフェイ スのフォントで植字します.Infoファイルでは.Info書式化コマンドはシングルクォー テーションマークでテキストも周りを囲みます.

例えば,以下のようにします.

The function returns @code{nil}.

印刷されたマニュアルで,これは以下を生成します.

The function returns nil.

ここに,@codeを使用しないほうが好ましい場合をいくつかあげます.

@command@optionと,@envは比較的最近導入されたの で,@code@sampをコマンド名,オプションと,環境変数に使用 することも可能です.新しいコマンドでより正確にマークアップを表現できますが, より古いコマンドの使用でも実害は無く,もちろん長期存続のマニュアルはそうし ています.


Node:kbd, Next:, Previous:code, Up:Indicating

@kbd{keyboard-characters}

ユーザが入力する文字に対し@kbdコマンドを使用してください.例えば, 文字M-aを記述するため,以下のように書いてください.

@kbd{M-a}

文字M-x shellを記述するため,以下のように書いてください.

@kbd{M-x shell}

@kbdコマンドはInfoでは@codeと同じ効果がありますが,印刷さ れたマニュアルではデフォルトで異なるフォント(通常のタイプライターの代わり に傾いたタイプライター)を生成し,そのため,ユーザーはこれらのコンピュータ 出力と,入力することになる文字を区別できます.

@kbdの使用法がマニュアル間で異なるので,@kbdinputstyleコマ ンドでフォント切替えの制御を行うことができます.このコマンドはInfo出力で効 果がありません.このコマンドを行の最初で,引数として一単語で以下の1つを書 いてください.

code
常に@kbdに対し@codeと同じフォントを使用します.
example
@exampleとそれに似た環境のみで@kbdに対し異なるフォントを使 用します.
distinct
(デフォルト)常に@kbdに対し異なるフォントを使用します.

@kbdコマンドのカッコの中に他の@-コマンドを埋め込むことができます. 例えばここで,より冗長に記述すると,"rを押し,<RET>を押してく ださい"となるコマンドを記述した例があります.

@kbd{r @key{RET}}

これはr <RET>を生成します.

同様に,入力した文字を書き出すために@kbdコマンドを使用することもで きます.例えば,以下のようにします.

To give the @code{logout} command,
type the characters @kbd{l o g o u t @key{RET}}.

これは以下を生成します.

To give the logout command, type the characters l o g o u t <RET>.

(同様に,この例は明確にするためスペースを加えることができることも示します. 実際にスペース文字を入力文字の1つとして述べたい場合,そのために @key{SPC}を書いてください.


Node:key, Next:, Previous:kbd, Up:Indicating

@key{key-name}

@keyコマンドをキーボード上のキーの慣習名に対し以下のように使用して ください.

@key{RET}

入力された文字の並びが1つ以上の名前で記述されたキーを含むとき, @keyコマンドを,@kbdコマンドの引数で使用できます.

例えば,入力するC-x <ESC>を生成するために,以下のようにします.

@kbd{C-x @key{ESC}}

ここに,推奨されるキーの名前のリストがあります.

SPC
Space
RET
Return
LFD
Linefeed(しかし,最近のほとんどのキーボードはLinefeedキーが無いので,この 文字C-jを呼ぶ方がいいでしょう).
TAB
Tab
BS
Backspace
ESC
Escape
DEL
Delete
SHIFT
Shift
CTRL
Control
META
Meta

修飾キー名の`meta'や`ctrl'のような単語を扱う細別もあります.Meta-aの ような,修飾キーが使用されている文字を述べるとき,@kbdコマンドを単 独で使用してください.@keyコマンドを使用しないでください.しかし, 修飾キーを単独で記述するときは@keyコマンドを使用してください.例え ば,Meta-aを生成するため@kbd{Meta-a}を書き,<META>を生 成するため@key{META}を書いてください.


Node:samp, Next:, Previous:key, Up:Indicating

@samp{text}

ファイル,文字列,パターンなどの文字の並びの例や`sample'のリテラルとなるテ キストを示すため,@sampコマンドを使用してください.テキストをカッ コで囲んでください.Infoファイルと印刷されたマニュアルの両方で,シングルクォー テイションの中にで引数が現れます.さらに,等幅フォントで印刷されます.

To match @samp{foo} at the end of the line,
use the regexp @samp{foo$}.

これは以下を生成します.

To match foo at the end of the line, use the regexp foo$.

単一の文字を記述するときはいつも,@kbd@keyがより適してい ない限り@sampを使用すべきです.同様に,Cの記述全体やシェルコマンド 全体に対し@sampを使用することができます.この場合,@samp@codeより良く見えます.基本的に,@samp@code@kbdや,@keyでカバーされていないあらゆるものに対する入れも のです.

指定した文字列の一部の場合のみ,句読点をカッコ内に含めてください.句読点が 文字列の周りにある英語のテキストの一部の場合,カッコの外に句読点を書いてく ださい.例えば以下の文章では,カンマとピリオドはカッコの外側に置きます.

In English, the vowels are @samp{a}, @samp{e},
@samp{i}, @samp{o}, @samp{u}, and sometimes
@samp{y}.

これは以下を生成します.

In English, the vowels are a, e, i, o, u, and sometimes y.


Node:var, Next:, Previous:samp, Up:Indicating

@var{metasyntactic-variable}

メタ構文変数を示すため,@varコマンドを使用してください.メタ 構文変数は,テキストの他の一部を意味します.例えば,メタ構文変数を,関数 に渡される引数を記述するため,関数のドキュメントで使用すべきです.

プログラム言語で,特定変数の名前に対し@varを使用しないでください. これらはプログラムの特別な名前なので,それに対しては@codeが正しい ものです(see code).例えば,Emacs Lisp変数texinfo-tex-commandは メタ構文変数ではありません.それは,@codeを使用し,正確に書式化さ れます.

環境変数に対する@varも使用しないでください.それに対しては @envが正しいものです(次のセクションを見てください).

Infoでの@varの効果は,引数の文字を全て大文字に変更します.印刷され たマニュアルとHTML出力では引数は傾いて印刷されます.

例えば,以下のようになります.

To delete file @var{filename},
type @samp{rm @var{filename}}.

以下を生成します.

To delete file filename, type rm filename.

(@var@code@samp@fileなどの間に現すこ とができることに注意してください.)

メタ構文変数は,スペース以外全て小文字で書き,読みやすくするためハイフンを 使用してください.このため,Texinfoマニュアルの初め方を表現するTexinfoソー スは以下のようになります.

\input texinfo
@@setfilename @var{info-file-name}
@@settitle @var{name-of-manual}

これは以下を生成します.

\input texinfo
@setfilename info-file-name
@settitle name-of-manual

ドキュメント形式によっては,メタ構文変数は山カッコで表示するものもあり,以 下がその例です.

..., type rm <filename>

しかし,それはTexinfoが使用する形式ではありません.(もちろん,そうしたい場 合,texinfo.texソースを編集して,Info書式化コマンドを <...>書式で出力させることもできます.)


Node:env, Next:, Previous:var, Up:Indicating

@env{environment-variable}

GNUを含め,多くのオペレーティングシステムで使用される環境変数を示すため, @envコマンドを使用してください.メタ構文変数に使用しないでください. 代わりに@varを使用してください(前のセクションを参照してください).

@envの効果は@codeと同じです.例えば,以下のようにします.

The @env{PATH} environment variable sets the search path for commands.

以下を生成します.

The PATH environment variable sets the search path for commands.


Node:file, Next:, Previous:env, Up:Indicating

@file{file-name}

ファイル,バッファやディレクトリ名や,Infoでのノード名となるテキストを示す ため,@fileコマンドを使用してください.また,ファイル名の接尾子に も使用できます.プログラム言語のシンボルに対し@fileを使用しないで ください.@codeを使用してください.

現在,@fileの効果は@sampと同じです.例えば以下のようにしま す.

The @file{.el} files are in
the @file{/usr/local/emacs/lisp} directory.

以下を生成します.

The .el files are in the /usr/local/emacs/lisp directory.


Node:command, Next:, Previous:file, Up:Indicating

@command{command-name}

lsccのようなコマンド名を示すため,@commandを 使用してください.

@commandの効果は@codeと同じです.例えば,以下のようにしま す.

The command @command{ls} lists directory contents.

以下を生成します.

The command ls lists directory contents.

`Emacs'や`Bison'のような,新しい英語としたい場合,@commandを使わず, 通常のテキストのフォントでプログラム名を書くべきです.

ls -lのようなシェルコマンドの呼び出し全体を書くとき,自分で判断して @sampまたは@codeのどちらかを使用すべきです.


Node:option, Next:, Previous:command, Up:Indicating

@option{option-name}

コマンドラインオプションを示すため,@optionコマンドを使用してくだ さい.例えば, -lや,--versionや, --output=filenameです.

@optionの効果は@sampと同じです.例えば以下のようにします.

The option @option{-l} produces a long listing.

以下を生成します.

The option -l produces a long listing.

表では,オプションを@codeの中に書くと,より喜ばしい効果を生成しま す.


Node:dfn, Next:, Previous:option, Up:Indicating

@dfn{term}

技術用語の使用の紹介や定義を識別するため,@dfnコマンドを使用してく ださい.もう一度使用されたり読者が知るべき用語を紹介を意図した引用部分での み,このコマンドを使用してください.最初に用語について述べるちょっとした記 述は@dfnに値しません.コマンドは印刷されたマニュアルでイタリック体 を生成し,Infoファイルでは2重引用符を生成します.例えば以下のようにします.

Getting rid of a file is called @dfn{deleting} it.

以下を生成します.

Getting rid of a file is called deleting it.

一般的な規則として,用語の発生の定義を含む文は,用語の定義になるべきです. 文はその定義を明示的にする必要はありませんが,定義情報を含めるべきです --それで意味がはっきりします.


Node:cite, Next:, Previous:dfn, Up:Indicating

@cite{reference}

Infoファイルの仲間に欠けている本の名前に対し@citeコマンドを使用し てください.コマンドは印刷されたマニュアルでイタリック体を生成し,Infoファ イルでは引用符を生成します.

本がTexinfoで書かれている場合,読者がInfoでそのような参照を簡単に追うこと ができるので,相互参照を使用してください.See @xref.


Node:acronym, Next:, Previous:cite, Up:Indicating

@acronym{acronym}

`NASA'のように全て大文字で書かれている省略に対し, @acronymを使用してください.省略は@acronym{NASA}のように, カッコ内に1つの引数で与えられます.形式の問題や,特定の省略に対し, @acronym{F.B.I.}のようにピリオドを使用した方が良いかもしれません.

TeXとHTMLでは,引数は傾いた小さなフォントサイズで印刷されます.Infoやプ レーンテキスト出力では,このコマンドは何も変更しません.


Node:url, Next:, Previous:acronym, Up:Indicating

@url{uniform-resource-locator}

ワールドワイドウェブのユニフォームリソースロケータurlを示すため, @urlコマンドを使用してください.これは,@file@var等に似ていて,純粋にマークアップに対するものです.それはHTML形 式で追いかけることができるリンクを生成しません(そのためには, @urefを使用してください.see @uref).実際には存 在しないURLに対し便利です.例えば,以下のようにします.

For example, the url might be @url{http://example.org/path}.

それは,以下を生成します.

For example, the url might be <http://example.org/path>.


Node:email, Previous:url, Up:Indicating

@email{email-address[, displayed-text]}

電子メールアドレスを示すため@emailコマンドを使用してください.それ は1つの必須の引数のaddressと,1つの追加引数で表示するテキストとをとります (デフォルトではアドレス自身になります).

InfoとTeXでは,アドレスは山カッコで表示され,存在する場合,表示テキスト が前に付きます.HTML出力では,@emailは,通常メール作成ウィンドウを もたらすmailtoリンクを生成します.例えば,以下のようにします.

Send bug reports to @email{bug-texinfo@@gnu.org}.
Send suggestions to the @email{bug-texinfo@@gnu.org, same place}.

以下を生成します.

Send bug reports to bug-texinfo@gnu.org.
Send suggestions to the same place.


Node:Emphasis, Previous:Indicating, Up:Marking Text

テキストの強調(Emphasizing Text)

通常Texinfoは,テキストで単語が属するカテゴリに従ってマークされた単語に対 しフォントを変更します.例えば@codeコマンドです.ほとんどの場合, 単語をマークする方法が最善です.しかし,カテゴリを示さずテキストを強調した いときもあります.Texinfoはこのため2つのコマンドがあります.またTexinfoは, TeXがテキストを植字するときのフォントを指定するコマンドがいくつかありま す.これらのコマンドはInfoでは効果が無く,その中の1つ@rコマンドだ け,通常使用されます.


Node:emph & strong, Next:, Up:Emphasis

@emph{text}と@strong{text}

@emph@strongコマンドは,強調のためのものです. @strongがより強調します.印刷された出力で,@emphitalicsを生成し,@strongboldを生成します.

例えば,以下のようにします.

@quotation
@strong{Caution:} @samp{rm * .[^.]*} removes @emph{all}
files in the directory.
@end quotation
     *Caution*: `rm * .[^.]*' removes _all_
     files in the directory.

@strongコマンドは,前の例での単語`Caution'のような,効果が印刷要素 となるマーク以外では,滅多に使用されません.

Info出力では,@emphはアンダースコア(_)でテキストを囲み, @strongはテキストの周りにアスタリスクを置きます.

注意:@strongを単語Noteで使用しないでください. Infoは相互参照との組み合わせと勘違いします.代わりに,Please noteCautionのような句を使用してください.


Node:Smallcaps, Next:, Previous:emph & strong, Up:Emphasis

@sc{text}: 小さい大文字フォント

テキストを,印刷物とHTMLでA SMALL CAPS FONTに設定し,Infoファイルで大 文字に設定するため@scコマンドを使用してください.(可能な場合)小さ い小文字にしたいテキストを,以下のように小文字でカッコの間に書いてください.

The @sc{acm} and @sc{ieee} are technical societies.

これは以下を生成します.

The ACM and IEEE are technical societies.

TeXは,文字が`ページからはみ出る'ことを避けるように,小さい大文字フォン トで植字します.これは,小文字のテキストを全て大文字より読みやすくします. しかし,通常は,どこでも大文字小文字を混ぜて使用する方が良いでしょう. Info書式化コマンドは,全ての小さい大文字のテキストを大文字に設定します. HTMLでは,テキストは大文字で小さいフォントで表現されます.

@scコマンドのカッコ内のテキストが大文字の場合,TeXはフルサイズ の大文字で植字します.今までにそうしていて,@scで全て大文字のテキ ストに印を付けるのは無駄なので,makeinfoがそのような使用法を警告 する場合,省略してフルサイズの大文字を使用してください.

同様に,ATO(`abort to orbit'を意味するNASA単語)のような専門用語 に対し小さな大文字フォントを使用することもできます.

CDRや,Lispプログラムで使用される単語のような専門用語を小さな大文字フォ ントを使用するため,微妙な点があります.この場合,2番目とリスト(リストの CDR)の次の要素に参照される単語のときは,小さい大文字フォントを使用す べきですが,同じ綴りのLisp関数を参照する単語のときは@codeを使用す べきです.


Node:Fonts, Previous:Smallcaps, Up:Emphasis

Infoではなく印刷時のフォント

Texinfoは,Infoでは効果が無く,印刷されたマニュアルでフォントの変更を指定 する,4つのフォントコマンドを供給します.@iitalicフォント (TeXのバージョンによっては傾いたフォントが使用される)を要求し, @bboldフェイスを要求し,@t@codeで使用され るタイプライター形式のフォントfixed-widthを要求し,そして, @rはテキストの印刷での通常フォントのromanフォントを要求します. すべての4つのコマンドは,それに続くカッコに囲まれた引数に適用します.

@rコマンドのみがよく使用されます.例のプログラムで,コードコメント を等幅フォントからローマンフォントに変更するため,@rコマンドを使用 することができます.これは,印刷された出力で良く見えます.

例えば,以下のようにします.

@lisp
(+ 2 2)    ; @r{Add two plus two.}
@end lisp

以下を生成します.

(+ 2 2)    ; Add two plus two.

可能な場合,他の3つのフォントコマンドの使用を避けるべきです.その1つを使う 必要がある場合,Texinfo言語で,おそらくギャップが生じます.


Node:Quotations and Examples, Next:, Previous:Marking Text, Up:Top

引用と例

引用と例は,テキストの大部分が区切られた1つ以上の段落全体から成り立つテキ ストの塊で,異なる取り扱いをされます.通常字下げされます.

Texinfoでは,引用や例は常に行の最初に単独で@-コマンドを書くことから始まり, 同様に,行の最初に単独行で@endコマンドを書くことで終ります.例えば, 例を@exampleを行の最初に単独行で書くことで始め,行の始めに単独行で @end exampleを書くことで終えます.


Node:Block Enclosing Commands, Next:, Up:Quotations and Examples

ブロックで囲むコマンド

ここに,次のセクションで更に説明する引用と例のコマンドがあります.

@quotation
引用されたテキストを示します.テキストは補充され,字下げされ,そしてデフォ ルトでローマンフォントで印刷されます.
@example
コード,コマンドのようなものを例示します.テキストは等幅フォントで印刷され, 字下げされますが,補充されません.
@smallexample
TeXでこのコマンドがデフォルトの8.5x11インチの書式より小さい @smallbook書式で印刷する以外,@exampleと同じです.
@lisp
@exampleに似ていますが,特にLispコードの例示に対するものです.テキ ストは等幅フォントで印刷され字下げされますが,補充されません.
@smalllisp
@exampleに対する@smallexampleのような@lispに対する ものです.
@display
例示のテキストを表示します.テキストは字下げされますが補充されず,フォン トの選択もされません(そのため,デフォルトでフォントはローマンです).
@smalldisplay
@exampleに対する@smallexampleのような@displayに対 するものです.
@format
@display(テキストは補充されずフォントの選択もありません)に似てい ますが,字下げされません.
@smallformat
@exampleに対する@smallexampleのような@formatに対す るものです.

@exdentコマンドは,行の字下げを元に戻すため,上記の構成の中で使用 されます.

@flushleft@flushrightコマンドは,補充されないテキストの 左右のマージンを整えるために使用されます.

@noindentは,それに続くテキストを新しい段落のように字下げするのを 妨げるため,上の構成の1つの後で使用することができます.

上の構成物の1つの中で角丸の四角を描いて例や引用を強調するため, @cartoucheコマンドを使用することができます.See Drawing Cartouches Around Examples.


Node:quotation, Next:, Previous:Block Enclosing Commands, Up:Quotations and Examples

@quotation

引用のテキストを,以下の場合以外,通常処理します.

これは@quotationコマンドと@end quotationコマンドの間に書か れているテキストの例です.@quotationコマンドは,他の(実際または架 空の)印刷された本から抜粋されたテキストを示すために,最もよく使用されます.

@quotationコマンドは単独行のテキストとして書いてください.この行は 出力に現れません.引用の終りを,行の最初に@end quotationのみを含む 行で印を付けてください.@end quotation行は出力に現れません.こうし て,以下のようになります.

@quotation
This is
a foo.
@end quotation

以下を生成します.

This is a foo.


Node:example, Next:, Previous:quotation, Up:Quotations and Examples

@example

@exampleコマンドは,コンピュータの入力や出力のような実行しているテ キスト以外の例を示すために使用されます.

これは,@exampleコマンドと
@end exampleコマンドの間に書かれている
テキストの例です.
字下げされますが補充されません.

印刷されたマニュアルでは,テキストは等幅フォントで植字され,余分な空白と空
白行は意味があります.Infoファイルでは,それぞれの行を5個のスペースで字下
げされ似たような結果が得られます.

@exampleコマンドを行の最初に単独で書いてください.例の終りは @end exampleコマンドを,同様に行の最初に単独行で書いて,印を付けて ください.

例えば,以下のようにします.

@example
mv foo bar
@end example

以下を生成します.

mv foo bar

@example@end exampleを含む行は出力に現れません.出力が良 く見えるように,@exampleの前に空白行を置き,もう1つの空白行を @end exampleの後に置くべきです.始めの@exampleと終りの @end exampleの中の空白行は出力に現れることに注意してください.

注意:例(や,問題となるTexinfoのあらゆる場所)の行でタブを使用しな いでください!TeXはタブを1つのスペースとして扱い,見えるようにはなりませ ん.これはTeXの問題です.(必要な場合,Emacsでタブをその領域の複数のスペー スに変換するためM-x untabifyを使用することができます.)

例は,論理的に言うと段落の"真中にある"ものと,例の後に字下げされずに続け られるテキストとなります.@noindentコマンドはテキストの部分が新し い段落のように字下げされるのを妨げます.

(@codeコマンドは文の中に埋め込まれるコードの例に使用されますが,前 後のテキストを区切りません.See @code.)


Node:noindent, Next:, Previous:example, Up:Quotations and Examples

@noindent

例やその他の包含物は,段落を部分に切り分けます.通常,フォーマッタは例に続 くテキストを新しい段落として字下げします.しかし,@noindentを行の 最初に単独行で,それに続くテキストの前に書くことで,これを妨げることができ ます.

例えば,以下のようにします.

@example
これは例です.
@end example

@noindent
この行は,字下げされません.御覧のように,行の最初は,その後も続けて全体が
左寄せになっています.(この全体の例は,@code{@@display}と
@code{@@end display}の間にあります.

以下を生成します.

これは例です.
この行は,字下げされません.御覧のように,行の最初は,その後も続けて全体が 左寄せになっています.(この全体の例は,@display@end displayの間にあります.

Info出力で空白行の数を正確に調整するため,@noindentを含む行は空白 行と,@end example行も生成しないことを覚えておいてください.

このマニュアルのTexinfoソースファイルでは,`生成します'と書いてあるそれぞ れの行に,@noindentを含む行が前にあります.

@noindentコマンドの後にカッコを置かないでください. @noindentは段落の外で使用されるので,それは不要です (see Command Syntax).


Node:lisp, Next:, Previous:noindent, Up:Quotations and Examples

@lisp

@lispコマンドはLispコードに対し使用します.それは @exampleコマンドの類語です.

これは,@lispコマンドと@end lispコマンドの間に書かれたテキ
ストの例です.

例の特徴に関する情報を保護するため,@exampleの代わりに @lispを使用してください.例えば,TexinfoファイルにLispコードのみを 評価しそれが全てである関数を書く場合,これは便利です.Lispライブラリのよう にTexinfoファイルを使用することができます.12

@lispの終りは,単独行の@end lispで印を付けてください.


Node:small, Next:, Previous:lisp, Up:Quotations and Examples

@small...ブロックコマンド

正規の@example@lispコマンドに加えて,Texinfoは "small"という例のような形式のコマンドがあります.これらは, @smalldisplay@smallexample@smallformatと, @smalllispです.これらのコマンドは全て,@smallbookコマンド (それでTeXは,デフォルトの8.5x11インチではなく7x9.25インチの切り詰めた サイズの印刷された本を書式化します)で使用するために設計されています.

TeXでは,@small...コマンドは,8.5x11インチの書式より小さい @smallbook書式のためのより小さいフォントで植字します.したがって, 長い行を持つ多くの例は短くする必要が無いように,より狭い @smallbookページに適するよう適合します.8.5x11インチの大きさで書式 化するときは,どちらのコマンドでも通常のフォントサイズで植字されます.この 場合,実際に@small...コマンドは"small"が無いものと同じです.

Infoでも,@small...コマンドは,"small"が無いコマンドと同じで す.

@small...ブロックは,対応する@end small...でマーク してください.例えば@smallexample@end smallexampleと組に なります.

@small...コマンドで,狭いページに適するよう手動で例を編集する ことなく,小さい書式のマニュアルの準備がより簡単になります.

一般的な規則として,(例えば)@exampleまたは@smallexampleの 1つのみを章の中で一貫して使用すると,印刷されたドキュメントはより良く見え ます.たまにだけ,2つの書式を混ぜるべきです.

@smallbookコマンドの詳細は,See Printing "Small" Books.


Node:display, Next:, Previous:small, Up:Quotations and Examples

@display@smalldisplay

@displayコマンドは,例のようなものを開始します.印刷されたマニュア ルで@displayは等幅フォントを選択しない以外は,@exampleコマ ンドに似ています.実際,フォントを全く指定しないので,テキストは @displayコマンドが使われていないところで現れるものと同じフォントで 現れます.

これは,@displayコマンドと@end displayコマンドの間に書かれ
たテキストの例です.@displayコマンドは,テキストを字下げしますが,
補充しません.

Texinfoは@smalldisplayコマンドも供給し,それは@displayに似 ていますが,@smallbook書式でより小さいフォントを使用します. See small.


Node:format, Next:, Previous:display, Up:Quotations and Examples

@format@smallformat

@formatコマンドは,印刷されたマニュアルで@formatが等幅フォ ントを選択せず,マージンを狭くしないこと以外は,@exampleに似ていま す.

これは@formatコマンドと@end formatコマンドの間に書かれてい
るテキストの例です.
この例で分かるように,
@formatコマンドは,テキストを補充しません.

Texinfoは@smallformatも供給し,それは,@formatに似ています が,@smallbook書式でより小さいフォントを使用します. See small.


Node:exdent, Next:, Previous:format, Up:Quotations and Examples

@exdent: 行の字下げのアンドゥ

@exdentコマンドは行が持つ字下げを削除します.このコマンドは行の最 初に書き,同じ行にあるコマンドに続くテキストのみに適用されます.テキストの 周りにカッコを使用しないでください.印刷されたマニュアルでは, @exdent行のテキストはローマンフォントで印刷されます.

@exdentは通常例の内部で使用されます.こうして,以下のようになりま す.

@example
この行は,@@exampleコマンドに続いています.
@exdent この行は伸ばされます.
この行は伸ばされた行に続いています.
@@end exampleは次の行にあります.
@end group

以下を生成します.

この行は,@exampleコマンドに続いています.

この行は伸ばされます.
この行は伸ばされた行に続いています. @end exampleは次の行にあります.

実際は,@exdentコマンドは滅多に使用されません.通常幅に変えるため, 通常は例を終りにしたり,ページをかえたりして,テキストを字下げしないように します.


Node:flushleft & flushright, Next:, Previous:exdent, Up:Quotations and Examples

@flushleft@flushright

@flushleft@flushrightコマンドは,ページの左右のマージン で,行の終りを整えますが,テキストを補充しません.コマンドはカッコを使用せ ず,単独行に書かれます.@flushleft@flushrightコマンドは, 単独行の@end flushleft@end flushrightコマンドで終りにな ります.

例えば,以下のようにします.

@flushleft
このテキストは
左揃えで書かれています.
@end flushleft

以下を生成します.

このテキストは 左揃えで書かれています.

@flushrightは,手紙の返信先住所でよく使用される字下げの形式を生成 します.例えば,以下のようにします.

@flushright
これは,
右揃えで書かれてたテキストの例です.@code{@flushright}コマンドは
全ての行を右揃えにしますが,
左端はバラバラのままです.
@end flushright

以下を生成します.

これは,

右揃えで書かれてたテキストの例です.@flushrightコマンドは

全ての行を右揃えにしますが,

左端はバラバラのままです.


Node:cartouche, Previous:flushleft & flushright, Up:Quotations and Examples

例の周りにCartouchを描く

印刷されたマニュアルで,@cartoucheコマンドは,その内容の周りに角丸 の箱を描きます.例や引用をより強調するために使用することができます.例えば, 例の1つの形式が強調のためcartoucheで囲まれているマニュアルを書くことができ ます.

@cartoucheは印刷されたマニュアルのみで効果があります.他の出力では 効果がありません.

例えば,以下のようにします.

@example
@cartouche
% pwd
/usr/local/share/emacs
@end cartouche
@end example

2行の例は,印刷されたマニュアルで,角丸の箱で囲まれます.


Node:Lists and Tables, Next:, Previous:Quotations and Examples, Up:Top

リストと表

Texinfoはリストと表を作成する方法がいくつかあります.リストは黒丸または番 号が付きます.2行の表は,最初の行の項目が強調されます.複数行の表もサポー トされています.


Node:Introducing Lists, Next:, Previous:Lists and Tables, Up:Lists and Tables

Texinfoは,リストや表のテキストの字下げと,列挙されたリストの番号付けを自 動的に行います.この最後の特徴は,リストを編集する場合,番号を付けなおす必 要が無いので便利です.

番号付のリストと表は,行の最初を適切な@-コマンドで開始し,単独行の対応す る@endコマンドで終了します.表と項目に分けられたリストのコマンドも, 開始の@-コマンドと同じ行に書式化情報を書くことを要求します.

例えば,@enumerateコマンドで列挙リストを開始し,@end enumerateコマンドでリストを終了してください.項目分けリストを @itemizeコマンドで開始し,@bulletのような書式化コマンドを 同じ行に続け,@end itemizeコマンドでリストを終了してください.

リストのそれぞれの要素は,@item@itemxコマンドに優先しま す.

ここに,異なる種類の表とリストの項目分けされたリストがあります.


ここに,同じ項目で列挙されたリストがあります.

  1. 黒点有りと無しの項目分けされたリスト.
  2. 番号や文字を使用した列挙リスト.
  3. 強調のある2行の表.

そして,ここに,同じ項目と@-コマンドの2行の表があります.

@itemize
黒点有りと無しの項目分けされたリスト.
@enumerate
番号や文字を使用した列挙リスト.
@table
@ftable
@vtable
強調のある2行の表.


Node:itemize, Next:, Previous:Introducing Lists, Up:Lists and Tables

@itemize: 項目分けされたリストの作成

@itemizeコマンドは,そのようなマークが要求されるそれぞれの段落の最 初に左のマージンに黒丸や他の印を使用した,字下げされた段落の並びを生成しま す.

行の最初に@itemizeを書き,項目分けされたリストを開始します.コマン ドに続く同じ行に,文字やマークを生成するTexinfoコマンドを続けてください. 通常,@itemizeの後に@bulletを書きますが,@minusや 結果としてInfoファイルで1文字を生成するあらゆるコマンドや文字を使用するこ とができます.全くマークを付けたくない場合は@wを使用してください. (@itemizeコマンド後に@bulletのようなコマンドを書く場合, {}を省略できます.)マークコマンドを指定しない場合はデフォルトは @bulletです.

@itemizeの後に,@end itemizeの行まで.字下げされた段落自身 のテキストを書いてください.

マージンに要求されるマークのため,それぞれの段落の前に@itemのみの 行を書いてください.@itemにテキストを続けても構いません.

通常,@itemの前に空白行を置くべきです.これはInfoファイルで空白行 を置きます.(TeXは,どちらの場合でも適切な空白を行間に挿入します.)

ここに@itemizeを使用に続きそれが生成する出力の例があります. @bulletはInfoでは*,TeXでは丸い点を生成します.

@itemize @bullet
@item
fooに対するいくつかのテキスト.

@item
barに対する
いくつかのテキスト.
@end itemize

これは,以下を生成します.

項目分けされたリストは他の項目分けされたリストを埋め込むことができます.こ こに黒点で印を付けたリストの中にダッシュで印を付けたリストを埋め込んだもの があります.

@itemize @bullet
@item
最初の項目.

@itemize @minus
@item
内部の項目.

@item
2番目の項目.
@end itemize

@item
2番目の外部項目.
@end itemize

これは,以下を生成します.


Node:enumerate, Next:, Previous:itemize, Up:Lists and Tables

@enumerate: 数字や文字が付いたリストの作成

@enumerateは,アイテムのラベルが黒丸の代わりに,連続した整数や文字 となる以外,@itemizeに似ています(see @itemize).

@enumerateコマンドを行の最初に書いてください.コマンドは引数を要求 しませんが,オプションとして数字または文字を受け入れます.引数が無い場合, @enumerateは数字1でリストを開始します.3のような数字 の引数で,コマンドはその番号からリストを開始します.aまたは Aのような場合,大文字または小文字で,コマンドはその文字でリストを開 始します.

項目分けされたリストと同じ方法で,列挙されたリストのテキストを書いてくださ い.列挙したいそれぞれの段落を始める前に,単独行に@itemを置いてく ださい.@itemで始まる行に他のテキストは一切書かないでください.

リストの項目の間に空白行を置くべきです.一般にInfoファイルが読みやすくなり ます.

ここに引数の無い@enumerateの例があります.

@enumerate
@item
根本的な原因.

@item
直接の原因.
@end enumerate

これは以下を生成します.

  1. 根本的な原因.
  2. 直接の原因.

ここに,3を引数とした例があります.

@enumerate 3
@item
元となる原因.

@item
逆の原因.

@item
永続する原因.
@end enumerate

これは以下を生成します.

  1. 元となる原因.
  2. 逆の原因.
  3. 永続する原因.

ここに,選択肢の短い概要があります.概要は,aの引数で @enumerateを使用して組み立てられています.

  1. @enumerate

    引数が無い場合,番号付リストを生成し,それは数字1で始まります.

  2. @enumerate positive-integer

    (正の)数字の引数の場合,その数字で番号付のリストを開始します.他の文章で中 断されたリストを続けるために,これを使用することができます.

  3. @enumerate upper-case-letter

    引数を大文字とした場合,それぞれの項目がその大文字で始まる文字で,マークが 付いたリストを開始します.

  4. @enumerate lower-case-letter

    引数を小文字とした場合,それぞれの項目がその小文字で始まる文字で,マークが 付いたリストを開始します.

アウトラインのように,番号付のリストを入れ子にすることができます.


Node:Two-column Tables, Next:, Previous:enumerate, Up:Lists and Tables

2行の表の作成

@tableは,@itemize(see @itemize)に似 ていますが.それぞれの項目に対し,名前や見出し行を指定できます. @tableコマンドは,2行の表を生成するために使用され,特に,用語集, 説明的な表示や,コマンドラインオプションの概要に役に立ちます.


Node:table, Next:, Previous:Two-column Tables, Up:Two-column Tables

@tableコマンドを行の最初に書き,同じ行に@code@samp@varや,@kbd(see Indicating)のような Texinfoの"表示"コマンドを引数として続けてください.これらのコマンドは通 常カッコで引数が続きますが,@itemは引数を供給するので,この場合は 引数無しでコマンド名を使用します.このコマンドは,それぞれの項目の最初の引 数に適合され,強調方法を定義します.例えば,@codeは最初の行のテキ ストを,@codeコマンドで強調します.(我々はコマンドラインオプション の@tableに対し@codeを勧めます.)

@tableの引数として,@asisコマンドの使用を選択することもで きます.@asisは何もしないコマンドです.@tableの後でこのコ マンドを使用した場合,TeXとInfoの書式化コマンドは,最初の行の項目を強調 せず("そのまま")出力します.

(@tableコマンドは,ここでリストアップした以外の他のコマンドと働く こともできます.しかし,通常はカッコ内に引数をとるコマンドのみが使用可能で す.)

それぞれの表の項目を,行の最初の@itemコマンドで開始してください. 最初の行のテキストを@itemコマンドと同じ行に書いてください.2番目の 行のテキストを@item行に続く行と,その次の行に書いてください.(2番 目が空の項目の場合,何も入力する必要はありません.)サポートテキストは好き な行数書くことができ,複数の段落にすることもできます.しかし, @itemと同じ行のテキストのみ,脚注も含めて,最初のコラムに置かれま す.

通常,@item行の前に空白行を置くべきです.これはInfoファイルで空白 を置きます.項目が非常に短いとき以外は,空白行は良く見えます.

例えば,以下の表は最初の行を@sampで強調しています.

@table @samp
@item foo
これは@samp{foo}に対する
テキストです.

@item bar
@samp{bar}に対するテキストです.
@end table

これは,以下を生成します.

foo
これはfooに対する テキストです.
bar
@samp{bar}に対するテキストです.

2行以上の名前の項目を1塊のテキストでリストアップしたい場合, @itemxコマンドを使用してください.(See @itemx.)


Node:ftable vtable, Next:, Previous:table, Up:Two-column Tables

@ftable@vtable

@ftable@vtableコマンドは,@ftableが自動的に表の 最初の行のそれぞれの項目行を関数の索引に入れ,@vtableが自動的に表 の最初の行のそれぞれの項目行を変数の索引に入れる以外,@tableコマン ドと同じです.これは,索引作成の仕事を単純にします.@itemコマンド と同じ行の項目のみ索引になり,それらはその行が現れる正確な形式で索引になり ます.索引の詳細は,See Indices.

2行の表を@ftable@vtableを使用し,行の最初に@-コマンドを 書くことで開始し,同じ行に引数として,@tableのためのもののように正 確に,@codeコマンドのようなTexinfoコマンドを続けます.そして,単独 行で@end ftable@end vtableコマンドを使用し終りにしてくだ さい.

前のセクションの@tableの例を参照してください.


Node:itemx, Previous:ftable vtable, Up:Two-column Tables

@itemx

同じ項目で,最初の行の項目が2つ以上あり,それぞれを単独行に現したい場合, @itemxコマンドを表の中で使用してください.@itemxを全ての最 初の項目に使用してください.@itemxは常に@itemコマンドに続 けるべきです.@itemxコマンドは,最初の行のテキストの上に余分な空白 を生成しない以外は,正確に@itemのように働きます.

例えば,以下のようにします.

@table @code
@item upcase
@itemx downcase
この2つの関数は,引数として文字や文字列を受け入れ,対応した大文字(小文字
)の文字や文字列を返します.
@end table

これは以下を生成します.

upcase
downcase
この2つの関数は,引数として文字や文字列を受け入れ,対応した大文字(小文字 )の文字や文字列を返します.

(この例は,2行の表に複数行をサポートしているテキストを表現していることに注 意してください.)


Node:Multi-column Tables, Previous:Two-column Tables, Up:Lists and Tables

複数行の表

@multitableで,それぞれの行が希望の幅を持つ,あらゆる数の表を構築 することが可能となります.

単独の@multitable行で行の幅を定義し,@tabコマンドで分けら れた行で,@itemコマンドに続けて,実際の表のそれぞれの列を書きます. 最終的に,@end multitableで表を終了します.詳細は以下のセクション にあります.


Node:Multitable Column Widths, Next:, Up:Multi-column Tables

複数行の表の幅

複数行の表の行の幅を2つの方法で定義できます.それは,行の長さを分数とする. または列のプロトタイプを使用するです.2つの方法を混ぜたものはサポートして いません.どちらの場合でも,@multitableコマンドと同じ行で幅は完全 に定義されます.

  1. 行の長さの分数で行の幅を指定するため,@columnfractionsと(1より小さ い)10進数を@multitableコマンドの後に以下のように書いてください.
    @multitable @columnfractions .33 .33 .33
    

    分数は上記がそうでないように,和が正確に1.0になる必要はありません.これで, 行全体を満たす必要の無い表を生成することができます.好みで0を前に置くこと ができます.

  2. 列のプロトタイプを指定するため,それぞれの行で最も長い項目を, @multitableコマンドの後にカッコで囲んで書いてください.例えば,以 下のようにします.
    @multitable {行1のためのいくつかのテキスト} {行2のため}
    

    最初の行は,`行1のためのいくつかのテキスト'で植字される幅を持ち,2行目は `行2のため'の幅を持ちます.

    プロトタイプ項目は,表自身に現す必要はありません.

    この例で単純なテキストを使用しましたが,プロトタイプ項目は,Texinfoコマン ドを含めることができます.@codeのようなマークアップコマンドは,特 に役に立つ可能性が高いです.


Node:Multitable Rows, Previous:Multitable Column Widths, Up:Multi-column Tables

複数行の表の列

行の幅を定義する@multitable(前のセクション参照)の後で, @itemで複数行の表の本体にそれぞれの列を開始し,行項目を @tabで分けます.改行は表の本体で特別ではなく,必要な場合ソースファ イルに入力行を切ることができます.

ここに,複数行の表の完全な例があります(The GNU Emacs Manualからのテ キストで,see Split Window).

@multitable @columnfractions .15 .45 .4
@item Key @tab Command @tab Description
@item C-x 2
@tab @code{split-window-vertically}
@tab Split the selected window into two windows,
with one above the other.
@item C-x 3
@tab @code{split-window-horizontally}
@tab Split the selected window into two windows
positioned side by side.
@item C-Mouse-2
@tab
@tab In the mode line or scroll bar of a window,
split that window.
@end multitable

以下を生成します.

Key Command Description
C-x 2 split-window-vertically Split the selected window into two windows, with one above the other.
C-x 3 split-window-horizontally Split the selected window into two windows positioned side by side.
C-Mouse-2 In the mode line or scroll bar of a window, split that window.


Node:Indices, Next:, Previous:Lists and Tables, Up:Top

索引

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

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


Node:Index Entries, Next:, Previous:Indices, Up:Indices

索引項目の作成

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

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

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


Node:Predefined Indices, Next:, Previous:Index Entries, Up:Indices

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

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

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


Node:Indexing Commands, Next:, Previous:Predefined Indices, Up:Indices

索引の項目の定義

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

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

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

@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 Marking Text),通常のTexinfoコマンドで変更することができます.

前もって定義されている6つの索引コマンドは,以下のものです.

@cindex concept
conceptに対する概念索引の項目を作成します.
@findex function
functionに対する関数索引の項目を作成します.
@vindex variable
variableに対する変数索引の項目を作成します.
@kindex keystroke
keystrokeに対するキー索引の項目を作成します.
@pindex program
programに対するプログラム索引の項目を作成します.
@tindex data type
data typeに対するデータ型索引の項目を作成します.
注意:索引項目にコロンを使用してはいけません.Infoでは,コロンはノー ド名と項目名を分けるので,項目自身のコロンはInfoを混乱させます.メニュー項 目の構造の詳細は,See The Parts of a Menu.

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


Node:Combining Indices, Next:, Previous:Indexing Commands, Up:Indices

索引の統合

分かれた索引がばかげて見える程,その1つが小さいなどの理由で,関数と概念の ように2つに分かれている索引を統合したいこともあります.

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


Node:syncodeindex, Next:, Previous:Combining Indices, Up:Combining Indices

@syncodeindex

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

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

@syncodeindex from to

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

cp
概念索引
fn
関数の索引
vr
変数の索引
ky
キーの索引
pg
プログラムの索引
tp
データ型の索引

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

@syncodeindex fn cp

これで,関数の索引に対し設計された全ての項目は,代わりに概念索引に統合され ます.

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

@syncodeindex vr cp
@syncodeindex fn cp

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


Node:synindex, Previous:syncodeindex, Up:Combining Indices

@synindex

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

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


Node:New Indices, Previous:Combining Indices, Up:Indices

新しい索引の定義

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

@defindex name

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

@defindex au

これはau索引と呼ばれる新しい索引を定義します.同時に,新しい索引作 成コマンド@auindexを作成し,索引項目のマークに使用できます.新しい 索引コマンドを,前もって定義されている索引コマンドの使用と全く同じように使 用してください.

例えば,ここにセクション見出しに概念索引項目と2つの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 Header)の前で使用 すべきです.


Node:Insertions, Next:, Previous:Indices, Up:Top

特別の挿入

Texinfoは,カッコのようなTexinfoで特別な意味を持つ文字を挿入するためと,入 力可能な単純な文字に対応しない他の画像要素のためのコマンドもいくつかありま す.


Node:Braces Atsigns, Next:, Previous:Insertions, Up:Insertions

@とカッコの挿入

@と弓カッコはTexinfoで特別な文字です.これらの文字をテキストに現れ るように挿入するため,Texinfoが誤解することを避けるため,@をこれら の文字の前に置く必要があります.

これらのコマンドの後にカッコを置いてはいけません.それらは不要です.


Node:Inserting An Atsign, Next:, Previous:Braces Atsigns, Up:Braces Atsigns

@を@@で挿入する

@@は,印刷されたまたはInfoで単一の@を意味します.

@@コマンドの後にカッコを置かないでください.


Node:Inserting Braces, Previous:Inserting An Atsign, Up:Braces Atsigns

{}を@{と@}で挿入する

@{は印刷されたまたはInfoで単一の{を意味します.

@}は印刷されたまたはInfoで単一の}を意味します.

@{@}コマンドの後にカッコを置かないでください.


Node:Inserting Space, Next:, Previous:Braces Atsigns, Up:Insertions

空白の挿入

以下のセクションは,文の中や後の様々な種類の空白を制御するコマンドを記述し ます.


Node:Not Ending a Sentence, Next:, Up:Inserting Space

文を終了しない

ピリオドや,感嘆符や疑問符が文の中か終りにあるかに依存して,少しまたは多く の空白が植字されたピリオドの後に挿入されます.ピリオドが文を終るときと省略 で使用されるときとを,常に決定できるわけではないので,特別なコマンドが必要 な状況もあります.通常Texinfoはピリオドの扱い方を推測できるので,特別なコ マンドは必要ありません.タイプライターを使用するときのようにピリオドを入力 し,それは2つの空白をピリオド,疑問符や,感嘆符の後に文の終りとして置くこ とを意味します.

余分な空白を続けるべきではない,ピリオド,疑問符,感嘆符や,コロンの後に @:コマンドを使用してください.例えば,文の終りではない省略の終り のピリオドの後に@:を使用してください.

例えば,以下のようにします.

The s.o.p.@: has three parts ...
The s.o.p. has three parts ...
The s.o.p. has three parts ...
The s.o.p. has three parts ...

(ついでながら,s.o.p.は"Standard Operating Procedure"の省略をを意 味します.)

@:はInfo出力で効果はありません.@:の後にカッコを置かないで ください.


Node:Ending a Sentence, Next:, Previous:Not Ending a Sentence, Up:Inserting Space

文を終える

単一の大文字で終る文の終りのピリオドの代わりに@.,感嘆符の代わり に@!,そして疑問符の代わりに@?を使用してください.そう しない場合,TeXは文字を省略だと考え,正しい文の終りの空白を挿入しません. ここに例があります.

Give it to M.I.B. and to M.E.W@.  Also, give it to R.J.C@.
Give it to M.I.B. and to M.E.W.  Also, give it to R.J.C.
Give it to M.I.B. and to M.E.W. Also, give it to R.J.C.
Give it to M.I.B. and to M.E.W. Also, give it to R.J.C.

Infoファイル出力では,@.は単なる.と同じです. @!@?も同様です.

Texinfoの@:@.のマージンは,Emacsの文の移動コマンド (see Sentences)でうまく働きます.

これらのコマンドの後にカッコを置かないでください.


Node:Multiple Spaces, Next:, Previous:Ending a Sentence, Up:Inserting Space

複数のスペース

通常,TeXは複数の空白文字(スペース,タブと,改行)を単一のスペースに収め ます.一方,Info出力では,改行をスペースにする以外,入力した通りの空白を維 持します.これは,Texinfoドキュメントの文の終りの2つのスペースを置くことが 重要だからです.

例の目的(プログラムが入力として複数の空白を扱うこと)や,見出しやリストの見 栄えのため,複数の連続した空白を実際に挿入したいこともあります.Texinfoは 3つのコマンドをサポートします.@SPACE@TABと, @NLで,それらは全て,出力に単一のスペースを挿入します.(ここ で,@SPACEは空白に続く@文字,すなわち@ を現 し,TABNLはタブ文字と文の終り,すなわち,@が行の最後 の文字のときを現します.)

例えば,以下のようにします.

Spacey@ @ @ @
example.

以下を生成します.

Spacey    example.

@SPACEの他の可能な利用法は, @multitable(see Multi-column Tables)に包括されました.

これらのコマンドにカッコを続けないでください.


Node:dmn, Previous:Multiple Spaces, Up:Inserting Space

@dmn{dimension}: 寸法単位の書式化

寸法単位のため,数字と省略の間に小さな空白または空白を全く置かないで, 12pt8.5inを書きたいときもあります.こうするた め,@dmnコマンドを使用することができます.このコマンドを見ると, TeXは適切な植字のためちょうどぴったりの空白を挿入します.Infoファイルは 空白を要求しないので,Info書式化コマンドでは空白を全く挿入しません.

@dmnコマンドを使用するため,数字を書き,間に空白を置かず,それに @dmn続けて,そしてカッコ内に寸法単位を続けてください.例えば以下の ようにします.

A4 paper is 8.27@dmn{in} wide.

以下を生成します.

A4 paper is 8.27in wide.

全ての人がこの形式を使用するわけではありません.Texinfoファイルでは 8.27@dmn{in}より8.27 in.@:8.27 inchesを 好む人もいます.しかしこれらの場合,フォーマッタは数字と寸法単位の間に改行 を挿入するかも知れないので,@w(see w)を使用してください.また, 文中の省略の後にピリオドを書く場合,TeXが余分の空白を挿入するのを避ける ため,ここで見たように,ピリオドの後に@:を書いてください. See Not Ending a Sentence.


Node:Inserting Accents, Next:, Previous:Inserting Space, Up:Insertions

アクセントの挿入

ここに,フローティングアクセントを挿入するためにTexinfoが挿入するコマンド の表があります.アルファベットでない名前のコマンドは引数の周りにカッコをと りません(それは次の文字をとります).(例外:@,は引数の周りにカッコを とります.)これは,アクセントを置かれた文字が言語では普通であるもの もあるので,ソースを可能な限り入力に便利で読み易くするためです.

コマンド 出力 意味するもの
@"o" ö" ウムラートアクセント
@'o ó アキュートアクセント
@,{c} ç セディラアクセント
@=o マクロン/オーバーバーアクセント
@^o ô サーカムフレックスアクセント
@`o ò グレーブアクセント
@~o õ チルダアクセント
@dotaccent{o} o. オーバードットアクセント
@H{o} o'' ロングハンガリアンアクセント
@ringaccent{o} o* リングアクセント
@tieaccent{oo} oo[ ティーアフターアクセント
@u{o} o( ブレーブアクセント
@ubaraccent{o} o_ アンダーバーアクセント
@udotaccent{o} .o アンダードットアクセント
@v{o} o< ハケックやチェックアクセント

この表は英語以外の言語で共通に使用される他の文字を挿入するTexinfoコマンド をリストアップします.

@exclamdown{} ¡ さかさまの !
@questiondown{} ¿ さかさまの ?
@aa{},@AA{} å,Å 円を持つ a,A
@ae{},@AE{} æ,Æ くっついた ae,AE
@dotless{i} i ドットの無い i
@dotless{j} j ドットの無い j
@l{},@L{} /l,/L 押え付けられた L,l
@o{},@O{} ø,Ø スラッシュ付の O,o
@oe{},@OE{} œ,Œ くっついた oe,OE
@ss{} ß エスツェットや尖った S


Node:Dots Bullets, Next:, Previous:Inserting Accents, Up:Insertions

省略と黒点の挿入

省略(ドットの行)は,ピリオドの列として植字されないので,特別なコマン ドがTexinfoの省略で使用されます.@bulletコマンドも特別です.それぞ れのコマンドは,カッコの組{}が続き,コマンド名とカッコの間には空 白を置きません.(続けて他のテキストを使用できるので,これらのコマンドにカッ コの使用が必要です.カッコが無い場合,フォーマッタは混乱するでしょう.詳細 は,See @-Command Syntax.)


Node:dots, Next:, Up:Dots Bullets

@dots{} (...)と@enddots{} (....)

続けて3つの点となり適切な空白がある`...'のような省略を生成するため, @dots{}コマンドを使用してください.入力ファイルに単純に3つのピリ オドを書かないでください.それはInfo出力では働きますが,印刷されたマニュア ルではピリオドの間に間違った量の空白を生成します.

同様に,@enddots{}コマンドは文の終りの省略(4つの点)を生成します ....


Node:bullet, Previous:dots, Up:Dots Bullets

@bullet{} (•)

大きな黒点やそれに近いものを生成するために@bullet{}を使用してく ださい.Infoではアスタリスクが使用されます.

これは黒点です:•

@itemize@bulletを使用するとき,@itemizeが供給す るので,カッコを入力する必要はありません.(See @itemize.)


Node:TeX and copyright, Next:, Previous:Dots Bullets, Up:Insertions

TeXと著作権シンボルの挿入

ロゴ`TeX'は特別な形での植字で,@-コマンドが必要です.著作権シンボル `©'も特別です.それぞれのコマンドはカッコの組{}が続き, コマンド名とカッコの間に空白は使用しません.


Node:tex, Next:, Up:TeX and copyright

@TeX{} (TeX)

`TeX'を生成するため@TeX{}コマンドを使用してください.印刷され たマニュアルでは,これは3つの通常の文字と異なる特別なロゴとなります. InfoではそれはTeXのように見えます.@TeX{}コマンドは TXが大文字の,Texinfoコマンドの中ではユニークなものです.


Node:copyright symbol, Previous:tex, Up:TeX and copyright

@copyright{} (©)

`©'を生成するために@copyright{}コマンドを使用してくだ さい.印刷されたマニュアルでは,これは円の中のcになり,Infoではこれ は(C)になります.


Node:pounds, Next:, Previous:TeX and copyright, Up:Insertions

@pounds{} (£): ポンド英貨

`£'を生成するために@pounds{}コマンドを使用してください. 印刷されたマニュアルでは,これは通貨ポンド銀貨のシンボルとなります.Infoで は#になります.他の通貨シンボルは残念ながら利用不可能です.


Node:minus, Next:, Previous:pounds, Up:Insertions

@minus{} (-): 負記号の挿入

負記号を生成するために@minus{}コマンドを使用してください.等幅フォ ントで,これは単一のハイフンですが,プロポーショナルフォントではシンボルは 負記号の慣習的な長さで,--ハイフンより少し長く,em-dashより短くなります.

-@minus{}で生成された負記号で,


`-'は文字-で生成したハイフンで,


`---'はテキストのem-dashです.

Infoで使用される等幅フォントで@minus{}はハイフンと同じです.

幅の違いは,使用する等幅フォントで作成されないので,@code@example@minus{}を使用すべきではありません.

項目分けされたリストのそれぞれの項目をはじめるマークを指定するため @minusを使用するとき,カッコを入力する必要はありません (see @itemize).


Node:math, Next:, Previous:minus, Up:Insertions

@math: 数学表現の挿入

短い数学的表現を@mathコマンドで書くことができます.カッコの間に以 下のように数学的表現を書いてください.

@math{(a + b)(a + b) = a^2 + 2ab + b^2}
(a + b)(a + b) = a^2 + 2ab + b^2

このように@mathコマンドはInfo出力で効果がありません.

複雑な数学的表現のため,TeXを直接使用することもできます(see Raw Formatter Commands).TeXを直接使用するとき,1つまたは2つの$(ド ル記号)の間に適切に数学的表現を書くことを覚えておいてください.


Node:Glyphs, Next:, Previous:math, Up:Insertions

例のためのglyph

Texinfoでは,コードは@example@end example@lisp@end lispで区切られた例として表示されることが多いで す.そのような例では,=>==>を使用して,評 価の結果や拡張を示すことができます.同様に,印刷された出力,エラーメッセー ジ,等式表現と,ポイントの位置を示すglyphを挿入するコマンドがあります.

glyph挿入コマンドは,例の内部で使用する必要はありませんが,ほとんどそうな ります.全てのglyph挿入コマンドは左右のカッコの組が続きます.


Node:Glyphs Summary, Next:, Previous:Glyphs, Up:Glyphs
=>
@result{}は,表現の結果を示します.
==>
@expansion{}はマクロ拡張の結果を表示します.
-|
@print{}は印刷された出力を示します.
error-->
@error{}は次のテキストがエラーメッセージだということを示します.
==
@equiv{}は,2つの形式が正確に等しいことを示します.
-!-
@point{}はポイントの場所を表示します.


Node:result, Next:, Previous:Glyphs Summary, Up:Glyphs

@result{} (=>): 評価結果を示す

表現の評価の結果を示すため@result{}を使用してください.

こうして,以下のようにします.

(cdr '(1 2 3))
     => (2 3)

"(cdr '(1 2 3))を評価すると(2 3)になる"と読めるでしょう.


Node:expansion, Next:, Previous:result, Up:Glyphs

@expansion{} (==>): 拡張を示す

表現がマクロ呼び出しのとき,新しい表現に拡張します. @expansion{}コマンドで拡張の結果を示すことができます.

例えば,以下のようにします.

@lisp
(third '(a b c))
     @expansion{} (car (cdr (cdr '(a b c))))
     @result{} c
@end lisp

以下を生成します.

(third '(a b c))
     ==> (car (cdr (cdr '(a b c))))
     => c

このように読めるでしょう.

(third '(a b c))(car (cdr (cdr '(a b c))))の拡張で,表現の 評価結果はcです.

この場合,@expansion{}@result{}が5個の空白で字下げす ると,例が良く見えることが多いです.


Node:Print Glyph, Next:, Previous:expansion, Up:Glyphs

@print{} (-|): 印刷された出力を示す

表現が実行中の印刷出力のときもあります.@print{}コマンドで印刷さ れた出力を示すことができます.

以下の例では,印刷されたテキストは-|で示され,表現の値は最後 の行に続きます.

(progn (print 'foo) (print 'bar))
     -| foo
     -| bar
     => bar

Texinfoソースファイルで,この例は以下のように書きます.

@lisp
(progn (print 'foo) (print 'bar))
     @print{} foo
     @print{} bar
     @result{} bar
@end lisp


Node:Error Glyph, Next:, Previous:Print Glyph, Up:Glyphs

@error{} (error-->): エラーメッセージを示す

コードの一部は,評価したときエラーとなる可能性があります. @error{}コマンドでエラーメッセージを示すことができます.

このようにします.

@lisp
(+ 23 'x)
@error{} Wrong type argument: integer-or-marker-p, x
@end lisp

以下を生成します.

(+ 23 'x)
error--> Wrong type argument: integer-or-marker-p, x

これは,表現を評価したとき,以下のエラーメッセージが出力されることを示しま す.

Wrong type argument: integer-or-marker-p, x

error-->自身はエラーメッセージの一部ではありません.


Node:Equivalence, Next:, Previous:Error Glyph, Up:Glyphs

@equiv{} (==): 等価を示す

2つの表現が同一の結果を生成することもあります.@equiv{}コマンド で,2つの形式が正確に同一だということを示すことができます.

このようにします.

@lisp
(make-sparse-keymap) @equiv{} (list 'keymap)
@end lisp

以下を生成します.

(make-sparse-keymap) == (list 'keymap)

これは,(make-sparse-keymap)の評価が(list 'keymap)の評価結果 と同一なものを生成することを示します.


Node:Point Glyph, Previous:Equivalence, Up:Glyphs Summary

@point{} (-!-): バッファのポイントを示す

Emacsバッファのテキストの例を見せる必要があることもあります.そのような例 では,バッファ名を含む2行のダッシュの間に問題のバッファ全体の内容を含むこ とが慣習です.

バッファのテキストでポイントの場所を表示するため,@point{}コマン ドを使用することができます.(ポイントのシンボルは,もちろんバッファのテキ ストの一部ではありません.それは,ポイントがある2文字の間の場所を示 します.)

以下の例は,単語changedを挿入するためのLispコマンドを評価した,前後 のfooバッファの内容を表示しています.

---------- Buffer: foo ----------
This is the -!-contents of foo.
---------- Buffer: foo ----------
(insert "changed ")
     => nil
---------- Buffer: foo ----------
This is the changed -!-contents of foo.
---------- Buffer: foo ----------

Texinfoソースファイルでは,例は以下のように書かれています.

@example
---------- Buffer: foo ----------
This is the @point{}contents of foo.
---------- Buffer: foo ----------

(insert "changed ")
     @result{} nil
---------- Buffer: foo ----------
This is the changed @point{}contents of foo.
---------- Buffer: foo ----------
@end example


Node:Footnotes, Next:, Previous:Glyphs, Up:Insertions

脚注

footnoteは,ドキュメントや主要なテキストを説明する参照のためです. 14


Node:Footnote Commands, Next:, Up:Footnotes

脚注コマンド

Texinfoでは脚注は@footnoteで作成されます.このコマンドは直後に左カッ コが続き,その後に脚注のテキストが続き,そして終端の右カッコが続きます.脚 注はどのような長さでも可能ですが(必要ならページに跨ります),通常は短いです. 以下はテンプレートです.

通常のテキスト@footnote{脚注のテキスト}

ここで見るように,@footnoteは脚注が付くテキストの直後に,余分な空 白無しにすべきです.そうしない場合,脚注の印は行を開始するでしょう.

例えば,この節は見本の脚注15が続きます. Texinfoソースファイルでは,以下のようになります.

...見本の脚注@footnote{これは見本の脚注です.}が続きます.Texinfoソー
ス...

印刷されたマニュアルや本では,脚注の参照マークは小さい,上付き数字です.脚 注のテキストは,ページの底に,水平方向の線の下に現れます.

Infoでは,脚注の参照マークは脚注番号が間にある1組のカッコで,(1)の ようになります.参照マークは,脚注のテキストへの相互参照のリンクが続きます.

HTML出力では,脚注参照は小さな上付き数字で,脚注テキストへのハイパーテキス トリンクとなります.

ところで,@tableに対する@itemコマンドの引数の脚注は,(通常 )@itemコマンドと同じ行にする必要があります.See Two-column Tables.


Node:Footnote Styles, Previous:Footnote Commands, Up:Footnotes

脚注スタイル

Infoは2つの脚注スタイルがあり,脚注のテキストがある場所を決定します.

Texinfoファイルは,どちらかの脚注スタイルでInfoファイルに書式化されます.

@footnotestyleコマンドを,Infoファイルの脚注スタイルを指定するため に使用してください.このコマンドは行の最初に書き,終りのノードスタイルに対 するend,または,分割ノードスタイルに対するseparateを,引数 として続けてください.

例えば,以下のようにします.

@footnotestyle end

または,以下のようにします.

@footnotestyle separate

@footnotestyleコマンドは,Texinfoファイルの最初に,end-of-header行 の前か直後に書いてください.(@footnotestyleコマンドが start-of-headerとend-of-header行の間に含まれる場合,領域の書式化コマンドは 脚注を指定したように書式化します.)

脚注スタイルを指定しない場合,書式化コマンドはデフォルトスタイルを使用しま す.現在texinfo-format-buffertexinfo-format-regionは `separate'スタイルを使用し,makeinfoは`end'スタイルを使用します.


Node:Images, Previous:Footnotes, Up:Insertions

画像の挿入

@imageコマンドで,外部ファイルで与えられた画像を挿入できます.

@image{filename, [width], [height]}

filename引数は必須で,異なるプロセッサは異なる書式をサポートするので, 拡張子付けてはいけません.

追加のwidthheight引数は,画像のサイズを指定します(Info出力で は無視されます).どちらも指定されない場合,画像はそのままの大きさで提供さ れます(ファイルで与えられたもの).一方のみが指定された場合,もう一方は比例 して大きさを調整します.両方指定された場合,両方が重視され,このため,縦横 比を変更され元画像が歪む可能性があります.

widthheightは有効なTeXの寸法単位を使用して指定できます. すなわち以下を使用します.

pt
ポイント(72.27pt = 1in)
pc
パイカ(1pc = 12pt)
bp
ビッグポイント(72bp = 1in)
in
インチ
cm
センチメートル(2.54cm = 1in)
mm
ミリメートル(10mm = 1cm)
dd
didôtポイント(1157dd = 1238pt)
cc
cicero (1cc = 12dd)
sp
scaledポイント(65536sp = 1pt)

例えば,以下はridt.epsファイルを高さ1インチで幅をそれに比例して大き さを変更します.

@image{ridt,,1in}

@imageがTeXで働くよう,ファイルepsf.texはTeXが見つけ られるところに配置する必要があります.(標準の場所は texmf/tex/generic/dvips/epsf.texで,そこでtexmfが TeXのディレクトリツリーのルートになります.)このファイルはTexinfo配布物 に含まれ,ftp://tug.org/tex/epsf.texで利用可能です.

@imageは図を表示する行で使用することができます.このため,表示しよ うとした場合,前のテキストに出力が入り込まないように,コマンドの前で残りの 空白行を確認してください.


Node:Breaks, Next:, Previous:Insertions, Up:Top

改行,改ページの作成と阻止

通常Texinfoファイルは,TeXとInfo書式化コマンドの1つの,両方で処理されま す.行,段落や,ページの分割は,出力のどれかで`間違った'場所で発生すること もあります.印刷されたマニュアルとInfoファイルの両方でテキストが正しく見え るように確認する必要があります.

例えば,印刷されたマニュアルでは,ページの分割は例の途中で不恰好に発生する かも知れません.これを避けるため,テキストを2ページに分割することから守る, グループコマンドを使用してテキストを保つことができます.反対に,通常発生し ない場所で改ページを強制したい場合もあります.幸い,これらの問題は滅多にあ りません.そうするときは,改行や改ページ,改行や改ページ防止や,ページ付け コマンドを使用してください.


Node:Break Commands, Next:, Previous:Breaks, Up:Breaks

改行改ページコマンドは,行や段落の分割を作成または許可します.

@*
強制改行します.
@sp n
n個の改行を省略します.
@-
任意のハイフンを挿入します.
@hyphenation{hy-phen-a-ted words}
hy-phen-a-ted wordsのハイフネーションポイントを定義します.

改行を避けるコマンドは,テキストを1行に全て一緒に保ちます.

@w{text}
textを改行やハイブネーションで2行に跨ることを避けます.

Infoはページが無いので,ページコマンドは印刷された出力のみで適用されます.

@page
印刷されたマニュアルで新しいページを開始します.
@group
印刷された1ページ現れるよう,テキストを一緒に保ちます.
@need mils
当該ページに十分余白が無い場合,新しい印刷ページを開始します.


Node:Line Breaks, Next:, Previous:Break Commands, Up:Breaks

@*: 改行の生成

@*コマンドは,印刷されたマニュアルとInfoの両方で,強制的に改行しま す.

例えば,以下のようにします.

この行は@* 2箇所で@*分割されます.

以下を生成します.

この行は
 2箇所で
分割されます.

(最初の@*コマンドの後のスペースは次の行にそのまま運ばれることに注 意してください.)

@*コマンドは,ファイルの著作権ページで良く使用されます.

これは,Texinfoドキュメントのエディション2.0@*,
それは...

この場合,@*コマンドは TeXが醜い方法でページ全体に行を引き延ば すことを阻止します.

注意してください:@*コマンドの後にカッコを書かないでくださ い.それらは不要です.

@*コマンドを含む段落の終りに@refillコマンドを書かないでく ださい.それは改行の発生後段落を充填し,改行の効果を否定します.


Node:- and hyphenation, Next:, Previous:Line Breaks, Up:Breaks

@-@hyphenation: TeXのハイフネーションを助ける

TeXのハイフネーションアルゴリズムは一般にかなり良いのですが,時々役に立 つハイフネーションポイントに失敗します.(滅多に無いことですが,間違ったハ イフネーションを挿入します.)そのため,通常の語彙のドキュメントや良く調整 された印刷エディションのため,TeX出力を助けたいと思うかも知れません. Texinfoはこのための2つのコマンドをサポートします.

@-
任意のハイフン,すなわちTeXがハイフネーションできる(が必須ではない)場所 を挿入します.これはTeXがハイフネーションを失敗したため,overfull hbox(see Overfull hboxes)を警告されたとき特に便利です.TeXは @-を含む単語にハイフネーションポイントを挿入しません.
@hyphenation{hy-phen-a-ted words}
TeXにhy-phen-a-ted wordsのハイフネーション方法を伝えます.御覧の ように,-をそれぞれのハイフネーションポイントに置きます.例えば以下 のようにします.
@hyphenation{man-u-script man-u-scripts}

TeXは,正しく一致した単語のときのみ指定されたハイフネーションポイントを 使用するので,必要な変形を全て与えてください.

Info出力はハイフネーションしないので,これらのコマンドはそこでは意味があり ません.


Node:w, Next:, Previous:- and hyphenation, Up:Breaks

@w{text}: 改行を妨げる

@w{text}textを出力し,textでの改行を妨げます.

@wコマンドを,TeXが行の終り付近で発生する,長い名前や文節を自動 的にハイフネーションを避けるために使用することができます.例えば,以下のよ うにします.

GNUソフトウェアを@w{@samp{ftp.gnu.org}}からコピーできます.

以下を生成します.

GNUソフトウェアをftp.gnu.orgからコピーできます.

同様に,改行されないスペースを生成するためにも@wを使用できます.

フォーマッタはこの@w{ }スペースを改行しません.


Node:sp, Next:, Previous:w, Up:Breaks

@sp n: 空白行の挿入

@sp nのみを含むもので始まる行は,印刷されたマニュアルと Infoファイルの両方で,n個の空白行の空間を生成します.@spは段 落の分割も強制します.例えば,以下のようにします.

@sp 2

2行の空白行を生成します.

@spコマンドはタイトルページでもっとも良く使用されます.


Node:page, Next:, Previous:sp, Up:Breaks

@page: 新しいページの開始

@pageのみを含む行は印刷されたマニュアルで,新しいページを開始しま す.このコマンドは,Infoファイルではページが無いので効果がありません. @pageコマンドは,著作権ページを開始するため,Texinfoファイルの @titlepageセクションで良く使用されます.


Node:group, Next:, Previous:page, Up:Breaks

@group: 改ページを妨げる

@groupコマンドは(単独行で),@exampleや類似の縦方向に分ける ことができないグループを開始するものの内部で使用され,それは印刷された出力 で1ページに全体が現れます.グループは@end groupのみを含む行で終了 します.この2つの行はそれ自身出力に現れず,Info出力では効果がありません.

@groupは様々な文脈で概念的に意味がありますが,現在のインプリメント では,@exampleとその変形の@display@format@flushleft@flushrightのみで確実に働きます. See Quotations and Examples. (これら全てのコマンドが共通に持つものは, 入力のそれぞれの行が出力を生成することです.)他の内容では, @groupは異常な縦の空白を生成するはずです.

この書式の必要条件は,以下のように書くべきだということです.

@example
@group
...
@end group
@end example

このように,@group@end groupコマンドを用いて, @example@end exampleコマンドの中に書きます.

@groupコマンドは例を1ページにまとめるため,最もよく使用されます. このTexinfoマニュアルでは,100以上の例として,@group@end groupで囲まれたテキストが含まれています.

グループの終了を忘れた場合,TeXを実行したとき,奇妙で不可解なエラーメッ セージを得るかもしれません.これは,TeXがTexinfoファイルの残りを1ページ に置こうとして,重要なテキストを処理するまでエラーメッセージを生成しはじめ ないためです.TeXで理解できないエラーメッセージを得る場合, @end groupが無いところを探すことは,良い経験則です.


Node:need, Previous:group, Up:Breaks

@need mils: 改ページを妨げる

@need nのみを含む行は,現在のページの残りがnミル(千分 の1インチ)以下の場合,印刷されたマニュアルで新しいページを開始します.引数 nの周りにカッコを使用しないでください.@needコマンドは, Infoはページが無いので,Infoでは効果はありません.

この段落は,ページの残りが800ミル(10分の8インチ)以下の場合,TeXに新しい ページを開始するよう伝える,@needコマンドで処理されます.以下のよ うにします.

@need 800
この段落は,...

@needコマンドは孤立行(印刷ページの底の単一行)を避けるのに役立ちま す.


Node:Definition Commands, Next:, Previous:Breaks, Up:Top

コマンドの定義

@deffnコマンドと他の定義コマンドで,関数,変数,マクロ,コマ ンド,ユーザーオプション,特別な形式と,その他の一様な書式での人工物のよう なものを記述可能になります.

Infoファイルでは,定義はエンティティのカテゴリ--`関数',`変数'や,あらゆ るもの--を定義の最初の行の始めに現し,エンティティの名前と引数が続きます. 印刷されたマニュアルでは,コマンドはTeXにエンティティの名前とその引数を 左端のマージンにに印刷させ,カテゴリを次に右端のマージンに印刷させます.両 方の出力形式で,定義の本体は字下げされます.同様に,エンティティ名は適切な 索引に入ります.@deffnは関数索引に名前が入り,@defvrは変数 索引に入る等のようになります.

マニュアルは,与えられた名前に対し1つ以上の定義は不要で含めるべきではあり ません.概要を含む付録は,定義コマンドより@tableを使用すべきです.


Node:Def Cmd Template, Next:, Previous:Definition Commands, Up:Definition Commands

定義のテンプレート

@deffnコマンドは,関数に似ているエンティティの定義に使用されます. @deffnコマンドで定義を書くために,@deffnコマンドを行の最初 に書き,同じ行にエンティティのカテゴリ,エンティティ自身の名前と,(存在す る場合は)引数を続けてください.そして,続く行に定義の本体を書いてください. (本体に例を埋め込むこともできます.)終りに,単独行に書かれた@end deffnコマンドで定義を終えてください.(他の定義コマンドも同じ書式が続きま す.)

定義のテンプレートは以下のようになります.

@deffn category name arguments...
body-of-definition
@end deffn

例えば,以下のようにします.

@deffn Command forward-word count
このコマンドは,ポイントを@var{count}語前に(または,@var{count}が負
の場合は後ろに)移動します....
@end deffn

以下を生成します.

forward-word count Command
このコマンドは,ポイントをcount語前に(または,countが負の場合 は後ろに)移動します....

タイトルのようなカテゴリ名は大文字にしてください.`Interactive Command'の ような文節のように,カテゴリ名が空白を含む場合,周りにカッコを書いてくださ い.例えば以下のようにします.

@deffn {Interactive Command} isearch-forward
...
@end deffn

そうしない場合,2番目の単語はエンティティの名前と誤解されます.

定義コマンドには,他より一般的なものもあります.例えば,@deffnコマ ンドは関数やそれに似たもの--引数を取るエンティティ--のための,一般的な定 義コマンドです.このコマンドを使用するとき,エンティティが属するカテゴリを 指定すべきです.@deffnコマンドは,3つの前もって定義されている専門 分野に相違のある,@defun@defmacと,@defspecを処 理し,それはカテゴリを指定します.それぞれ"関数","マクロ"と,"特別な 形式"です.(Lispでは特別な形式は関数に似たエンティティです. )@defvrコマンドも,変数の特定の種類を記述するため専門分野に相違の あるものとして,前もって定義されたものを伴います.

@defunのような専門分野に相違のあるものに対するテンプレートは,カテ ゴリを指定する必要が無い以外,一般の定義のテンプレートに似ています.

@defun name arguments...
body-of-definition
@end defun

このようにします.

@defun buffer-end flag
この関数は@var{flag}が1より小さい場合@code{(point-min)}を返し,それ
以外では@code{(point-max)}を返します....
@end defun

以下を生成します.

buffer-end flag Function
この関数はflagが1より小さい場合(point-min)を返し,それ以外で は(point-max)を返します....

定義の内部に@exampleの使用を含む関数定義の詳細な例は, See Sample Function Definition.

ほかの特別なコマンドは,@defunのように動作します.


Node:Optional Arguments, Next:, Previous:Def Cmd Template, Up:Definition Commands

オプションと繰り返しの引数

オプションや繰り返しの引数を取るエンティティもあり,それは角カッコと丸カッ コを使用する特有なglyphで指定されるかも知れません.例えば,特別な形式 は,引数リストを,簡単な関数より複雑な方法で分けられた引数に区切ることも良 くあります.

ここに想像上の,特別な形式の例の@defspecの行があります.

foobar (var [from to [inc]]) body... Special Form

この例では,引数fromtoがオプションですが,両方有るまたは両方 無い必要が有ります.それらが有る場合,incは同様にオプションで指定で きます.これらの引数は,bodyと分けるため,リストに引数varでま とめられ,それは形式の残りの全ての要素を含みます.

Texinfoソースファイルでは,この@defspec行は以下のように書かれます (この例のように2行以上には分かれません).

@defspec foobar (@var{var} [@var{from} @var{to}
     [@var{inc}]]) @var{body}@dots{}

関数はコマンドと変数の索引でfoobarの下にリストアップされます.


Node:deffnx, Next:, Previous:Optional Arguments, Up:Definition Commands

2つ以上の`最初の'行

定義に対し2つ以上の`最初の'またはヘッダ行を作成するため,最初の @deffn行に@deffnxで始まる行を続けてください. @deffnxコマンドは,その行と前の行の間に余分な縦方向の空白を生成し ない以外,正確に@deffnのように動作します.

例えば以下のようにします.

@deffn {Interactive Command} isearch-forward
@deffnx {Interactive Command} isearch-backward
この2つの検索コマンドは似ていて...
@end deffn

以下を生成します.

isearch-forward Interactive Command
isearch-backward Interactive Command
この2つの検索コマンドは似ていて...

それぞれの定義コマンドは`x'が付きます.@defunx@defvrx@deftypefunx,などです.

`x'の形式は@itemxとちょうど同じです.@itemx,を参照してください.


Node:Def Cmds in Detail, Next:, Previous:deffnx, Up:Definition Commands

コマンドの定義

Texinfoは1ダース以上の定義コマンドを供給し,それら全てをこのセクションで記 述します.

定義コマンドは,自動的にエンティティ名を適切な索引に入れます.例えば, @deffn@defunと,@defmacは関数の索引に関数名を入 れます.@defvr@defvarは変数の索引に変数名を入れます.

以下のほとんどの例はLispの例ですが,コマンドは他のプログラミング言語でも使 用可能です.


Node:Functions Commands, Next:, Previous:Def Cmds in Detail, Up:Def Cmds in Detail

関数と類似のエンティティ

このセクションは関数や類似のエンティティの記述のためのコマンドを記述します.

@deffn category name arguments...
@deffnコマンドは,関数,対話式コマンドと,引数を取る類似のエンティ ティのための一般的な定義コマンドです.定義されているエンティティのカテゴリ を記述する用語を選択する必要があります.例えば,"関数"は,エンティティが 関数の場合使用されます.@deffnコマンドは,行の最初に書かれ,同じ行 に記述するエンティティのカテゴリ,この特定のエンティティの名前と,存在する 場合その引数を続けます.単独行の@end deffnで定義を終了してください.

例えば,ここに定義があります.

@deffn Command forward-char nchars
ポイントを@var{nchars}文字前に移動します.
@end deffn

これは,1つの引数ncharsを持つforward-charという名前の"コマン ド"の,どちらかというと簡潔な定義を表示します.

@deffnは,ncharsのような引数名を,これらの名前がメタ構文変数 と考えるので,@varが使用されているかのように,イタリックまたは大文 字で印刷します--それは実際の引数の値を意味します.記述のテキストで引数の 値を述べるため,明示的に@varで引数名を書いてください.上記の例では, このように@var{nchars}を使用しました.

@deffnのテンプレートは以下のとおりです.

@deffn category name arguments...
body-of-definition
@end deffn

@defun name arguments...
@defunコマンドは関数をに対する定義コマンドです.@defunは, @deffn Function ...と同じです.

例えば,以下のようにします.

@defun set symbol new-value
シンボル@var{symbol}の値を@var{new-value}に変更します.
@end defun

これは,引数がsymbolnew-valueの関数setの,どちらかと いうと簡潔な定義を表示します.@defun行の引数名は,@varで囲 まれているかのように,自動的にイタリックまたは大文字で現れます.単独行の @end defunで定義を終了してください.

テンプレートは以下のとおりです.

@defun function-name arguments...
body-of-definition
@end defun

@defunは関数索引に項目を生成します.

@defmac name arguments...
@defmacコマンドはマクロの定義コマンドです.@defmac@deffn Macro ...と同じで,@defunのように動作します.
@defspec name arguments...
@defspecコマンドは,特別な形式の定義コマンドです.(Lispでは,特別 な形式は関数に良く似たエンティティです.see Special Forms.)@defspec@deffn {Special Form} ...と同じで,@defunのように動作します.


Node:Variables Commands, Next:, Previous:Functions Commands, Up:Def Cmds in Detail

変数と類似のエンティティ

ここに,変数と類似のエンティティを定義するためのコマンドがあります.

@defvr category name
@defvrコマンドは変数のようなものの一般的な定義コマンドです--エン ティティは値を記録します.定義されたエンティティのカテゴリを記述するための, 用語を選択する必要があります.例えば,"変数"はエンティティが変数の場合使 用されます.@defvrコマンドを行の最初に書き,同じ行にエンティティの カテゴリとエンティティの名前を続けてください.

タイトルのようにカテゴリ名を大文字にしてください.カテゴリ名が"User Option"のようにスペースを含む場合,カッコで囲んでください.そうしない場合, 2番目の単語はエンティティの名前だと誤解されます.例えば,以下のようにしま す.

@defvr {User Option} fill-column
このバッファローカル変数は,
補充された行の最大幅を指定します.
...
@end defvr

単独行の@end defvrで定義を終了してください.

テンプレートは以下の通りです.

@defvr category name
body-of-definition
@end defvr

@defvrnameに対し,変数索引の項目を作成します.

@defvar name
@defvarコマンドは,変数の定義コマンドです.@defvar@defvr Variable ...と同じです.

例えば,以下のようにします.

@defvar kill-ring
...
@end defvar

テンプレートは以下の通りです.

@defvar name
body-of-definition
@end defvar

@defvarは,nameに対し変数索引の項目を作成します.

@defopt name
@defoptコマンドは,ユーザーオプション,すなはち,ユーザーの 好みで変更する変数に対する定義コマンドです.Emacsは多くのそのようなものが あります(see Variables). @defopt@defvr {User Option} ...と同じで, @defvarのように働きます.


Node:Typed Functions, Next:, Previous:Variables Commands, Up:Def Cmds in Detail

型のある言語の関数

@deftypefnコマンドとその変形は,CやC++のような変数の型と関数を宣言 する必要がある言語の関数を記述するためのものです.

@deftypefn category data-type name arguments...
@deftypefnコマンドは,関数と,引数を取るものや型のある類似のエンティ ティの定義コマンドです.@deftypefnは行の最初に書き,同じ行に記述さ れるエンティティのカテゴリ,戻り値の型,この特定のエンティティの名前と,存 在する場合引数が続きます.

例えば,以下のようにします.

@deftypefn {Library Function} int foobar
   (int @var{foo}, float @var{bar})
...
@end deftypefn

("..."の前のテキストは,2行で表示され,Texinfoファイルでは実際には単 1行です.)Infoでは以下を生成します.

-- Library Function: int foobar (int FOO, float BAR)
...

これは,foobarが"ライブラリ関数"で,それはintを返し,引数 はfoo(int)とbar(float)だということを意味します.

@deftypefnで書いた引数名は,暗黙で@varにはなりません --@deftypefnの引数の実際の名前はデータ型名とキーワードの間で,典 型的にバラバラなので,Texinfoは助けなしに見つけることができません.代わり に,@varを引数名の周りに明示的に書く必要があります.上の例では,引 数名はfoobarです.

@deftypefnのテンプレートは以下の通りです.

@deftypefn category data-type name arguments ...
body-of-description
@end deftypefn

categorydata typeが1単語以上の場合,単一の引数にするためカッ コで囲む必要があることに注意してください.

Adaのようなパッケージ言語のプロシージャを記述する場合,前の段落で記述され ている慣習と幾分反対の方法として,@deftypefnの使用を手法として考え るかも知れません.

例えば以下のようにします.

@deftypefn stacks private push
        (@var{s}:in out stack;
        @var{n}:in integer)
...
@end deftypefn

(@deftypefnの引数は,3行に分かれていますが,実際のTexinfoファイル では単一行になります.)

この例では,プロシージャは`プロシージャ'と分類するのではなくパッケージ stacksに属するものとして分類され,そのデータ型はprivateとし て記述されます.(プロシージャの名前はpushで,その引数はsnです.)

@deftypefnnameに対し関数索引に項目を作成します.

@deftypefun data-type name arguments...
@deftypefunコマンドは,型のある言語の関数のための特別な定義コマン ドです.そのコマンドは@deftypefn Function ...と同じです.

このようにします.

@deftypefun int foobar (int @var{foo}, float @var{bar})
...
@end deftypefun

Infoでは以下を生成します.

-- Function: int foobar (int FOO, float BAR)
...

テンプレートは以下の通りです.

@deftypefun type name arguments...
body-of-description
@end deftypefun

@deftypefunnameに対し関数索引に項目を作成します.


Node:Typed Variables, Next:, Previous:Typed Functions, Up:Def Cmds in Detail

型のある言語の変数

型のある言語の変数は,型のある言語の関数に似た方法で処理されます. See Typed Functions. 一般的な定義コマンド@deftypevr@deftypefnに対応し,特別な定義コマンド@deftypevar@deftypefunに対応します.

@deftypevr category data-type name
@deftypevrコマンドは,型のある言語の変数のようなもののための一般的 な定義コマンドです--値を記録するエンティティです.定義されるエンティティ のカテゴリを記述するための用語を選択する必要があります.例えば,"変数"は エンティティが変数の場合使用します.

@deftypevrコマンドは,行の最初に書かれ,同じ行に記述されるエンティ ティのカテゴリ,データの型,そして特定のエンティティの名前が続きます.

例えば,以下のようにします.

@deftypevr {Global Flag} int enable
...
@end deftypevr

Infoでは以下を生成します.

-- Global Flag: int enable
...

テンプレートは以下の通りです.

@deftypevr category data-type name
body-of-description
@end deftypevr

@deftypevrは,nameに対し変数索引に項目を作成します.

@deftypevar data-type name
@deftypevarコマンドは,型のある言語の変数のための特別な定義コマン ドです.@deftypevar@deftypevr Variable ...と同じです.

例えば,以下のようにします.

@deftypevar int fubar
...
@end deftypevar

Infoでは以下を生成します.

-- Variable: int fubar
...

テンプレートは以下の通りです.

@deftypevar data-type name
body-of-description
@end deftypevar

@deftypevarは,nameに対し,変数索引の項目を作成します.


Node:Abstract Objects, Next:, Previous:Typed Variables, Up:Def Cmds in Detail

オブジェクト指向プログラミング

ここに,オブジェクト指向プログラミングで使用するような,抽象的なオブジェク トに関する記述を書式化するためのコマンドがあります.クラスは抽象的なオブジェ クトの定義された型です.クラスのインスタンスはクラスの型を持つ特定のオブジェ クトです.インスタンス変数はクラスに属するがそれぞれのインスタンスが独自の 値を持つ変数です.

定義では,クラス名はクラスに対するプログラミングシステムで本当に定義された 名前の場合,@codeをその周りに書くべきです.そうしない場合,通常の テキストフォントで印刷されます.

@defcv category class name
@defcvコマンドは,オブジェクト指向プログラミングで,クラスに関連す る変数に対する一般的な定義コマンドです.@defcvコマンドは3つの引数 をとります.定義している事柄のカテゴリ名,属するクラスと,その名前です.こ のようにします.
@defcv {Class Option} Window border-pattern
...
@end defcv

これは,Windowクラスのborder-patternクラスオプションの定義の 最初の行の書き方を説明しています.

テンプレートは以下の通りです.

@defcv category class name
...
@end defcv

@defcvは変数索引に項目を作成します.

@defivar class name
@defivarコマンドは,オブジェクト指向プログラミングのインスタンス変 数に対する定義コマンドです.@defivar@defcv {Instance Variable} ...と同じです.

テンプレートは以下の通りです.

@defivar class instance-variable-name
body-of-definition
@end defivar

@defivarは変数索引に項目を作成します.

@deftypeivar class data-type name
@deftypeivarコマンドは,オブジェクト指向プログラミングの型を付けら れたインスタンス変数に対する定義コマンドです.それは,@defivarに, インスタンス変数の型を指定するためのdata-typeパラメータが付いたもの に似ています.@deftypeivarは変数索引に項目を作成します.
@defop category class name arguments...
@defopコマンドは,オブジェクト指向プログラミングのメソッドに似てい るエンティティに対する定義コマンドです.これらのエンティティは,関数のよう に引数を取りますが,オブジェクトの特定のクラスに関連付けされています.

例えば,メソッドとしてクラスに関連付けされているラッパーと呼ばれる概 念を持つシステムもありますが,それは関数というよりマクロのように動作します. @defop Wrapperをこれらの1つとしての記述に使用することができます.

メソッドとオペレーションを分けた方が便利なときもあります.オペレーショ ンをメソッドの詳述と考えることができます.このように,ウィンドウシステムは 全てのウィンドウクラスがexposeと言う名前のメソッドを持つことを指定 できます.我々は,このウィンドウシステムが一般的なウィンドウ上に exposeオペレーションを定義していると言っているのです.特に,オペレー ションは名前を持ち,引数のパターンも指定されています.全てのオペレーション をインプリメントしたメソッドは,オペレーションで使用されるアプリケーション がインプリメントしたメソッドを知らないでそれを行うので.同じ引数を受け入れ るようにする必要があります.

メソッドよりオペレーションを説明した方がより意味があることも良くあります. 例えば,ウィンドウアプリケーション開発者は,exposeオペレーションを 知る必要がありますが,与えられたウィンドウのクラスが,このオペレーションを インプリメントした独自のメソッドを持つかどうかを考慮する必要はありません. このオペレーションを記述するため,以下のように書きます.

@defop Operation windows expose

@defopコマンドは,行の最初に書かれ,同じ行にオペレーションのカテゴ リの全体的な名前,オペレーションクラスの名前,オペレーションの名前,そして, 存在する場合その引数を続けます.

テンプレートは以下の通りです.

@defop category class name arguments...
body-of-definition
@end defop

@defopは`expose on windows'のような項目を,関数索引 に作成します.

@deftypeop category class data-type name arguments...
@deftypeopコマンドは,オブジェクト指向プログラミングの型付のオペレー ションに対する定義コマンドです.それは@defopに,メソッドの戻り値を 指定するdata-typeパラメータを加えたものに似ています. @deftypeopは関数索引に項目を作成します.
@defmethod class name arguments...
@defmethodコマンドは,オブジェクト指向プログラミングのメソッドに対 する定義コマンドです.メソッドは特定のオブジェクトのクラスとそのサブクラス のためのオペレーションをインプリメントする関数のようなものです.

@defmethod@defop Method ...と同じです.コマンドは行 の最初に書かれ,メソッドのクラス名,メソッド名,そして存在する場合はその引 数が続きます.

例えば,以下のようにします.

@defmethod bar-class bar-method argument
...
@end defmethod

これは,クラスbar-classbar-methodと呼ばれるメソッドのため の定義を説明しています.メソッドは引数を取ります.

テンプレートは以下の通りです.

@defmethod class method-name arguments...
body-of-definition
@end defmethod

@defmethodは,関数索引に`bar-method on bar-class'の ような項目を作成します.

@deftypemethod class data-type name arguments...
@deftypemethodコマンドは,C++やJavaのようなオブジェクト指向の型の ある言語のメソッドのための定義コマンドです.それは,@defmethodコマ ンドに,メソッドの戻り値を指定するためのdata-typeパラメータを追加し たものに似ています.


Node:Data Types, Previous:Abstract Objects, Up:Def Cmds in Detail

データの型

ここにデータの型に対するコマンドがあります.

@deftp category name attributes...
@deftpコマンドは,データの型のための一般的な定義コマンドです.その コマンドは行の最初に書かれ,同じ行にカテゴリ,型の名前(intfloatのようなもの),そして型のオブジェクトの属性名が続きます.この ように,このコマンドをintfloatを記述するために使用すること ができ,その場合,カテゴリとしてdata typeを使用することができます. (データの型は,オペレーションがそれに対し実行されることが可能なように決定 する目的に対する,特定のオブジェクトのカテゴリです.)

例えば,Lispでは,pairは特定のデータの型に名前を付け,その型のオブジェ クトはCARCDRと呼ばれる2つのスロットを持ちます.ここに, pairの定義の最初の行を書く方法があります.

@deftp {Data type} pair car cdr ... @end deftp

テンプレートは以下の通りです.

@deftp category name-of-type attributes...
body-of-definition
@end deftp

@deftpはデータの型の索引に項目を作成します.


Node:Def Cmd Conventions, Next:, Previous:Def Cmds in Detail, Up:Definition Commands

定義を書くための慣習

@deffn@defunやその他の定義コマンドの1つを使用し定義を書 くとき,forward-word関数に対するcount引数のように意味を示す, 引数の使用に注意してください.同様に,integerのように引数名が型名を 含む場合,引数が実際にその型であるよう注意してください.


Node:Sample Function Definition, Previous:Def Cmd Conventions, Up:Definition Commands

関数定義の見本

関数定義は,@defun@end defunを使用します.関数名は @defunコマンドの直後に続き,同じ行にパラメータリストが続きます.

ここにCalling Functions,からの定義があります.

apply function &rest arguments Function
applyargumentsfunctionを呼び出し,funcallに 似ていますが,1点異なります.argumentsの終りは,functionに与え られた単一の引数というよりはむしろ引数のリストです.同様に我々は,このリス トが他の引数に加えられるとも言っています.

applyfunction呼び出しの結果を返します.funcallのよう に,functionはLisp関数やプリミティブ関数である必要があります.特別な 形式とマクロは,applyでは意味がありません.

(setq f 'list)
     => list
(apply f 'x 'y 'z)
error--> Wrong type argument: listp, z
(apply '+ 1 2 '(3 4))
     => 10
(apply '+ '(1 2 3 4))
     => 10

(apply 'append '((a b c) nil (x y z) nil))
     => (a b c x y z)

applyを使用した興味深い例は,mapcarの記述で見付かります.

Texinfoソースファイルでは,この例は以下のようになります.

@defun apply function &rest arguments
@code{apply}は@var{arguments}で@var{function}を呼び出し,
@code{funcall}に似ていますが,1点異なります.@var{arguments}の終りは,
@var{function}に与えられた単一の引数というよりはむしろ引数のリストです.
同様に我々は,このリストが他の引数に@dfn{加えられる}とも言っています.

@code{apply}は@var{function}呼び出しの結果を返します.
@code{funcall}のように,@var{function}はLisp関数やプリミティブ関数で
ある必要があります.特別な形式とマクロは,@code{apply}では意味がありま
せん.

@example
(setq f 'list)
     @result{} list
(apply f 'x 'y 'z)
@error{} Wrong type argument: listp, z
(apply '+ 1 2 '(3 4))
     @result{} 10
(apply '+ '(1 2 3 4))
     @result{} 10

(apply 'append '((a b c) nil (x y z) nil))
     @result{} (a b c x y z)
@end example

@code{apply}を使用した興味深い例は,@code{mapcar}の記述で見付かります.
@end defun

このマニュアルでは,この関数はapplyの下のコマンドと変数索引にリスト アップされています.

通常の変数とユーザーオプションは,変数が引数を取らない以外,関数に対するも のに似た書式を使用し記述されます.


Node:Conditionals, Next:, Previous:Definition Commands, Up:Top

目に見えるテキストの条件

異なる出力書式に対し,異なるテキストを使用するのが良いこともあります.例え ば,印刷されたマニュアルとInfo出力に対し異なるテキストを指定する,条 件コマンドを使用することができます.

条件コマンドはネストできません.

条件コマンドは,以下のカテゴリを含みます.


Node:Conditional Commands, Next:, Up:Conditionals

条件コマンド

@ifinfoは,印刷されたマニュアルに植字されるとき,TeXで無視され るテキストの部分を開始します.テキストの部分は,Infoファイルでのみ現れます. @ifinfoコマンドは,単独行に現すべきです.単独行の@end ifinfoを含む行で,Infoのみのテキストを終えるべきです.Texinfoファイルの最 初で,Infoの許可は@ifinfo@end ifinfoでマークされた領域に 含まれます.(See Info Summary and Permissions.)

@iftex@end iftexコマンドは,テキストを,印刷されたマニュ アルに現し,Infoファイルに現さないように指定する以外,@ifinfo@end ifinfoコマンドに似ています.@ifhtml@end ifhtmlにも似ていて,それはHTML出力でのみ現すようテキストを指定します.

例えば,以下のようにします.

@iftex
このテキストは,印刷されたマニュアルのみで現れます.
@end iftex
@ifinfo
しかし,このテキストはInfoファイルでのみ現れます.
@end ifinfo
@ifhtml
また,このテキストはHTMLのみで現れます.
@end ifhtml

上記の例は,以下の行を生成します.

また,このテキストはHTMLのみで現れます.

読んでいるマニュアルのバージョンに依存して,入力行の1つのみ見えることに注 意してください.


Node:Conditional Not Commands, Next:, Previous:Conditional Commands, Up:Conditionals

条件の否定コマンド

@ifnot...コマンドで与えられたもの以外の,あらゆる出力書式に含 まれるテキストを指定できます.

@ifnothtml ... @end ifnothtml
@ifnotinfo ... @end ifnotinfo
@ifnottex ... @end ifnottex

(@ifnot...コマンドと@endコマンドは,実際には単独行で現 します.)

出力ファイルが与えられた書式のために作成されていない場合,その領域は含みま す.それ以外の場合,無視されます.

これらのコマンドで限定された領域は,@texで使用したような生のフォー マッタソースではなく,@iftexで使用したような通常のTexinfoソースで す(see Raw Formatter Commands).


Node:Raw Formatter Commands, Next:, Previous:Conditional Not Commands, Up:Conditionals

生の書式化コマンド

@iftex@end iftexで線引きされた領域の内部に,生のTeXコ マンドを埋め込むことができます.TeXに見られるファイルの一部だけなので, Infoではこれらのコマンドは無視されます.TeXで使用されている\@に置換する必要がある以外,通常のTeXファイルで書いていたような TeXコマンドを書くことができます.例えば,Texinfoファイルの @titlepageセクションで,著作権ページを書式化するためのTeXコマン ド@vskipを使用することができます.(@titlepageコマンドは, @iftexコマンドの使用と同じように,その領域を自動的にInfoに無視させ ます.)

しかし,プレーンTeXの多くの特徴は,Texinfoが優先されるので働きません.

@tex@end texコマンドで領域を線引きすることで,プレーン TeXを完全に入力し,TeXコマンドで\を使用することができます. (@texコマンドでも,@iftexコマンドのように,Infoは領域を無 視します.)唯一の例外は,@end texを正確に認識できるよう, @文字がまだコマンドを導入することです.

例えばここに,プレーンTeXで書かれた数式表現があります.

@tex
$$ \chi^2 = \sum_{i=1}^N
          \left (y_i - (a + b x_i)
          \over \sigma_i\right)^2 $$
@end tex

この例の出力は,印刷されたマニュアルにのみ現れます.Infoでこれを読んでいる 場合,印刷されたマニュアルに現れる等式は見ません.

同様に,HTML出力のみに含まれる領域を線引きするため,@ifhtml ... @end ifhtmlを使用し,生のHTMLの領域のため@html ... @end htmlを使用することができます(再び,例外的に@はまだエスケー プ文字なので,@endは認識されます.)


Node:set clear value, Previous:Raw Formatter Commands, Up:Conditionals

@set@clearと,@value

@set@clear@ifsetと,@ifclearを用いて, 直接Texinfo書式化コマンドにTexinfoファイルの一部を書式化させたり無視させた りできます.

更に,@set flagコマンドを,文字列にflagの値を設定する ために使用できます.そして,文字列を挿入するために @value{flag}を使用することができます.例えば,日付を設定す るために@setを使用し,Texinfoファイルの様々な場所に日付を挿入する ため@valueを使用することができます.


Node:ifset ifclear, Next:, Up:set clear value

@ifset@ifclear

flagが設定されているとき,Texinfo書式化コマンドは@ifset flag@end ifsetの組の間のテキストを書式化します. flagがクリアされているとき,Texinfo書式化コマンドはテキストを書式化 しません

@set flagコマンドを,flagの開始や設定に使用して ください.flag名は,あらゆる単一語が可能で,それは文字,数字,ハイフ ンやアンダースコアを含みます.

コマンドの書式は以下のようになります.

@set flag

条件によって書式化されるテキストは,@ifset flag@end ifsetコマンドの間に,以下のように書いてください.

@ifset flag
conditional-text
@end ifset

例えば,`large'と`small'モデルに対するマニュアルのような,2つの変形を持つ 1つのドキュメントを作成することができます.

潅木を傷つけずに掘り出すために,
この機械を使用することができます.

@set large

@ifset large
それは,十分大きく育った木も掘り出すことができます.
@end ifset

すぐに植え直すことを忘れないでください...

例では,書式化コマンドは,largeフラグがセットされているので, @ifset large@end ifsetの間のテキストを書式化します.

@clear flagコマンドを,flagの停止やクリアのため に使用してください.フラグをクリアすることは,フラグを設定することの反対で す.コマンドは以下のようにします.

@clear flag

コマンドを単独行に書いてください.

flagがクリアされているとき,Texinfo書式化コマンドは@ifset flag@end ifsetの間のテキストを書式化しません.テキ ストは無視され,印刷された,またはInfo出力に現れません.

例えば前の例で,@set largeコマンドの後(で,条件テキストの前)に @clear largeコマンドを書いて,フラグをクリアする場合,Texinfo書式 化コマンドは,@ifset large@end ifsetコマンドの間のテキス トを無視します.書式化された出力では,"潅木を傷つけずに掘り出すために,こ の機械を使用することができます.すぐに植え直すことを忘れないでください ..."という行のみ見えます.

@clear flagコマンドでフラグがクリアされている場合,書式化コ マンドは@ifclear@end ifclearコマンドの組の間のテキストを 書式化します.しかし@set flagでフラグが設定されている場合, 書式化コマンドは@ifclear@end ifclearコマンドの間のテキス トを書式化しません.というよりはむしろ,それらのテキストを無視しま す.@ifclearコマンドは以下のようにします.

@ifclear flag

手短に言うと,コマンドは以下になります.

@set flag
Texinfo書式化コマンドに,flagが設定されていることを伝えます.
@clear flag
Texinfo書式化コマンドに,flagがクリアされていることを伝えます.
@ifset flag
flagが設定されている場合,Texinfo書式化コマンドに,それに続く @end ifsetコマンドまでのテキストを書式化するよう伝えます.

flagがクリアされている場合,Texinfo書式化コマンドに,それに続く @end ifsetコマンドまでのテキストを無視するよう伝えます.

@ifclear flag
flagが設定されている場合,Texinfo書式化コマンドに,それに続く @end ifclearコマンドまでのテキストを無視するよう伝えます.

flagがクリアされている場合,Texinfo書式化コマンドに,それに続く @end ifclearコマンドまでのテキストを書式化するよう伝えます.


Node:set value, Next:, Previous:ifset ifclear, Up:set clear value

@set@value

@setコマンドをフラグに対する値を指定するために使用でき,それは @valueコマンドで拡張されます.フラグは識別子です.最善の結果のため, フラグ名には文字と数字のみを使用し,-_は使用しないでくださ い--それらが働く文脈もありますが,TeXの制限のため全てで働くわけではあ りません.値は入力行の残りの文字による文字列です.

@setコマンドは以下のように書きます.

@set foo This is a string.
@set foo これは文字列です.

これは,フラグfooの値を"これは文字列です"に設定します.

そのとき,Texinfoフォーマッタは@value{flag}コマンドを flagにセットされた文字列に置換します.このようにfooが上記のよ うに設定されている場合,Texinfoフォーマッタは変換します.

@value{foo}

to
これは文字列です.

@valueコマンドを段落の中に書くこともできます.しかし, @setコマンドは単独行に書く必要があります.

@setコマンドを以下のように書く場合を考えます.

@set foo

文字列を指定していないので,fooの値は空の文字列になります.

@clear flagで前に設定されたフラグをクリアする場合,それに続 く@value{flag}コマンドは無効で,文字列は{No value for "flag"}というエラーメッセージで置換されます.

例えば,以下のようにfooを設定した場合を考えます.

@set how-much very, very, very

そのとき,フォーマッタは以下のように変換します.

It is a @value{how-much} wet day.

上記を以下変換
It is a very, very, very wet day.

以下のように書いた場合を考えます.

@clear how-much

そのとき,フォーマッタは以下のように変換します.

It is a @value{how-much} wet day.

上記を以下に変換
It is a {No value for "how-much"} wet day.


Node:value Example, Previous:set value, Up:set clear value

@valueの例

@valueコマンドを,マニュアル更新時に変更する必要がある部分の数を制 限するために使用することができます.ここにThe GNU Make Manualで行っ た例があります.

  1. フラグをセットします.
    @set EDITION 0.35 Beta
    @set VERSION 3.63 Beta
    @set UPDATED 14 August 1992
    @set UPDATE-MONTH August 1992
    
  2. Texinfoファイルの読者に対し,最初の@ifinfoセクションのためにテキス トを書きます.
    This is Edition @value{EDITION},
    last updated @value{UPDATED},
    of @cite{The GNU Make Manual},
    for @code{make}, version @value{VERSION}.
    
  3. 印刷されたマニュアルの読者に対し,タイトルページのためのテキストを書きます.
    @title GNU Make
    @subtitle A Program for Directing Recompilation
    @subtitle Edition @value{EDITION}, ...
    @subtitle @value{UPDATE-MONTH}
    

    (印刷されたカバーでは,月と年をリストアップした日付は,月と年のようにその 日をリストアップした日付より曖昧に見えません.)

  4. Infoファイルの読者に対し,Topノードのためのテキストを書きます.
    This is Edition @value{EDITION}
    of the @cite{GNU Make Manual},
    last updated @value{UPDATED}
    for @code{make} Version @value{VERSION}.
    

    マニュアルを書式化後,最初の@ifinfoセクションのテキストは,以下の ようになります.

    This is Edition 0.35 Beta, last updated 14 August 1992,
    of `The GNU Make Manual', for `make', Version 3.63 Beta.
    

マニュアルを更新したとき,フラグの値のみを変更してください.3つのセクショ ンを編集する必要はありません.


Node:Internationalization, Next:, Previous:Conditionals, Up:Top

国際化

Texinfoは,英語以外の言語で書くためのサポートもありますが,この領域は,ま だ重要な仕事を必要とします.

Texinfoがサポートする,さまざまなアクセントと特別な文字のリストは, Inserting Accents,を参照してください.


Node:documentlanguage, Next:, Up:Internationalization

@documentlanguage cc:ドキュメントの言語をセットする

@documentlanguageコマンドは,現在のドキュメント言語を宣言します. 単独行に,2文字のISO-639言語コードを続けてください(リストは以下に含めます ).複数言語のドキュメントがある場合,目的は,それぞれの言語に変更を宣言す るため,何回もこのコマンドを使うことで可能となります.コマンドが使われない 場合,デフォルトは英語のenです.

現在,このコマンドはInfoとHTML出力では無視されます.TeXに対して,それ はファイルtxi-cc.texを読み込ませます(存在する場合).そのよ うなファイルは,適切にTeX出力で使われる,`Chapter',`See'等のような, 様々な英単語を再定義します.

このコマンドが,TeXの現在のハイフネーションパターン思考を(TeXプリミ ティブの\languageで)変更すると良いのですが,これは残念ながら,現在 インプリメントされていません.

ここに,有効な言語コードのリストがあります.このリストは, http://www.iro.umontreal.ca/contrib/po/iso-639, the free translation projectからのものです.将来我々は, http://www.sil.org/ethnologue/#contentsで述べられている,3文字の POVコードを許可するよう望むでしょう.これはアフリカ言語のサポートに必要で す.

aa Afar ab Abkhazian af Afrikaans
am Amharic ar Arabic as Assamese
ay Aymara az Azerbaijani ba Bashkir
be Byelorussian bg Bulgarian bh Bihari
bi Bislama bn Bengali; Bangla bo Tibetan
br Breton ca Catalan co Corsican
cs Czech cy Welsh da Danish
de German dz Bhutani el Greek
en English eo Esperanto es Spanish
et Estonian eu Basque fa Persian
fi Finnish fj Fiji fo Faroese
fr French fy Frisian ga Irish
gd Scots Gaelic gl Galician gn Guarani
gu Gujarati ha Hausa he Hebrew
hi Hindi hr Croatian hu Hungarian
hy Armenian ia Interlingua id Indonesian
ie Interlingue ik Inupiak is Icelandic
it Italian iu Inuktitut ja Japanese
jw Javanese ka Georgian kk Kazakh
kl Greenlandic km Cambodian kn Kannada
ks Kashmiri ko Korean ku Kurdish
ky Kirghiz la Latin ln Lingala
lt Lithuanian lo Laothian lv Latvian, Lettish
mg Malagasy mi Maori mk Macedonian
ml Malayalam mn Mongolian mo Moldavian
mr Marathi ms Malay mt Maltese
my Burmese na Nauru ne Nepali
nl Dutch no Norwegian oc Occitan
om (Afan) Oromo or Oriya pa Punjabi
pl Polish ps Pashto, Pushto pt Portuguese
qu Quechua rm Rhaeto-Romance rn Kirundi
ro Romanian ru Russian rw Kinyarwanda
sa Sanskrit sd Sindhi sg Sangro
sh Serbo-Croatian si Sinhalese sk Slovak
sl Slovenian sm Samoan sn Shona
so Somali sq Albanian sr Serbian
ss Siswati st Sesotho su Sundanese
sv Swedish sw Swahili ta Tamil
te Telugu tg Tajik th Thai
ti Tigrinya tk Turkmen tl Tagalog
tn Setswana to Tonga tr Turkish
ts Tsonga tt Tatar tw Twi
ug Uighur uk Ukrainian ur Urdu
uz Uzbek vi Vietnamese vo Volapuk
wo Wolof xh Xhosa yi Yiddish
yo Yoruba za Zhuang zh Chinese
zu Zulu


Node:documentencoding, Previous:documentlanguage, Up:Internationalization

@documentencoding enc:入力エンコードのセット

@documentencodingコマンドは,入力ドキュメントのエンコードを宣言し ます.単独行に,ISO-8859-1のような有効なエンコード指定を続けて書い てください.

現在,これはmakeinfoのHTML出力のみで使われます.ドキュメントエンコー ドencが指定された場合,<meta>タグで出力の<head>に含め られます.

<meta http-equiv="Content-Type" content="text/html; charset=enc">


Node:Defining New Texinfo Commands, Next:, Previous:Internationalization, Up:Top

新しいTexinfoコマンドの定義

Texinfoは,新しいコマンドを定義する様々なコマンドを提供します.


Node:Defining Macros, Next:, Up:Defining New Texinfo Commands

マクロの定義

マクロを定義するため,以下のようにTexinfoの@macroコマンドを使用し ます.

@macro macroname{param1, param2, ...}
text ... \param1\ ...
@end macro

パラメータparam1param2...は,後でマクロをドキュ メントで使用する時(次のセクションで記述します)に供給される引数に対応します.

マクロがTeXで働くため,macronameは完全に文字から成り立っている必 要があります.数字,ハイフン,アンダースコアや,他の特別な文字を含めてはい けません.

マクロがパラメータを必要としない場合,空のリスト(@macro foo {}),またはカッコ無し(@macro foo)で定義することができます.

定義やマクロの本体は,前に定義されたマクロを含め,ほとんどの Texinfoコマンドを含むことができます.まだ定義されていないマクロの呼び出し は許可されていません.このように,相互に繰り返されるTexinfoマクロを持つこ とはできません.同様に,他のマクロを定義するマクロ定義は,@macroの 設計の制限のため,TeXでは働きません.

マクロの本体では,上記の例では\param1\のようにバックスラッシュ で囲まれているパラメータ名のインスタンスは,マクロ呼び出しで対応する引数で 置換されます.パラメータ名は,0回を含め何度でも本体で使用できます.

マクロ表現での単一の\を得るため,\\を使用してください.ほか のあらゆる本体での\の使用は警告をもたらします.

@macro行の後と@end macro行の前の改行は無視され,そのため, マクロ本体に含まれません.全ての他の空白は通常のTexinfoの規則に従って扱わ れます.

マクロを再帰的に使用可能にするため,すなわち,引数としてそれ自身を呼び出す ため,以下のように@rmacroで定義する必要があります.

@rmacro rmac
a\arg\b
@end rmacro
...
@rmac{1@rmac{text}2}

これは,出力`a1atextb2b'を生成します.@rmacroの代わりに @macroを用いた場合,エラーメッセージが得られます.

@unmacro fooを用いて,マクロfooを未定義にできます.既 に未定義にされたマクロを未定義にすることはエラーではありません.例えば以下 のようにします.

@unmacro foo


Node:Invoking Macros, Next:, Previous:Defining Macros, Up:Defining New Texinfo Commands

マクロの呼び出し

マクロの定義後(前のセクションを参照してください),以下のようにドキュメント で使用(呼び出し)できます.

@macroname {arg1, arg2, ...}

そして,結果はそこでmacroname本体に入力したようになります.

@macro foo {p, q}
Together: \p\ & \q\.
@end macro
@foo{a, b}

以下を生成します.

Together: a & b.

このように,引数とパラメータはコンマで分けられ,カッコで範囲を定めます.コ ンマの後(前は違います)のあらゆる空白は無視されます.マクロが引数を取らない 場合でもカッコは呼び出しで(定義では違います)要求され,他の全てのTexinfoコ マンドと一貫性を保ちます.

@macro argless {}
ここに引数はありません.
@end macro
@argless{}

以下を生成します.

ここに引数はありません.

コンマ,カッコ,またはバックスラッシュを引数に挿入するため,前に以下のよう にバックスラッシュを置きます.

@macname {\\\{\}\,}

それは,引数\{},macnameに渡します(ほとんど確実にエラーを 生成します).

マクロが単一の引数を取るように定義されていて,カッコ無しで呼び出された場合, マクロ名の後の行の残り全体は引数として供給されます.例えば,以下のようにな ります.

@macro bar {p}
Twice: \p\ & \p\.
@end macro
@bar aah

以下を生成します.

Twice: aah & aah.

マクロが単一の引数を取るように定義されていて,カッコ付で呼び出された場合, コンマにかかわらずカッコ付のテキストは引数として渡されます.例えば以下のよ うになります.

@macro bar {p}
Twice: \p\ & \p\.
@end macro
@bar{a,b}

以下を生成します.

Twice: a,b & a,b.


Node:Macro Details, Next:, Previous:Invoking Macros, Up:Defining New Texinfo Commands

マクロの詳細

TeXとmakeinfoのインプリメントでの避けられない相違のため, Texinfoマクロは以下の制限があります.


Node:alias, Next:, Previous:Macro Details, Up:Defining New Texinfo Commands

@alias new=existing

@aliasコマンドは,新しいコマンドを既存のものと同じように定義します. これは追加のマークアップ名の定義に便利で,このため出力結果が同じであっても, 入力の意味論的な情報を維持します.

@aliasコマンドを単独行に書き,新しいコマンド名,等号,そして既存の コマンド名を続けてください.等号の周りの空白は無視されます.このようにしま す.

@alias new = existing

例えば,ドキュメントが本と他のメディア(例えば動画)の両方への引用を含んでい る場合,通常の@cite{}と同じことを行いますが,同じような余分な意 味論的情報をもたらすマクロ@moviecite{}を定義したい可能性がありま す.このため以下のようにします.

@alias moviecite = cite

気まぐれな引数の解析のため,マクロは常に同じ結果となるわけではありません. また,別名はマクロより定義が簡単です.そのため,コマンドは重複しません. (また,専門語ファイルで大量に使用されました!)

別名は,直接的や間接的に,再帰的してはいけません.


Node:definfoenclose, Previous:alias, Up:Defining New Texinfo Commands

definfoenclose: 強調のカスタマイズ

@definfoencloseコマンドは,Infoのためで,TeXのためではない,強 調コマンドの定義に使用される可能性があります.@definfoencloseで定 義されたコマンドは,前後のテキストの文字列内の,それで囲んだテキストをマー クします.Info出力のより近い制御を得るためこれを使用することもできます.

おそらく,Infoに対し@definfoencloseでコマンドを定義する場合, texinfo.textexinfo.cnfや,ドキュメントの@iftexの中 でTeXに対し対応するコマンドを作成します.

@definfoencloseコマンドを1行で書き,コンマで区切られた3つの引数を 続けてください.@definfoencloseの最初の引数は(@がない )@-コマンド名です.2番目の引数はInfoを開始するデリミタ文字列です.そして, 3番目の引数はInfoを終了するデリミタ文字列です.デリミタ文字列はスペースを 含むことが可能です.開始と終了のデリミタは必須ではありません.開始デリミタ が不要で,終了デリミタが欲しい場合,コマンド名で同じ行に2つのコンマを続け る必要があります.そうしない場合,Info書式化コマンドは,当然,終了デリミタ 文字列を開始デリミタ文字列だと誤って解釈します.

(@emph@strong@tや,@iのように)前もって 定義されているマクロ名で@definfoencloseする場合,囲まれた定義は組 込み定義に優先されます.

囲みコマンドはカッコ内の1つの引数を取り,このように定義されます.これは, 新しいマークアップコマンドを意図しています(see Marking Text).

例えば,以下のように書くことができます.

@definfoenclose phoo,//,\\

@phooの引数の前に`//',後ろに`\\'を挿入するInfo書式化コマンドとし て@phooを定義するために,Texinfoファイルの最初の方に書きます.そし て,Infoで強調された`//bar\\'が必要な場所ならどこでも, @phoo{bar}を書くことができます.

同様にTeX書式化で以下のように書くことができます.

@iftex
@global@let@phoo=@i
@end iftex

@phooをTeXに@phooの引数をイタリック対で植字させるコマン ドとして@phooを定義します.

それぞれの定義は独自のフォーマッタに適用されることに注意してください.1つ はTeXに対し,もう1つはtexinfo-format-buffertexinfo-format-regionに対するものです.@definfoencloseコマ ンドは@ifinfo内に置く必要はありませんが,生のTeXコマンドは @iftex内に置く必要があります.

ここにもう1つの例があります.

@definfoenclose headword, , :

@headwordの引数の前には何も置かず,後にコロンを挿入するInfo書式化 コマンドとして@headwordを定義するために,ファイルの最初の方に書い てください.

@definfoenclose定義は,直接的または間接的に,再帰的にできません.


Node:Hardcopy, Next:, Previous:Defining New Texinfo Commands, Up:Top

書式化とハードコピーの出力

Texinfoファイルから印刷されたマニュアルを作るため,3つの主なシェルコマンド があります.1つは,Texinfoファイルを印刷されるファイルに変換するもので, 2つ目は索引をソートするもので,3つ目は書式化されたドキュメントを印刷するも のです.シェルコマンドを使うとき,オペレーティングシステムのシェルで直接実 行したり,GNU Emacs内部のシェルで実行したりできます.

GNU Emacsを使う場合,シェルコマンドの代わりにTexinfoモードで供給されるコマ ンドを使うことができます.ファイルを書式化したり,索引をソートしたり,結果 を印刷したりする3つのコマンドの加え,Texinfoモードは,出力バッファを更新し たり,印刷のキューを表示したり,印刷キューからジョブを削除したりするコマン ドに対するキーバインドを提案します.


Node:Use TeX, Next:, Up:Hardcopy

TeXの使用

TeXと呼ばれる植字プログラムは,Texinfoファイルの書式化に使用します. TeXは非常に強力な植字プログラムで,正しく使用すると,非常に良い仕事をし ます.(TeXの入手方法の詳細は,See How to Obtain TeX.)

makeinfotexinfo-format-regionと, texinfo-format-bufferコマンドは,TeXのように,Texinfoファイルの @-コマンドを,全く同じように読み込みますが,Infoファイルの作成とは異なる 処理を行います(see Creating an Info File).


Node:Format with tex/texindex, Next:, Previous:Use TeX, Up:Hardcopy

textexindexでの書式化

Texinfoファイルを,シェルコマンドtexにTexinfoファイル名を続けて書式 化します.例えば,以下のようにします.

tex foo.texi

TeXは,索引や相互参照等の情報を含むいくつかの追加ファイルと, DVIファイルを生成します.DVIファイル(DeVice Independentファイ ル)は,事実上あらゆるデバイスに出力できます(以下のセクションを参照してくだ さい).

tex書式化コマンド自身は,索引をソートしません.それは,ソートされて いない索引データの出力を書き出します.(texi2dviコマンドは,自動的に 索引を生成します.see Format with texi2dvi.)texコマンド実行後,印刷する索引を生成するため,最 初に索引をソートする必要があります.texindexコマンドは索引をソート します.(ソースファイルtexindex.cは,他の場所からのこともありますが, 標準的なTexinfo配布物の一部となっています.)

tex書式化コマンドは,標準的な慣習に従う名前で,ソートされていない索 引ファイルを出力します..tex(または類似のもので,see tex invocation)がある,主な入力ファイルの名前の拡張子は削除さ れ,索引名の2文字が続きます.例えば,入力ファイルfoo.texinfoに対す る,生の索引出力ファイルは,foo.cpfoo.vrfoo.fnfoo.tpfoo.pgfoo.kyです.それらは,正確に texindexに与える引数です.

全てのソートされていない索引ファイル名を明示的に指定する代わりに, ??をシェルワイルドカードとして使い,以下の形式でコマンドに与えるこ とができます.

texindex foo.??

このコマンドは,texindexを全てのソートされていない索引ファイルで実 行し,それは,@defindex@defcodeindexを使って独自に定義し たものを含みます.(たとえ,foo.elのように,索引ファイルではない2文 字の拡張子を持つ似た名前のファイルがある場合でも,texindex foo.??を 実行することもできます.texindexコマンドは,そのようなファイルを無 視したことを報告します.)

それぞれ指定したファイルに対し,texindexは,入力ファイルに sを付けた名前を持つ,ソートされた索引ファイルを生成します. @printindexコマンドは,その名前でファイルを探します (see Printing Indices & Menus).texindexは生の索引出力ファイル を変更しません.

索引のソート後,tex書式化コマンドをTexinfoファイルで再実行する必要 があります.これはDVIファイルを再生成し,このとき索引項目は更新されます.

最終的に,相互参照で正しいページ番号を得るために,texをもう一度実行 する必要があります.

要約すると,これは5ステップの処理です.

  1. Texinfoファイルでtexを実行してください.これは(相互参照が定義されて おらず,索引のない)DVIファイルと,(2文字の拡張子を持つ)生の索引ファイルを 生成します.
  2. 生の索引ファイルでtexindexを実行してください.これで,適切にソート された(3文字の拡張子の)索引ファイルを生成します.
  3. texを再びTexinfoファイルで実行してください.これでDVIファイルを生成 し,索引と定義された相互参照はこのとき再生成しますが,相互参照のページ番号 は一般に正しくないので最後に再生成します.
  4. texindexで再び索引をソートしてください.
  5. texを最後に1度実行してください.このとき相互参照に対し,正しいペー ジ番号を書き出します.

代わりに1ステップで処理します.texi2dvi(see Format with texi2dvi)を実行してください.

texの実行後,毎回texindexを実行する必要はありません.実行し ない場合は,次の実行時に,tex書式化コマンドはソートされているかどう かにかかわらず,たまたま存在する前回のtexindexの使用からえられる索 引ファイルを使用します.これは,通常デバッグ中は問題ありません.

完全でないと分かっているドキュメントを印刷したり,ドキュメントの1つの章だ け印刷したい場合もあります.その場合,通常のTeXが作成した追加ファイルと, 相互参照が十分でないときTeXが与える警告は,厄介です. @novalidateコマンドでこれを避けることができ,それは @setfilenameコマンドを前に与える必要があります.こうして, ファイルの最初は,おそらく以下のようになります.

\input texinfo
@novalidate
@setfilename myfile.info
...

@novalidateも,--no-validateオプション(see Pointer Validation)を与えたようにmakeinfoで有効に停止します.


Node:Format with texi2dvi, Next:, Previous:Format with tex/texindex, Up:Hardcopy

texi2dviでの書式化

texi2dviコマンドは,自動的にtextexindexの両方を,ソー トされた索引や相互参照が解決されているDVIファイルを生成するのに必要な回数 実行します.それは,前のセクションで記述された, tex--texindex--tex--texの順番で単純化されて います.

入力ファイルfoo.texitexi2dviを実行するため,以下のようにし てください(prompt$ はシェルプロンプトです).

prompt$ texi2dvi foo.texi

この例を見ると,texi2dviの入力ファイル名は(.texi.texinfo等の)拡張子を含む必要があります.MS-DOSやおそらく他の環境で, オペレーティングシステムがシェルでtexi2dviスクリプトを呼び出すこと を期待する代わりに,sh texi2dvi foo.texiを実行する必要がある可能性 があります.

おそらく,texi2dviの最も役に立つオプションは, --texinfo=cmdです.これは,TeXを実行する前の一時的な入力ファ イルのコピーで,@setfilenameの行の後にcmdを単独行で挿入しま す.こうすることで, @smallbook(see smallbook), @afourpaper(see A4 Paper)や, @pageparams(see pagesizes)のように,異なる印刷書式を,実際にド キュメントソースを変更することなく指定できます.(texinfo.cnfで,サ イト全体に対しこうすることもできます.see Preparing for TeX.)

他のオプションのリストは,texi2dvi --helpを実行してください.


Node:Print with lpr, Next:, Previous:Format with texi2dvi, Up:Hardcopy

lpr -dを使用したシェル印刷

DVIファイルを印刷する正確なコマンドは,システムインストールの状態に依存し ますが,lpr -dが普通です.コマンドは,拡張子無しまたは.dvi拡 張子付のDVIファイル名を要求するかもしれません.(lprの場合, .dviを含める必要があります.)

例えば,以下のコマンドは,(おそらく)Bison Manualの索引のソート,書 式化と,印刷に十分でしょう.

tex bison.texinfo
texindex bison.??
tex bison.texinfo
lpr -d bison.dvi

(シェルコマンドはサイトにより異なる可能性があることを覚えておいてください. しかし,これらは通常使われるバージョンです.)

texi2dviシェルスクリプトを使うと,以下のように簡単に入力できます.

texi2dvi bison.texinfo
lpr -d bison.dvi

lprは,Unixシステムの標準的なプログラムですが,通常, MS-DOS/MS-Windowsにはありません.ネットワークパッケージにlprという 名のプログラムが付属していることもありますが,これらは通常,ネットワーク上 のプリントサーバにファイルを送ることに制限されていて,一般に,-dオ プションはサポートされていません.不幸にも,これらのシステム1つで,十分仕 事をしたい場合,DVIファイルを印刷する代わりの方法があります.


Node:Within Emacs, Next:, Previous:Print with lpr, Up:Hardcopy

Emacsシェルからの実行

書式化と印刷のコマンドをGNU Emacs内部のシェルから与えることができます. Emacs内部のシェルを作成するため,M-x shellを入力してください.このシェ ルでドキュメントの書式化と印刷が可能です.詳細は,See Format and Print Hardcopy.

texを実行しているシェルバッファへ(から)切替えて,他を編集すること が可能です.遅いマシンで長いドキュメントを書式化する場合,これは大変便利 です.

texi2dviをEmacsシェルから実行することもできます.例えば,Emacsの 内部シェルから,Using and Porting GNU CCを書式化し印刷する, texi2dviの使用法がここにあります.

texi2dvi gcc.texinfo
lpr -d gcc.dvi


Node:Texinfo Mode Printing, Next:, Previous:Within Emacs, Up:Hardcopy

Texinfoモードでの書式化と印刷

Texinfoモードは,TeXの書式化と印刷のための前もって定義されたキーコマン ドをいくつか供給します.これらは,索引のソート,プリンタキューを見ること, 書式化ジョブの停止と,オペレーションが発生させているバッファの表示の更新の コマンドを含みます.

C-c C-t C-b
M-x texinfo-tex-buffer
現在のバッファでtexi2dviを実行します.
C-c C-t C-r
M-x texinfo-tex-region
現在の領域でTeXを実行します.
C-c C-t C-i
M-x texinfo-texindex
texinfo-tex-regionで書式化されたTexinfoファイルの索引をソートします.
C-c C-t C-p
M-x texinfo-tex-print
texinfo-tex-regiontexinfo-tex-bufferで作成されたDVIファ イルを印刷します.
C-c C-t C-q
M-x tex-show-print-queue
プリントキューを表示します.
C-c C-t C-d
M-x texinfo-delete-from-print-queue
プリントキューからジョブを削除します.前もってC-c C-t C-qコマンド (texinfo-show-tex-print-queue)で調べたジョブ番号の入力を促されます.
C-c C-t C-k
M-x tex-kill-job
現在実行している,texinfo-tex-regiontexinfo-tex-bufferで開 始されたTeXジョブや,Texinfoシェルバッファで実行している他のあらゆるプ ロセスを停止します.
C-c C-t C-x
M-x texinfo-quit-job
<x>を送られて,エラーで停止した書式化のジョブを終了します.こうすると き,TeXは行ったことの記録を.logファイルに維持します.
C-c C-t C-l
M-x tex-recenter-output-buffer
TeXの印刷と書式化コマンドを実行しているシェルバッファを,最新出力を表示 させるため再表示します.

このように,バッファを書式化するコマンドの通常の順序は,以下のようになり ます(右はコメントです).

C-c C-t C-b             バッファでtexi2dviを実行.
C-c C-t C-p             DVIファイルを印刷.
C-c C-t C-q             プリンタキューの表示.

TexinfoモードのTeX書式化コマンドは,*tex-shell*と呼ばれるEmacsの サブシェルを開始します.texinfo-tex-commandtexinfo-texindex-commandと,tex-dvi-print-commandコマンドは, 全てこのシェルで実行されます.

コマンドオペレーションを*tex-shell*バッファで見ることができ,他のあ らゆるシェルバッファで行うように,*tex-shell*バッファに/から切替え て使用することができます.

書式化と印刷コマンドは,いくつかの変数の値に依存します.デフォルト値は以 下のとおりです.

     Variable                              Default value

texinfo-texi2dvi-command                  "texi2dvi"
texinfo-tex-command                       "tex"
texinfo-texindex-command                  "texindex"
texinfo-delete-from-print-queue-command   "lprm"
texinfo-tex-trailer                       "@bye"
tex-start-of-header                       "%**start"
tex-end-of-header                         "%**end"
tex-dvi-print-command                     "lpr -d"
tex-show-queue-command                    "lpq"

これらの変数の値を,M-x edit-optionsコマンド(see Edit Options)の使用や, M-x set-variableコマンド(see Examining)の使用や,.emacs初期化ファ イル(see Init File)を使用して,変更で きます.

バージョン20から始まる,GNU Emacsは,カスタマイズと呼ばれる,ユーザー フレンドりーなインターフェースを提供していて,それはユーザー定義可能な変数 の値を変えるためのものです.詳細は,See Easy Customization. Texinfo変数は, M-x customizeコマンドで呼び出すと,Development/Docs/Texinfoグ ループで見つかります.


Node:Compile-Command, Next:, Previous:Texinfo Mode Printing, Up:Hardcopy

ローカル変数リストの使用

TeX書式化コマンドをTexinfoファイルに適用するための,更にもう1つの方法は, Texinfoファイルの終りで,ローカル変数リストにそれらのコマンドを置く 方法です.textexi2dviコマンドをcompile-commandのコ マンドとして指定し,M-x compileの入力でEmacsに実行させることができま す.これで*compilation*バッファと呼ばれる特別なシェルを作成し,その 中でEmacsはコンパイルコマンドを実行します.例えば,gdb.texinfoファ イルの終りに,@byeの後で,以下を置くことができます.

Local Variables:
compile-command: "texi2dvi gdb.texinfo"
End:

この手法は,この方法でプログラムをコンパイルするプログラマが,最もよく使 用します.Compilation,を参照して ください.


Node:Requirements Summary, Next:, Previous:Compile-Command, Up:Hardcopy

TeX書式化の要求の要約

TeXに入力される,全てのTexinfoファイルは,\inputコマンドで始まり, @setfilenameコマンドを含む必要があります.

\input texinfo
@setfilename arg-not-used-by-TeX

最初のコマンドは,TeXにTexinfoファイルの処理に必要なマクロをロードする よう指示し,2番目のコマンドは補助ファイルを開きます.

全てのTexinfoファイルは,TeXの処理を終了し,未完成のページを強制排出す る行で終る必要があります.

@bye

厳密にいうと,これらの行は全てのTexinfoファイルを,TeXで成功裏に処理す るため必要な全てです.

しかし通常は,最初に印刷されたマニュアルのタイトルを定義する @settitleコマンド,@setchapternewpageコマンド,タイトルペー ジ,著作権ページと,許可を含みます.@byeの他に,ファイルの終りは通 常,索引と目次を含みます.(そして,もちろんほとんどのマニュアルは本文も同 様に含みます.)

詳細は,以下を参照してください.


Node:Preparing for TeX, Next:, Previous:Requirements Summary, Up:Hardcopy

TeXに対する準備

TeXは,ファイルの最初の行の\input texinfoコマンドで,入力と指定 されたtexinfo.texファイルを探す場所を知る必要があります. texinfo.texは,TeXに@-コマンドの処理方法を伝えます.それは,全 ての標準的なGNU配布物に含まれています.

通常,texinfo.texファイルは,GNU Emacsや他のGNUソフトウェアがインス トールされたとき,TeXマクロを含めるデフォルトディレクトリ(デフォルトで /usr/local/share/texmf/tex/texinfo/texinfo.tex)に置かれています.こ の場合,TeXはファイルを見つけ,特別なことをする必要はありません.代わり に,TeXを実行するとき,texinfo.texを現在のディレクトリに置くこと ができ,TeXはそこで見つけます.

同様に,他の配布物からまだインストールされていない場合,epsf.textexinfo.texと同じ場所にインストールすべきです.このファイルは, @imageコマンドのサポートに必要です(see Images).

更に,追加ファイルtexinfo.cnfを作成し,同様にインストールすることも できます.このファイルは,@setfilenameコマンド (see @setfilename)が実行されたとき,TeXに読み 込まれます.ローカルサイトの慣習で,好みのあらゆるコマンドをそこに置くこと ができます.それらは,TeXがTexinfoドキュメントを処理しているとき読み込 まれます.例えば,texinfo.cnf@afourpaperを含む場合 (see A4 Paper),全てのTexinfoドキュメントは,実際にそのページサイズで 処理されます.texinfo.cnfに何も置かない場合,それを作る必要はありま せん.

上記の場所のこれらのシステムファイルが十分でない場合,明示的にディレクトリ を指定することができます.texinfo.texに対し,\inputコマンド の後に完全なファイルパスを書くことで可能となります.texinfo.textexinfo.cnf(とその他のTeXが読み込むもの)の両方を働かせるもう1つ の方法は,TEXINPUTS環境変数を.cshrc.profileファイル でセットすることです.

.cshrcまたは.profileのどちらを使用するかは,Bourneシェル互換 (shbashksh...),またはCシェル互換 (cshtcsh)のコマンドインタプリタのどちらを使用しているかに 依存します.後者は,.cshrcを初期化情報として読み込み,前者は .profileを読み込みます.

.cshrcファイルで,以下のcshコマンド列を使用します.

setenv TEXINPUTS .:/home/me/mylib:/usr/lib/tex/macros

.profileファイルで,以下のshコマンド列を使用します.

TEXINPUTS=.:/home/me/mylib:/usr/lib/tex/macros
export TEXINPUTS

MS-DOS/MS-Windowsで,以下のようにします16

set TEXINPUTS=.;d:/home/me/mylib;c:/usr/lib/tex/macros

DOS/Windowsユーザーは,autoexec.batファイルやWindowsレジストリに, そのようなコマンドを慣習で置きます.

これらのセッティングで,TeXは\inputファイルを,最初に. で示される現在のディレクトリで探し,それから,仮にユーザーの me/mylibディレクトリで探し,最後にシステムディレクトリ /usr/lib/tex/macrosで探します.

最終的に,TeXがTexinfoをより速くロードできるように,.fmtファイル のダンプを望むかもしれません(see Memory dumps). (texinfo.texの更新は再ダンプを要求するので不利になります.) epsf.texがTeXで検索可能だという仮定で,以下のコマンドを実行する ことでできます.

initex texinfo @dump

(@dumpはTeXプリミティブです.)texinfo.fmt.fmtが 見つかる場所に移動する必要があります.一般に,これは,TeXをインストール したサブディレクトリweb2cにあり,例えば, /usr/local/share/tex/web2cです.


Node:Overfull hboxes, Next:, Previous:Preparing for TeX, Up:Hardcopy

Overfull "hboxes"

TeXは,右のマージンまで拡張しなければ,行を植字できないときもあります. これは,電子メールのネットワークアドレスや,非常に長いタイトルのように,ハ イフネーションできない長い単語とTeXが解釈したとき生じます.これが生じた とき,TeXは,以下のようなエラーメッセージを出力します.

Overfull @hbox (20.76302pt too wide)

(TeXでは,行は"水平ボックス"にあるので,"hbox"と言う言葉です. @hboxはTeXプリミティブで,Texinfo言語では必要ありません.)

TeXは,Texinfoソースファイルでの行番号と,違反している行のテキストを供 給(表示)し,それにはハイフネーションだと考えられる全ての位置に印があります. 植字エラーの詳細は,See Catching Errors with TeX Formatting.

Texinfoファイルに"overfull hbox"がある場合,文章をoverfull hboxが生じな いように書き直すことも,そのままにすることもできます.小さな右のマージンへ のはみ出しは余り問題とならず,目立たない可能性もあります.

overfull boxesが多く,書き直しに抵抗がある場合,TeXで可能なinterword空 間を大きく増加させることができ,そして(運が良ければ),以下のようにすること で,多くの悪い行の分割を避けるでしょう.

@tex
\global\emergencystretch = .9\hsize
@end tex

(必要なだけ分数を調節できます.)この\emergencystretchに対する大きな 値で,植字の出力は,一般に,目立って品質が低下するので,デフォルトではあり ません.デフォルト値は.15\hsizeです.\hsizeは,現在の行の幅 を含むTeXの寸法です.

しかし,そうしない場合,存在するoverfull boxesに対し,TeXは,大きく醜い overfull hboxを含む黒い長方形を行の端に印刷します.ドラフトを修正する場合, これで問題の場所に気づくでしょう.

そのような奇形物が,最終的な出力物に結び付くのを阻止するため,Texinfoファ イルの最初に,@titlepageコマンドの前に,単独行で以下を書いてくださ い.

@finalout


Node:smallbook, Next:, Previous:Overfull hboxes, Up:Hardcopy

小さな本の印刷

デフォルトで,TeXは,8.5x11インチの書式で印刷するためページに植字します. しかし,以下のコマンドを,単独行で,タイトルページの前に,Texinfoファイル の最初に挿入することで,製本に適した7x9.25インチの書式TeXに命令できます.

@smallbook

(多くの本はたいてい7x9.25インチなので,このコマンドは, @regularbooksizeコマンドと呼ぶ方が良いかもしれませんが,8.5x11イン チの書式と比較して,@smallbookコマンドと呼ばれるようになりました. )

@smallbookコマンドをstart-of-headerとend-of-header行の間に書く場合, TexinfoモードのTeXの領域書式化コマンド,texinfo-tex-regionは, "小さな"本のサイズに領域を書式化します(see Start of Header).

より小さなマニュアルを簡単に作成するコマンドの例の情報は,See small.

ソースファイルを変更せず@smallbook書式を行う方法は,See Format with texi2dvi. またPreparing for TeX,を参 照してください.


Node:A4 Paper, Next:, Previous:smallbook, Up:Hardcopy

A4用紙の印刷

ヨーロッパサイズのA4用紙に印刷するためのドキュメントの書式化を, @afourpaperコマンドでTeX伝えることができます.Texinfoファイルの 最初付近にタイトルページの前で,単独行でコマンドを書いてください.例えば, このマニュアルのヘッダに書く方法は以下のようになります.

\input texinfo    @c -*-texinfo-*-
@c %**start of header
@setfilename texinfo
@settitle Texinfo
@afourpaper
@c %**end of header

ソースファイルを変更せず@afourpaper書式を行う方法は, See Format with texi2dvi. またPreparing for TeX,を参照してください.

コマンド@afourlatexの結果の書式化の方がいいかも,またはそうでない かもしれません.A4用紙での幅広の書式のため,@afourwideもあります.


Node:pagesizes, Next:, Previous:A4 Paper, Up:Hardcopy

@pagesizes [width][, height]:カスタムページサイズ

ページの主なテキストの領域の高さと(オプションで)幅を,@pagesizesコ マンドで明示的に指定できます.Texinfoの最初付近で,タイトルページの前に, 単独行で書いてください.最初が高さで,要求があれば幅を,カンマで区切って書 きます.以下が例です.

@pagesizes 200mm,150mm  

そして,

@pagesizes 11.5in      

これは,B5サイズの用紙への印刷に対し妥当です.強調しますが,このコマンドは テキストエリアを指定するコマンドで,用紙サイズを指定しません (250mmx177mmはB5で,14inx8.5inはleagalです).

ページのマージンを変更するような,より精密な変更のため, texinfo.tex(または,texinfo.cnfsee Preparing for TeX)で新しいコマンドを定義する必要があります.

ソースファイルを変更せず@pagesizesを指定する方法は,See Format with texi2dvi. またPreparing for TeX,を参 照してください.

@pagesizesmakeinfoでは無視されます.


Node:Cropmarks and Magnification, Next:, Previous:pagesizes, Up:Hardcopy

断裁トンボと拡大

@cropmarksコマンドで,TeXに,ページの角に断裁トンボを印刷させ (てみ)ることができます.タイトルページの前で,Texinfoファイルの最初の方に, @iftex@end iftex行の間に,@cropmarksコマンドを単 独行で,以下のように書いてください.

@iftex
@cropmarks
@end iftex

このコマンドは主に,プリンタが複数ページを1枚のフィルムシートに植字するた めのものですが,@smallbookコマンドで,7x9.25インチにセットした本の 四隅に印を付けてみることもできます.(通常の大きさの用紙に印刷する,通常の 大きさの出力に対し,プリンタは断裁トンボを生成しません.)異なる印刷機は, 異なる方法で動作するので,冒険心でこのコマンドを使ってみるべきです. texinfo.texにコマンドを再定義する必要があるかも知れません.

\magというTeXコマンドで,通常より大きいまたは小さいページに TeXに植字させ(てみ)ることができます.植字される全てのものは,相対的に大 きくまたは小さく大きさを調整されます.(\magは"magnification(拡大 )"を意味します.)これは,Texinfoの@-コマンドではありませんが,バッ クスラッシュを前置した,普通のTeXコマンドです.このコマンドは, @tex@end texの間に書く必要があります(see Raw Formatter Commands).

=と数字が付いている,以下の\magコマンドは,希望する倍率の 1000倍です.例えば,通常サイズの1.2倍に印刷するため,タイトルページの前で, Texinfoファイルの最初の方に以下のように書いてください.

@tex
\mag=1200
@end tex

印刷技術によっては,印刷店に通常より大きなマスターを与えることで,より良く 見える通常サイズのコピーを印刷できます.彼らはそれにより,効率的に解像度を あげ,縮小します.

システムによっては,標準でない\magを使用したDVIファイルは,印刷でき なかったり,特定の拡大率でしか印刷できなかったりします.試してみたください.


Node:PDF Output, Previous:Cropmarks and Magnification, Up:Hardcopy

PDF出力

普通のtexの代わりに,ファイルを処理するpdftexプログラ ムを使うと,TexinfoソースファイルからPDF出力ファイルを生成することができま す.tex foo.texiの代わりにpdftex foo.texiを実行するか, texi2dvi--pdfオプションを与えてください.

PDFはPortable Document Format(移植可能な文書の書式)を意味し,アドビシステ ムズで開発されました. file format definitionは,自由に利用可能で,X Window systemでは, free viewerも同様です.PDFは,バイナ リ形式なので,他の出力形式から予想される@ifpdf@pdfコマン ドはありません.

名前に`portable'があるにもかかわらず,PDFファイルは,普通のASCII形式の (InfoやHTMLや)Texinfoがサポートする程,実際には移植性がありません(DVIと比 較した移植性は,議論の余地があります).それらは,かなり大きくなる傾向があ り,TeXで(デフォルトで)非常に良く使われているビットマップフォントをサポー トしません.それにもかかわらず,PDFファイルは画面上に実際に印刷されたドキュ メントを,HTMLと異なり,できる限り忠実に維持するので地位を保っています.

TexinfoのPDFサポートはかなり基本的です.


Node:Creating and Installing Info Files, Next:, Previous:Hardcopy, Up:Top

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

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


Node:Creating an Info File, Next:, Up:Creating and Installing Info Files

Infoファイルの作成

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

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


Node:makeinfo advantages, Next:, Up:Creating an Info File

makeinfoの利点

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

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


Node:Invoking makeinfo, Next:, Previous:makeinfo advantages, Up:Creating an Info File

シェルからmakeinfoを実行する

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

makeinfo bison.texinfo

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


Node:makeinfo options, Next:, Previous:Invoking makeinfo, Up:Creating an Info File

makeinfoのオプション

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

例えば以下のシェルコマンドで,それそれの行の文字列を68文字で補充します, bison.texinfoのためのInfoファイルを作ることができます.

makeinfo --fill-column=68 bison.texinfo

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

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

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

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


-D var
変数varを定義します.これは,Texinfoファイルでの@set varと同じです(see set clear value).
--commands-in-node-names
ノード名で@コマンドを許可します.おそらくTeXで実装できないので, 推奨しません.また,makeinfoも非常に遅くなります.また,このオプショ ンは--no-validateを使うと無視されます.詳細は,See Pointer Validation.
--error-limit=limit
-e limit
終了までにmakeinfoが報告するエラーの数の最大値をセットします(続けて も意味が無いでしょう).デフォルトは100です.
--fill-column=width
-f width
1行の最大文字数を指定します.これは行の右端です.おそらくこの幅で補充する でしょう.(補充とは,行を補充し,指定した数と同じまたはそれより短い長さに するため,行を切ったり繋げたりする処理です.行は単語で切られます.)デフォ ルト値は72です.--htmlでは無視されます.
--footnote-style=style
-s style
脚注の形式をstyleにセットします.ノードの終りの形式のための end,または,ノードを分ける形式のseparateのいずれかです.こ のオプションでセットした値は,Texinfoファイルで,@footnotestyleコ マンド(see Footnotes)でセットした値に優先します.脚注形式が separateのとき,makeinfoは,現在のノードで見つかった脚注を含 む新しいノードを作成します.脚注形式がendのとき,makeinfoは, 現在のノードの終りに脚注の参照を置きます.--htmlでは無視されます.
--force
-F
通常,入力ファイルにエラーがある場合,出力ファイルは作成されません.このオ プションを用いると,出力ファイルは提供されます.
--help
-h
利用可能なオプションをリストアップした使用方法のメッセージを出力し,正しく 終了します.
--html
Infoではなく,HTML出力物を生成します.See makeinfo html.
-I dir
@includeコマンドを使ってインクルードしているファイルを見つけるため のディレクトリ検索リストに,dirを追加します.デフォルトで, makeinfoは,カレントディレクトリのみを探します.dirが与えられ ない場合,カレントディレクトリ.が追加されます.dirでは,通常 のパスを分ける文字(Unixの:,MS-DOS/MS-Windowsの;)で分けられ た,複数のディレクトリのリストを,実際に使うことができることに,注意してく ださい.
--macro-expand=file
-E file
指名されたファイルで拡張された,全てのマクロを含むTexinfoソースを出力しま す.通常,マクロ拡張の結果は,makeinfo内部で使われ削除されます.こ のオプションは,@macroをサポートしていない,古いバージョンの texinfo.texを使っている場合に,texi2dviで使われます.
--no-headers
Info出力に対し,出力にメニューやノード行を含めず,(--outputが指定 されていない場合)標準出力に書き出します.これは結果として,必要なノードや メニューが含まれていないため,Infoで読めないASCIIファイルになります. INSTALLファイルのように,配布物に含まれる分けられたファイルに,マニュ アルの一部を展開するため特に役に立ちます.

HTML出力に対し,--no-splitも指定している場合,それぞれのノードのトッ プへのナビゲーションリンクは含めないでください.See makeinfo html.

--no-split
makeinfoでの,分割ステージを抑制します.デフォルトで,大きな出力ファ イル(70kバイトより大きいサイズ)はより小さいサブファイルに分割されます. Info出力に対しそれぞれ約50kバイトになります.HTML出力に対し,それぞれのファ イルは1つのノードを含みます(see makeinfo html).
--no-pointer-validate
--no-validate
makeinfoのポインタの有効化のステージを抑制します.これは, @novalidateコマンドでもできます(see Use TeX).通常 はTexinfoファイルが処理された後,相互参照が解決されていることを確かめるな どのため,一貫性の調査が行われます.See Pointer Validation.
--no-warn
警告メッセージ(エラーメッセージではない)を抑制します.作成したファ イルに,Texinfoの相互参照の例がある場合と,実際には存在しないノードの参照 がある場合に使うかもしれません.
--number-sections
印刷されたマニュアルでの,章,セクションと,付録の番号を出力します.
--no-number-footnotes
自動的な脚注への番号付けを抑制します.デフォルトでmakeinfoは,単一 ノード内のそれぞれの脚注に順番に番号付けを行い,それぞれのノードの開始時に, 現在の脚注番号を1にリセットします.
--output=file
-o file
出力を,Texinfoソースで見つかる@setfilenameコマンドで指定した ファイル名ではなく,fileに指定します(see setfilename). file-の場合は出力は標準出力になり,--no-splitが暗 黙に指定されます.分けられたHTML出力で,fileはトップノードの出力ファ イル名になります(see makeinfo html).
-P dir
@includeに対するディレクトリ検索リストの前に,dirを追加しま す.dirが与えられない場合,カレントディレクトリ.が前に追加さ れます.詳細は-Iを参照してください.
--paragraph-indent=indent
-p indent
段落の字下げ形式をindentにセットします.このオプションでセットした値 は,Texinfoファイルで@paragraphindentコマンドでセットした値に優先 します(see paragraphindent).indentの値は,以下のように解釈され ます.
asis
段落の開始で,あらゆる字下げを保存します.
0 or none
既存の字下げを削除します.
num
それぞれの段落を,num個の空白で字下げします.

--reference-limit=limit
-r limit
makeinfoが警告の報告無しで作成するノード参照の数字の値をセットしま す.ノードがこの数字以上の参照がある場合,makeinfoは参照を作成しま すが警告を報告します.デフォルトは1000です.
-U var
varを未定義にします.これは,Texinfoファイルでの@clear varと同じです(see set clear value).
--verbose
makeinfoに,行っていることのメッセージを表示させます.通常 makeinfoは,エラーや警告がある場合のみメッセージを出力します.
--version
-V
バージョンナンバーを出力し,正しく終了します.


Node:Pointer Validation, Next:, Previous:makeinfo options, Up:Creating an Info File

ポインタの一貫性

--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'のリンクや,メニューや相互参 照による,少なくとも1つの他のノードからの参照があるべきです.

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

@set nodename Node 1

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

これは,ノード1です.

@node Node 2, , Node 1, Top

これは,ノード2です.

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

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

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

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


Node:makeinfo in Emacs, Next:, Previous:Pointer Validation, Up:Creating an Info File

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 Compilation.

さらに,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 Texinfo Mode Printing.)

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

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

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


Node:texinfo-format commands, Next:, Previous:makeinfo in Emacs, Up:Creating an Info 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コマンドは,い くつかのエラー調査を提供し,他の関数は,書式化のエラーを見つけるそれ以上 の助けとなるものを提供するはずです.これらの手続きは付録で記述されていま す.Catching Mistakes,を参照してください.しかし,makeinfo プログラムはより速い場合が多く,より多くのエラーチェックを提供します (see makeinfo in Emacs).


Node:Batch Formatting, Next:, Previous:texinfo-format commands, Up:Creating an Info File

書式化のバッチ処理

batch-texinfo-formatとEmacsバッチモードを使って,Texinfoファイルを Infoファイルに書式化できます.Emacsの内部シェルを含む,あらゆるシェルから バッチモードでEmacsを実行できます.(See Command Switches.)

以下は,カレントディレクトリの.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を使うことはできません.)


Node:Tag and Split Files, Next:, Previous:Batch Formatting, Up:Creating an Info File

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

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

さらに,Texinfoファイルが70,000バイト以上の場合, texinfo-format-buffermakeinfoは,大きなInfoファイルをそれ ぞれ50,000バイト程度のより小さい間接的なサブファイルに分けます.大き なファイル全体を保つための大きなバッファをEmacsが作成する必要がないように するため,大きなファイルは小さなファイルに分けます.代わりにEmacsは,分け られた小さなファイルがそのとき必要とする,十分なメモリだけを確保します.こ うして,EmacsはInfo実行中のメモリの無駄を避けます.(スプリットが実行される 前は,Infoファイルは常に短く保たれ,インクルードファイルは,小さな Infoファイルから,単一の大きな印刷されてマニュアルを作成する方法として,設 計されていました.詳細は,See Include Files. インクルードファイルは, The Emacs Lisp Reference Manualのような,大変大きなドキュメントのた めにまだ使われていて,そこでは,それぞれの章は別々のファイルになっています. )

ファイルが分けられるとき,Info自身は,タグ表と分けられたファイルへの参照を 含む,元ファイルの短縮バージョンを利用します.分けられたファイルは, 間接的なファイルと呼ばれます.

分けられたファイルは,@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-1test-texinfo-2と,test-texinfo-3は,このファイルの Indirect:以下の行でリストアップされます.タグ表は,Tag table:以下の行でリストアップされます.

間接的なファイルのリストでファイル名に続く番号は,前の間接的なファイルに累 積バイト数を記録し,ファイルリスト自身の数や,タグ表や,それぞれのファイル の許可テキストは記録しません.タグ表で,ノード名に続く数は,ノードの開始位 置を(分けられていない)出力の最初からのバイトを記録します.

Infoファイルを作成するため,texinfo-format-bufferを使っている場合, Info-validateコマンドを実行したくなるかも知れません. (makeinfoコマンドは,それ自身良い仕事をし,Info-validateは 不要です.)しかし,M-x Info-validateノードチェックコマンドを,間接 ファイルでは使用できません.ファイルを分けることを避ける方法や,ノードの 構造の有効化の方法の情報は,Using Info-validate,を参照してください.


Node:makeinfo html, Previous:Tag and Split Files, Up:Creating an Info File

HTMLの生成

通常のInfo書式出力物の代わりとして,--htmlオプションを使って, HTML書式で出力物を(例えば)ウェブサイトのインストールのために生成できます. このリリースでのmakeinfoからのHTML出力は,画一的で,章やノードで出 力物を分けることをサポートしていません.我々は,この特徴をすぐに組み込みた いと思います.

HTML出力ファイルは,@setfilenameに対応して名付けられますが, .info拡張子は,.htmlで置換されます.

@ifhtmlコマンドでマークアップされたTexinfo入力は,--htmlオ プションが供給されたときだけ出力物を生成します.@htmlでマークアッ プされた入力は,本当に出力に渡されます(HTMLで特別重要な,入力の<>&文字の,通常のエスケープ文字の意味は抑制されます.)

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

生成されたHTMLはほとんど標準的です(いわゆる,HTML 2.0,RFC1866).例外として, HTML 3.2の表が,@multitableコマンドで生成されますが,表をサポート していないブラウザでも分解可能なようにタグ付けされています.HTML 3.2 DTDに 違反するmakeinfoのエラーのない実行結果からの出力を,バグとして報告 してください.

ナビゲーションバーが,Info出力に似たものとして,ノードの始まりに挿入されま す.--no-headersオプションは,--no-splitを使っている場合,こ れを抑制します.分けられた出力物のヘッダの<link>の要素は,Lynxと HTML 1.0の特徴で作られたEmacs W3のようなブラウザで,infoのようなナ ビゲートをサポートしています.通常Infoリーダで供給される,複数ファイルの正 規表現と,索引検索ファシリティは得られません.しかし,ハイパーリンクは Texinfoコマンドに応じて生成されます.他のドキュメントに対する @xrefコマンドは,他のドキュメントがHTML形式で利用可能であるとして 生成され,.html@xrefInfoファイル名に追加されます.これは, おそらく働かないことが多いでしょう.


Node:Install an Info File, Previous:Creating an Info File, Up:Creating and Installing Info Files

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

Infoファイルは,通常infoディレクトリに置かれます.Infoファイルを, スタンドアローンのInfoプログラムや,Emacs組込みのInfoリーダーを使って読む ことができます.(Infoの紹介は,see info.)


Node:Directory File, Next:, Up:Install an Info File

ディレクトリファイル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 Nodes in Other Info Files.)

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

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

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

この場合,dirファイル名は,大文字で書かれています--それは,大文字 か小文字で書けます.これは一般に真ではなく,dirの場合のみ特別です.


Node:New Info File, Next:, Previous:Directory File, Up:Install an Info File

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

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

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

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

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


Node:Other Info Directories, Next:, Previous:New Info File, Up:Install an Info File

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

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

  1. dirファイルで,メニューの2番目の部分にパス名を書いてください.
  2. Emacsを使っている場合,そのディレクトリで,2番目のdirにファイル名を リストアップしてください.そして,個人やサイトの初期化ファイルで, Info-directory-list変数にそのディレクトリ名の指定を加えてください.

    この変数は,Emacsにdirファイルを探す場所を伝えます(ファイルは dirと名付ける必要があります).Emacsは,それぞれリストアップされたディ レクトリからの,dirと名付けられたファイルをマージします.(Emacsバー ジョン18では,Info-directory変数で,1つのディレクトリの名前しかセッ トできません.)

  3. Infoディレクトリ名を,.profile.cshrc初期化ファイルで, INFOPATH環境変数で指定してください.(この環境変数を指定した人だけ, この方法で指定した場所のInfoファイルを見つけることができます.)

例えば,/home/bob/infoディレクトリのテストファイルに届くように,標 準dirファイルのメニューに,以下のように項目を加えることができます.

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

この場合,info-testファイルの絶対ファイル名は,メニュー項目の2番 目の部分に書かれます.

別の方法として,.emacsファイルに以下のように書くことができます.

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

これは,Emacsに/home/bob/infoディレクトリからのdirファイルを, システムの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システムでは,INFOPATHautoexec.batファイルかレジストリでセットする必要があります.それぞ れのシェルで構文は異なります.

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

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

INFOPATH=/local/info:
export INFOPATH

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

Info-directory-listINFOPATHで利用する独自のdirファイ ルを作るとき,既存のdirファイルをコピーから初め,* Menu:以下 のテキストを必要な項目で置換するのがもっとも簡単な方法です.その方法では, Infoが必要とする句読点と特別なCTRL-_文字は存在します.


Node:Installing Dir Entries, Next:, Previous:Other Info Directories, Up:Install an Info File

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カテゴリーがあります.`GNU packages',`GNU programming tools',`GNU programming documentation', `GNU Emacs Lisp',`GNU libraries',`Linux',`TeX',`Individual utilities'です.考え方は,`Individual utilities'のパッケージでインストール される全てのプログラムに対し`invoking'ノードを含め,マニュアルの項目を全体 として適切な他のカテゴリーに含めます.


Node:Invoking install-info, Previous:Installing Dir Entries, Up:Install an Info File

install-infoの呼び出し

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

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

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

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

入力ファイルが,gzipで圧縮されている場合(see Invoking gzip),install-infoは自動的に読み込みのため解凍します. そして,dir-fileが圧縮されている場合も,install-infoは自動的 に変更を書き込んだ後,圧縮された状態にします.dir-file自身が無い場合, install-infodir-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メニュー 項目行にゼロ以上の空白で始まる行を追加した書式とするべきです.1つ以上の項 目を指定する場合,全て追加されます.項目を指定しない場合,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に置きます.1つ以上 のセクションを指定した場合,Infoファイル自身の情報から決定されます.
--version
-V
バージョン情報を表示し,正しく終了します.


Node:Command List, Next:, Previous:Creating and Installing Info Files, Up:Top

@-コマンドリスト

以下にTexinfoのアルファベット順の@-コマンドリストがあります.角カッコ [ ]はオプションの引数を示します.省略...は,繰り返 しテキストを示します.

@whitespace
@に続くスペース,タブや,改行は,通常の伸縮可能な単語を区切る空白 を生成します.See Multiple Spaces.
@!
感嘆符を,文章の終りに実際に生成します(通常,文の終りの大文字の後です). See Ending a Sentence.
@"
@'
次の文字の上に,ö とóのように,ウムラートや鋭いアクセントを生成します. See Inserting Accents.
@*
行を切ります.@refillコマンドで,@*を使う段落を終了させ ないでください.See Line Breaks.
@,{c}
cの下にçのような,セディラアクセントを生成します. See Inserting Accents.
@-
任意のハイフネーションポイントを挿入します.See - and hyphenation.
@.
ピリオドを,文章の終りに実際に生成します(通常,文の終りの大文字の後です). See Ending a Sentence.
@:
TeXに,直前のピリオド,疑問符,感嘆符やコロンで,文章が終らないよう指示 します.TeXが文章の終りに行う,余分な空白を挿入することを妨げます.この コマンドはInfoファイル出力に効果はありません.See Not Ending a Sentence.
@=
次の文字の上に長音記号(バー)アクセントを,o¯の用に生成します. See Inserting Accents.
@?
疑問符を,文の終りに実際に生成します(通常,文の終りの大文字の後です). See Ending a Sentence.
@@
@という印を意味します.See Inserting @ and braces.
@^
@`
曲折アクセント(ハット)や低アクセントを,それぞれ次の文字の上に,ôのよ うに生成します.See Inserting Accents.
@{
左カッコ{を意味します.See Inserting @ and braces.
@}
右カッコ}
を意味します.See Inserting @ and braces.
@~
チルダアクセントを,次の文字の上に,~Nのように生成します. See Inserting Accents.
@AA{}
@aa{}
それぞれ大文字と小文字の,スカンジナビアのA-リング文字を生成します. Å,åです.See Inserting Accents.
@acronym{abbrev}
`NASA'のような,いわゆる,全て大文字で書かれている省略の頭文字としてタグ abbrevを付けます.See acronym.
@AE{}
@ae{}
それぞれ,大文字と小文字のAEの連字を生成します.Æ,æです. See Inserting Accents.
@afourlatex
@afourpaper
@afourwide
ページの寸法をA4用紙のサイズに変更します.See A4 Paper.
@alias new=existing
既存のコマンド@existingのエイリアスとして,新しいコマンド @newを作成します.See alias.
@anchor{name}
相互参照のターゲットとして使用するため,nameを現在の位置と定義します. See @anchor.
@appendix title
付録を開始します.タイトルは印刷されたマニュアルの目次に現れます.Infoでは, タイトルはアスタリスクで下線が付きます.See The @unnumbered and @appendix Commands.
@appendixsec title
@appendixsection title
付録内の付録セクションを開始します.セクションのタイトルは印刷されたマニュ アルの目次に現れます.Infoでは,タイトルは等号で下線が付きます. @appendixsection@appendixsecコマンドの長い綴のものです. See Section Commands.
@appendixsubsec title
付録内の付録サブセクションを開始します.タイトルは印刷されたマニュアルの 目次に現れます.Infoでは,タイトルはハイフンで下線が付きます. See Subsection Commands.
@appendixsubsubsec title
付録サブセクション内の付録サブサブセクションを開始します.タイトルは印刷 されたマニュアルの目次に現れます.Infoでは,タイトルはピリオドで下線が付 きます.See The `subsub' Commands.
@asis
表の最初の行を("他と比較して")強調無しで印刷するため,@table@ftable@vtableに続けて使用します.See Making a Two-column Table.
@author author
authorを左揃えに下線を引き植字します. See The @title and @author Commands.
@b{text}
textボールドフォントで印刷します.Infoでは効果がありません. See Fonts.
@bullet{}
大きな丸い点や,それに最も近いものを生成します.See @bullet.
@bye
ファイルの書式化を停止します.書式化は@byeコマンドに続くファイル の内容を見ません.See Ending a File.
@c comment
Texinfoでコメントを開始します.行の残りはInfoファイルにも印刷されたマニュ アルにも現れません.@commentの同義語です.See Comments.
@cartouche
角が丸いボックスを描き,例や引用を強調します.@end cartoucheとペア になります.Infoでは効果はありません.See Drawing Cartouches Around Examples.
@center line-of-text
コマンドに続くテキスト行をセンタリングします.See @center.
@centerchap line-of-text
@chapterに似ていますが,章のタイトルをセンタリングします. See @chapter.
@chapheading title
テキストに章のような見出しを印刷しますが,印刷されたマニュアルの目次には現 れません.Infoでは,タイトルはアスタリスクで下線が引かれます. See @majorheading and @chapheading.
@chapter title
章を開始します.章のタイトルは印刷されたマニュアルの目次に現れます.Infoで は,タイトルはアスタリスクで下線が引かれます.See @chapter.
@cindex entry
entryを概念の索引に加えます.See Defining the Entries of an Index.
@cite{reference}
Infoファイルの仲間に無い,本やその他の参照の名前を強調します. See @cite.
@clear flag
Texinfo書式化コマンドが@ifset flag@end ifsetの組の 間のテキストの書式化するのを妨げるためと,@value{flag}flagが設定した値の拡張するのを妨げるため,flagを解除します. See @set @clear @value.
@code{sample-code}
表現,プログラムの構文上の完全なトークンや,プログラム名を強調します. See @code.
@command{command-name}
lsのような,コマンド名を示します.See @command.
@comment comment
Texinfoでコメントを開始します.行の残りは,Infoファイルでも印刷されたマニュ アルでも現れません.@cと同義語です.See Comments.
@contents
目次を印刷します.Infoでは効果が無く,代わりにメニューが使用されます. See Generating a Table of Contents.
@copyright{}
著作権のシンボルを生成します.See @copyright.
@defcodeindex index-name
新しい索引と索引コマンドを定義します.@codeフォントで項目を印刷し ます.See Defining New Indices.
@defcv category class name
@defcvx category class name
オブジェクト指向プログラムのクラスに結びつけられた変数をの記述を書式化し ます.3つの引数があります.定義されたもののカテゴリ,属するクラスとその 名前です.See Definition Commands. またDef Cmds in Detail,を参照してください.
@deffn category name arguments...
@deffnx category name arguments...
関数,対話的コマンドや,類似の引数とされるエンティティの記述を書式化します. @deffnは引数として,記述されるエンティティのカテゴリ,この特定のエ ンティティの名前と,そのあらゆる引数を,引数とします.See Definition Commands.
@defindex index-name
新しい索引と索引コマンドを定義します.ローマンフォントで項目を印刷します. See Defining New Indices.
@definfoenclose newcmd, before, after,
Infoのため,テキストの前後を文字列で囲みテキストをマークする,新しい@-コ マンドnewcmdを作成します.See definfoenclose.
@defivar class instance-variable-name
@defivarx class instance-variable-name
このコマンドは,オブジェクト指向プログラミングのインスタンス変数の記述を 書式化します.このコマンドは,@defcv {Instance Variable} ...と同じです.See Definition Commands. またDef Cmds in Detail,を参照してください.
@defmac macroname arguments...
@defmacx macroname arguments...
マクロの記述を書式化します.このコマンドは@deffn Macro ...と 同じです.See Definition Commands. またDef Cmds in Detail,を参照してください.
@defmethod class method-name arguments...
@defmethodx class method-name arguments...
オブジェクト指向プログラミングのメソッドの記述を書式化します.このコマン ドは@defop Method ...と同じです.メソッドのクラス名,メソッ ド名とそのあらゆる引数を,引数とします.See Definition Commands. ま たDef Cmds in Detail,を参照してください.
@defop category class name arguments...
@defopx category class name arguments...
オブジェクト指向プログラミングのオペレーションの記述を書式化します. @defopは,オペレーションのカテゴリーの全体名,オペレーションのク ラス名,オペレーション名とあらゆる引数を,引数とします.See Definition Commands. またAbstract Objects,を参照してください.
@defopt option-name
@defoptx option-name
ユーザーオプションの記述を書式化します.このコマンドは@defvr {User Option} ...と同じです.See Definition Commands. また Def Cmds in Detail,を参照してください.
@defspec special-form-name arguments...
@defspecx special-form-name arguments...
特別な形式の記述を書式化します.このコマンドは@deffn {Special Form} ...と同じです.See Definition Commands. また Def Cmds in Detail,を参照してください.
@deftp category name-of-type attributes...
@deftpx category name-of-type attributes...
データ型の記述を書式化します.@deftpは,カテゴリー,型名 (intfloatのような単語)と,その型のオブジェクトの属性名を 引数とします.See Definition Commands. またData Types,を参照し てください.
@deftypefn classification data-type name arguments...
@deftypefnx classification data-type name arguments...
関数や,類似の引数をとることができ入力もされる,エンティティの記述を書式 化します.@deftypefnは,記述されているエンティティの分類,型,エ ンティティ名と,あらゆる引数を,引数とします.See Definition Commands. またDef Cmds in Detail,を参照してください.
@deftypefun data-type function-name arguments...
@deftypefunx data-type function-name arguments...
入力された言語の関数の記述を書式化します.このコマンドは @deftypefn Function ...と同じです.See Definition Commands. またDef Cmds in Detail,を参照してください.
@deftypeivar class data-type variable-name
@deftypeivarx class data-type variable-name
オブジェクト指向プログラミングの入力されたインスタンス変数を書式化します. See Definition Commands. またAbstract Objects,を参照してくださ い.
@deftypemethod class data-type method-name arguments...
@deftypemethodx class data-type method-name arguments...
オブジェクト指向プログラミングの入力されたメソッドの記述を書式化します. See Definition Commands. またDef Cmds in Detail,を参 照してください.
@deftypeop category class data-type name arguments...
@deftypeopx category class data-type name arguments...
オブジェクト指向プログラミングの入力されたオペレーションの記述を書式化し ます.See Definition Commands. またAbstract Objects,を参照して ください.
@deftypevar data-type variable-name
@deftypevarx data-type variable-name
入力された言語の変数の記述を書式化します.このコマンドは @deftypevr Variable ...と同じです.See Definition Commands. またDef Cmds in Detail,を参照してください.
@deftypevr classification data-type name
@deftypevrx classification data-type name
入力された言語の変数のようなもの(値を記録するエンティティ)の記述を書式化 します.引数として,記述されたエンティティの分類,型と,エンティティの名 前をとります.See Definition Commands. またDef Cmds in Detail,を参照してください.
@defun function-name arguments...
@defunx function-name arguments...
関数の記述を書式化します.このコマンドは@deffn Function ... と同じです.See Definition Commands. またDef Cmds in Detail,を参照してください.
@defvar variable-name
@defvarx variable-name
変数の記述を書式化します.このコマンドは@defvr Variable ... と同じです.See Definition Commands. またDef Cmds in Detail,を参照してください.
@defvr category name
@defvrx category name
あらゆる変数に類するものの記述を書式化します.@defvrは,エンティ ティのカテゴリとエンティティ名を引数とします.See Definition Commands. またDef Cmds in Detail,を参照してください.
@detailmenu
マスターメニューでリストアップされている詳細なノードで生じる, makeinfoの混乱を避けます.See Master Menu Parts.
@dfn{term}
用語使用の導入や定義を強調します.See @dfn.
@dircategory dirpart
このファイルの項目へ行く,Infoディレクトリメニューを指定します. See Installing Dir Entries.
@direntry
このファイルの,Infoディレクトリメニュー項目を開始します.@end direntryと組になります.See Installing Dir Entries.
@display
例のようなものを開始します.@exampleに似ていますが(テキストを字下 げし,全体に広がらない)新しいフォントを選択しません.@end displayと組になります.See @display.
@dmn{dimension}
測定単位を12ptのように書式化します.TeXは,dimensionの前に スペースを挿入します.Infoでは,効果はありません.See @dmn.
@documentencoding enc
入力エンコードをencを宣言します.See @documentencoding.
@documentlanguage CC
ドキュメント言語を2文字のISO-639の省略型CCと宣言します. See @documentlanguage.
@dotaccent{c}
文字cの上にo.のようにドットアクセントを生成します. See Inserting Accents.
@dots{}
省略を意味する...を挿入します.See @dots.
@email{address[, displayed-text]}
電子メールアドレスを示します.See @email.
@emph{text}
textを強調します.テキストは印刷された出力でイタリックで表示 され,Infoでは,アスタリスクが前後に付きます.See Emphasizing Text.
@end environment
environment@end exampleのように終了します. See @-commands.
@env{environment-variable}
PATHのような環境変数名を示します.See @env.
@enddots{}
文章の終りの省略を....のように生成します. See @dots{}.
@enumerate [number-or-letter]
@itemを使用するそれぞれの項目に対し,番号付のリストを開始します. オプションでnumber-or-letterを用いたリストを開始します. @end enumerateと組になります.See @enumerate.
@equiv{}
glyphを用い,==のように,2つ形式が正確に等しいことを読者に示 します.See Equivalence.
@error{}
glyphを用い,error-->のように,以下のテキストがエラーメッセージだと いうことを読者に示します.See Error Glyph.
@evenfooting [left] @| [center] @| [right]
@evenheading [left] @| [center] @| [right]
偶数番号で(左側)ページのページフッタと見出しを指定します.@iftexの 中だけで使用できます.See How to Make Your Own Headings.
@everyfooting [left] @| [center] @| [right]
@everyheading [left] @| [center] @| [right]
すべてのページのページフッタと見出しを指定します.Infoには関係しません. See How to Make Your Own Headings.
@example
例を開始します.テキストを字下げし,補充せず,等幅フォントを選択します. @end exampleと組になります.See @example.
@exampleindent indent
例のような環境で,indent個のスペースで(おそらく0)字下げします. See Paragraph Indenting.
@exclamdown{}
上下逆の感嘆符を生成します.See Inserting Accents.
@exdent line-of-text
行が持つあらゆる字下げを削除します.See Undoing the Indentation of a Line.
@expansion{}
特別なglyph==>で,マクロ拡張の結果を読者に示します. See ==> Indicating an Expansion.
@file{filename}
ファイル,バッファ,ノードやディレクトリの名前を強調します.See @file.
@finalout
TeXが,大きな黒い警告の長方形を,幅を越えた行に印刷するのを妨げます. See Overfull hboxes.
@findex entry
entryを関数の索引に追加します.See Defining the Entries of an Index.
@flushleft
@flushright
全ての行を左寄せにしますが,右端はバラバラになります.フォントはそのままで す.@end flushleftと組にします.@flushrightの同義語です. See @flushleft and @flushright.
@footnote{text-of-footnote}
脚注に挿入します.脚注のテキストは,TeXではページの底に印刷され,Infoは ノードの「終り」か「分割した」形式で書式化されます.See Footnotes.
@footnotestyle style
Infoファイルの脚注形式を指定し,endは終りに置くノード形式で, separateは分割したノード形式です.See Footnotes.
@format
例の類を開始します.@displayに似ていますが,マージンは狭くなりませ ん.@end formatと組にします.See @example.
@ftable formatting-command
それぞれの項目に対し,@itemを使用した2行の表を開始します.それぞれ の項目は,関数の索引の最初の行に自動的に挿入されます.@end ftableと組にします.索引に対する以外,@tableと同じです. See @ftable and @vtable.
@group
1つの印刷されたページに,一緒に現れる必要があるテキストを保ちます. @end groupと組にします.Infoでは関係ありません.See @group.
@H{c}
cの上に長いハンガリーのウムラートをo''のように生成します.
@heading title
テキストに番号付けされていないセクションのような見出しを印刷しますが,印刷 された目次には印刷しません.Infoでは,タイトルは等号で下線が引かれます. See Section Commands.
@headings on-off-single-double
印刷に対し,ページ見出しを付けたり消したりし,片面または両面のページ見出し を指定したりします.See The @headings Command.
@html
完全にHTMLに入ります.@end htmlと組にします.See Raw Formatter Commands.
@hyphenation{hy-phen-a-ted words}
ハイフネーションポイントを明示的に定義します.See @- and @hyphenation.
@i{text}
textイタリックフォントで印刷します.Infoでは効果がありません. See Fonts.
@ifclear flag
flagがクリアされた場合,Texinfo書式化コマンドは,@ifclear flagとそれに続く@end ifclearコマンドの間のテキストを書式化 します.See @set @clear @value.
@ifhtml
@ifinfo
印刷されたマニュアルで植字するとき,TeXが無視するテキストの展開を開始し ます.テキストはHTMLのみに現れ,対応してInfoファイルも同様です. @end ifhtmlと組になり,対応して@end ifinfoも同様です. See Conditionals.
@ifnothtml
@ifnotinfo
@ifnottex
1つの出力形式で無視され,他では無視されないテキストの展開を開始します.テ キストは指定されていない書式でのみ現れます.@end ifnothtmlと,対応 して,@end ifnotinfo@end ifnotinfoと組になります. See Conditionals.
@ifset flag
flagが設定されている場合,Texinfo書式化コマンドは,@ifset flagとそれに続く@end ifsetコマンドの間のテキストを書式化し ます.See @set @clear @value.
@iftex
Infoファイルに現れないが,TeXのみで処理されるテキストの展開を開始します. @end iftexと組になります.See Conditionally Visible Text.
@ignore
Infoファイルにも印刷された出力にも現れないテキストを展開します. @end ignoreと組になります.See Comments and Ignored Text.
@image{filename, [width], [height]}
外部のfilenameの画像を,与えられたwidthと/やheightの大き さで含みます.See Images.
@include filename
Infoファイルや印刷されたドキュメントに,ファイルfilenameの内容を取り 込みます.See Include Files.
@inforef{node-name, [entry-name], info-file-name}
印刷されたマニュアルにはない,Infoファイルへの相互参照を作成します. See Cross references using @inforef.
\input macro-definitions-file
指定されたマクロ定義ファイルを使用します.このコマンドは,TeXが texinfoマクロ定義ファイルを使用するよう,Texinfoファイルの最初の行 でのみ使用されます.定義ファイルを読むまで,TeXは@を理解できな いので,\inputのバックスラッシュは,@の代わりに使用されます. See The Texinfo File Header.
@item
@itemize@enumerateに対しマークされた段落の最初を示します. @table@ftableと,@vtableに対し,最初の行項目のテ キストの最初を示します.See Lists and Tables.
@itemize mark-generating-character-or-command
字下げされた段落の文章を作成し,それぞれの段落の最初に左のマージンの内部に マークを付けます.See @itemize.
@itemx
@itemに似ていますが,項目のテキストの上に余分な縦方向の空白を生成 しません.See @itemx.
@kbd{keyboard-characters}
ユーザが入力する文字のテキストを示します.See @kbd.
@kbdinputstyle style
@kbd@codeと異なるフォントを使用するとき指定します. See @kbd.
@key{key-name}
キーボードのキーの名前を示します.See @key.
@kindex entry
キーの索引にentryを加えます.See Defining the Entries of an Index.
@L{}
@l{}
ポーランドの縮めたLの文字の,大文字と小文字を生成します.それぞれ/L, /lです.
@lisp
Lispコードの例を開始します.文字を字下げし,両端まで広げず,等幅フォントを 選択します.@end lispと組になります.See @lisp.
@lowersections
順番に,章をセクションに,セクションをサブセクションなどのように変更します. See @raisesections and @lowersections.
@macro macroname {params}
新しいTexinfoコマンド@macroname{params}を定義します. makeinfotexi2dviのみでサポートされています. See Defining Macros.
@majorheading title
テキストで章のような見出しを印刷しますが,印刷されたマニュアルの目次には印 刷されません.@chapheadingコマンドより大きな縦方向の空白を見出しの 前に生成します.Infoでは,章の見出し行はアスタリスクで下線が引かれます. See @majorheading and @chapheading.
@math{mathematical-expression}
数学的表現を書式化します.See @math: Inserting Mathematical Expressions.
@menu
Infoでノードメニューの最初に印を付けます.印刷されたマニュアルでは効果があ りません.@end menuと組になります.See Menus.
@minus{}
負符号`-'を生成します.See @minus.
@multitable column-width-spec
複数行の表を開始します.@end multitableと組になります. See Multitable Column Widths.
@need n
現在のページの残りがnミル(千分の1インチ)より小さい場合,印刷されたマ ニュアルで新しいページを開始します.See @need.
@node name, next, previous, up
Infoで新しいノードの開始を定義し,TeXに対し参照の位置を供給します. See @node.
@noindent
テキストが新しい段落のように字下げするのを妨げます.See @noindent.
@novalidate
ノード参照の有効化を抑制し,TeXの追加ファイルの作成を削除します. @setfilenameの前で使用します.See Pointer Validation.
@O{}
@o{}
大文字と小文字のスラッシュの付いたOの文字を生成します.それぞれ,Ø, øです.
@oddfooting [left] @| [center] @| [right]
@oddheading [left] @| [center] @| [right]
ページのフッタと,対応して見出しを,それぞれ,偶数番号の(右側の)ページに指 定します.@iftexの中のみで使用できます.See How to Make Your Own Headings.
@OE{}
@oe{}
大文字と小文字のOEの抱き文字を生成します.それぞれŒ,œです. See Inserting Accents.
@option{option-name}
-l--helpのようなコマンドラインオプションを示します. See @option.
@page
印刷されたマニュアルで,新しいページを開始します.Infoでは効果ありません. See @page.
@pagesizes [width][, height]
ページ寸法を変更します.See pagesizes.
@paragraphindent indent
indent個のスペース(おそらく0)で,段落の字下げを行います. indentasisの場合,ソースファイルの字下げを保持します. See Paragraph Indenting.
@pindex entry
プログラムの索引にentryを加えます.See Defining the Entries of an Index.
@point{}
バッファでのポイントの位置を,読者にglyph-!-で示します. See Indicating Point in a Buffer.
@pounds{}
ポンド通過記号を生成します.See @pounds{}.
@print{}
読者にglyph,-|で印刷された出力を示します.See Print Glyph.
@printindex index-name
アルファベット順の2行の索引を,印刷されたマニュアルで印刷したり,Infoで索 引項目のアルファベット順のメニューを生成します.See Printing Indices & Menus.
@pxref{node-name, [entry], [topic-or-title], [info-file], [manual]}
小文字の`see'で始まる参照を,印刷されたマニュアルで作成します.カッコ内の みで使用します.句読点を使用してコマンドを続けないでください.Info書式化コ マンドは,必要な場合,自動的に終りの句読点を挿入します.最初の引数のみ必要 です.See @pxref.
@questiondown{}
上下逆の疑問符を生成します.See Inserting Accents.
@quotation
実際のまたは想像上の成果物からの引用のテキストを表示するため,マージンを狭 くします.コマンドは単独行で書いてください.@end quotationと組にな ります.See @quotation.
@r{text}
textをromanフォントで出力します.Infoでは効果がありません. See Fonts.
@raisesections
順番に,セクションを章に,サブセクションをセクション等のように,変更します. See @raisesections and @lowersections.
@ref{node-name, [entry], [topic-or-title], [info-file], [manual]}
参照を作成します.印刷されたマニュアルでは`See'で始まりません.コマンドに 句読点を続けてください.最初の引数のみ必要です.See @ref.
@refill
Infoでは,他の処理が終った後段落の補充とと字下げが行われます.TeXでは効 果がなく,常に補充されます.このコマンドは,全てのフォーマッターが自動的に 補充するのでもはや不要です.See Refilling Paragraphs.
@result{}
拡張の結果を特別なglyph =>を用いて示します.See @result.
@ringaccent{c}
リングアクセントを,o*のように,次の文字の上に生成します. See Inserting Accents.
@samp{text}
文字の連結した,リテラル例のテキストを強調します.宣言とシェルコマンド全体 に対し,単一の文字を使用します.See @samp.
@sc{text}
印刷された出力物で,textTHE SMALL CAPS FONTに設定し,Infoファ イルでは大文字にtextをセットします.See Smallcaps.
@section title
章の中でセクションを開始します.印刷されたマニュアルでは,セクションタイト ルは番号が付き目次に現れます.Infoでは,タイトルは等号で下線が引かれます. See @section.
@set flag [string]
flagをアクティブにし,Texinfo書式化コマンドは@ifset flag@end ifsetコマンドの組の間のテキストを書式化します. オプションで,flagの値をstringにセットします.See @set @clear @value.
@setchapternewpage on-off-odd
新しいページで章を開始する時,その場合は,偶数番号(右側)の新しいページを指 定します.See @setchapternewpage.
@setcontentsaftertitlepage
@contentsコマンドがない場合でも,目次を@end titlepageの後 に置きます.See Contents.
@setfilename info-file-name
Infoファイルが使用する名前を供給します.このコマンドは,出力を生成しません が,TeXの書式化でも必要です.See @setfilename.
@setshortcontentsaftertitlepage
短い目次を@end titlepageコマンドの後に,そこに @shortcontentsコマンドがない場合でも,生成します. See Contents.
@settitle title
印刷されたマニュアルのページヘッダにタイトルを供給します. See @settitle.
@shortcontents
短い目次を印刷します.Infoには関係なく,それは,目次よりメニューを使用しま す.@summarycontentsの同義語です.See Generating a Table of Contents.
@shorttitlepage title
最小限のタイトルページを生成します. See @titlepage.
@smallbook
TeXに印刷されたマニュアルを,8.5x11インチではなく,7x9.25インチで生成 させます.See Printing Small Books. 同様にsmall, も参照してください.
@smalldisplay
例のようなものを開始します.@smallexample(テキストを字下げし,補充 しない)に似ていますが,等幅フォントを選択しません.@smallbook書式 では,@displayより小さいフォントでテキストを印刷します. @end smalldisplayと組になります.See small.
@smallexample
例を示すためテキストを字下げします.補充せず,等幅フォントを選択します. @smallbook書式では,@exampleより小さいフォントを選択します. @end smallexampleと組になります.See small.
@smallformat
例のようなものを開始します.@smalldisplayに似ていますが,マージン を狭くせず,等幅フォントを選択しません.@smallbook書式では, @formatより小さいフォントでテキストを印刷します.@end smallformatと組になります.See small.
@smalllisp
Lispコードの例を開始します.テキストを字下げし,補充せず,等幅フォントを選 択します.@smallbook書式では,より小さいフォントでテキストを印刷し ます.@end smalllispと組になります.See small.
@sp n
n個の空白行を省略します.See @sp.
@ss{}
ドイツのエスツェット文字ßを生成します.See Inserting Accents.
@strong {text}
印刷されたマニュアルで,植字をボールドフォントで行ったり,Infoで アスタリスクを周りに置くことでtextを強調します.See Emphasizing Text.
@subheading title
テキストに番号付けされていないセクションのような見出しを印刷しますが,印刷 されたマニュアルの目次には印刷しません.Infoでは,タイトルはハイフンで下線 が引かれます.See @unnumberedsubsec @appendixsubsec @subheading.
@subsection title
セクション内でサブセクションを開始します.印刷されたマニュアルでは,サブセ クションタイトルは番号付けされ,目次に現れます.Infoでは,タイトルはハイフ ンで下線が引かれます.See @subsection.
@subsubheading title
テキストの番号付けされていないサブサブセクションのような見出しを印刷します が,印刷されたマニュアルの目次には印刷されません.Infoでは,タイトルはピリ オドで下線が引かれます.See The `subsub' Commands.
@subsubsection title
サブセクション内でサブサブセクションを開始します.印刷されたマニュアルでは, サブサブセクションのタイトルは番号付けされ,目次に現れます.Infoでは,タイ トルはピリオドで下線が引かれます.See The `subsub' Commands.
@subtitle title
印刷されたマニュアルでは,ページの右寄せで通常のフォントサイズでサブタイト ルをセットします.Infoでは関係なく,それはタイトルページがありません. See @title @subtitle and @author Commands.
@summarycontents
短い目次を印刷します.Infoでは関係なく,目次の代わりにメニューを使用します. @shortcontentsの同義語です.See Generating a Table of Contents.
@syncodeindex from-index into-index
最初の引数で指名された索引を,2番目の引数で指名された索引に統合し,最初の 索引から@codeフォントで項目を印刷します.See Combining Indices.
@synindex from-index into-index
最初の引数で指名された索引を2番目の引数で指名された索引に統合します. from-index項目のフォントは変更しません.See Combining Indices.
@t{text}
textをタイプライターのようなフォントの等幅フォントで印刷します. Infoには効果がありません.See Fonts.
@tab
行を複数行の表に分割します.See Multitable Rows.
@table formatting-command
2行の表を開始し,それぞれの項目に対し@itemを使用します.それぞれ の最初の行の項目を@itemと同じ行に書いてください.最初の行の項目 は,formatting-commandの結果のフォントで印刷されます.@end tableと組になります.See Making a Two-column Table. また,@ftable and @vtable,と@itemx,を参照してください.
@TeX{}
ロゴTeXを挿入します.See Inserting TeX and ©.
@tex
完全にTeXに入ります.@end texと組にします.See Raw Formatter Commands.
@thischapter
@thischaptername
@thisfile
@thispage
@thistitle
見出しとフッタのみで利用可能です.現在の章の番号と名前を意味し(書式は, `Chapter 1: Title'),章の名前のみ,ファイル名,現在のページ番号とドキュメ ントのタイトルに,それぞれ対応します.See How to Make Your Own Headings.
@tieaccent{cc}
タイアクセントを次の2文字ccの上に`oo['のように生成します. See Inserting Accents.
@tindex entry
entryをデータ型の索引に加えます.See Defining the Entries of an Index.
@title title
印刷されたマニュアルでは,タイトルを,右寄せで通常フォントより大きいもので 黒い罫線で下線を引き配置します.Infoには関係なく,それはタイトルページがあ りません.See The @title @subtitle and @author Commands.
@titlefont{text}
印刷されたマニュアルで,textを通常フォントより大きなもので印刷します. Infoでは関係なく,それにはタイトルページがありません.See The @titlefont @center and @sp Commands.
@titlepage
Texinfoにタイトルぺージの最初を示します.コマンドを単独行に書いてください. Infoでは,@titlepage@end titlepageの間には何も現れません. See @titlepage.
@today{}
現在の日付を`1 Jan 1900'の形式で挿入します.See How to Make Your Own Headings.
@top title
makeinfoで書式化するInfoファイルで,ファイルの最上位の @node行を識別し,それは@topコマンドの直前の行に書く必要が あります.makeinfoのノードポインタが挿入する特徴として使用されます. タイトルは,アスタリスクで下線が引かれます.@node行と @top行は,通常@ifinfo@end ifinfoで囲まれています. TeXとtexinfo-format-bufferで,@topコマンドは, @unnumberedと単なる同義語です.See Creating Pointers with makeinfo.
@u{c}
@ubaraccent{c}
@udotaccent{c}
文字cの上や下に,o(,o_,.oのように,ブレー ブ,下線や,下ドットのアクセントを生成します.See Inserting Accents.
@unnumbered title
印刷されたマニュアルで,章番号のない表現の章を開始します.タイトルは印刷さ れたマニュアルの目次に現れます.Infoでは,タイトルはアスタリスクで下線が引 かれます.See @unnumbered and @appendix.
@unnumberedsec title
印刷されたマニュアルで,セクション番号がない表現のセクションを開始します. タイトルは,印刷されたマニュアルの目次に現れます.Infoでは,タイトルは等号 で下線が引かれます.See Section Commands.
@unnumberedsubsec title
印刷されたマニュアルで,章の中に,番号がないサブセクションを開始します.タ イトルは,印刷されたマニュアルの目次に現れます.Infoでは,タイトルはハイフ ンで下線が引かれます.See @unnumberedsubsec @appendixsubsec @subheading.
@unnumberedsubsubsec title
印刷されたマニュアルで,章の中に,番号がないサブサブセクションを開始します. タイトルは,印刷されたマニュアルの目次に現れます.Infoでは,タイトルはピリ オドで下線が引かれます.See The `subsub' Commands.
@uref{url[, displayed-text][, replacement}
相互参照を外部のワールドワイドウェブのユニフォームリソースロケータに定義し ます.See @uref.
@url{url}
ワールドワイドウェブのユニフォームリソースロケータとなるテキストを示します. See @url.
@v{c}
文字cの上にo<のようにチェックアクセントを生成します. See Inserting Accents.
@value{flag}
flag@set flagで設定された値で置換します.See @set @clear @value.
@var{metasyntactic-variable}
メタ構文の変数を強調し,それはもう1つのテキストの一部を意味するものです. See Indicating Metasyntactic Variables.
@vindex entry
entryを変数の索引に追加します.See Defining the Entries of an Index.
@vskip amount
印刷されたマニュアルに,ページの残りのテキストをページの底まで押しやるよう な空白を挿入します.0pt plus 1filllのような引数を使用して,著作権の ページの書式化に使用します.(filllの綴に注意してください. )@vskipはInfoで無視される内容でのみ使用可能です.See The Copyright Page and Printed Permissions.
@vtable formatting-command
2行の表を開始し,それぞれの項目で@itemを使用します.最初の行のそれ ぞれの項目は変数の索引に自動的に入ります.@end vtableと組になりま す.索引化以外@tableと同じです.See @ftable and @vtable.
@w{text}
textが2行に分割されるのを妨げます.@refillコマンドと供に @wを使用して,段落を終了しないでください.See @w.
@xref{node-name, [entry], [topic-or-title], [info-file], [manual]}
印刷されたマニュアルで,`See'で始まる参照を生成します.コマンドに句読点を 続けてください.最初の引数のみ必要です.See @xref.


Node:Tips, Next:, Previous:Command List, Up:Top

チップとヒント

ここに,Texinfoドキュメントを書くためのチップがあります.

索引,索引,索引!

異なる方法で多くの索引項目を書いてください.読者は索引が好きです.それら は役に立ち便利です.

テキストの本体に書くように索引項目を書くのが最も簡単ですが,項目を後で書 くのを好む人もいます.どちらの場合でも,現れる段落の前に項目を書いてくだ さい.こうして,索引項目はページに跨る段落の最初のページを示します.

ここに,我々が貴重だと分かったより多くのヒントがあります.

空白行

完全な文節

完全な文節は何よりも読み易く...

エディション,日付と,バージョン

全てのマニュアルの3箇所に,エディションとバージョンの番号と日付を書いて ください.

  1. Texinfoファイルを読む人のために,最初の@ifinfoセクションに.
  2. 印刷されたマニュアルを読む人のために,@titlepageセクションに.
  3. Infoファイルを読む人のために,`Top'ノードに.

最初の@ifinfoセクションの前の,行っていることを説明するためのメ モを書く助けにもなります.

例えば,以下のようにします.

@c ===> NOTE! <==
@c Specify the edition and version numbers and date
@c in *three* places:
@c   1. First ifinfo section  2. title page  3. top node
@c To find the locations, search for !!set

@ifinfo
@c !!set edition, date, version
This is Edition 4.03, January 1992,
of the @cite{GDB Manual} for GDB Version 4.3.
...

--または,@set@valueを使用してください(see @value Example).

定義コマンド

定義コマンドは,@deffn@defun@defmacとその同 類で,単一の書式で記述を書くことを可能にします.

大文字化

スペース

@example ... @end exampleと類似のコマンド内部以外で, Texinfoファイルの書式化のためにスペースを使用しないでください.

例えば,TeXは以下を補充します.

    @kbd{C-x v}
    @kbd{M-x vc-next-action}
       現在のバッファに対応する,
       バージョンで制御されたファイルで,
       次の論理オペレーションを実行する.

そのため以下のように見えます.

この場合,テキストは,表を作成する@table@item@itemxで書式化されるべきです.

@code,@samp,@varと,---

引用外部のピリオド

句読点が引用の部分でない場合は,ピリオドとその他の句読点を引用の外 側に置いてください.この実行は,合州国の出版の慣習に反しますが,読者は 引用の内容と文節全体との区別が可能となります.

例えば,終りの引用符の外側にピリオドを文に続けて書くべきです.

Evidently, au is an abbreviation for ``author''.

auは,author.(単語に続くピリオドと一緒)の省略として提供さ れていません

新しい用語の紹介

@pxref

設計された特別な文脈以外で,@pxrefを絶対に使用しないでください. カッコの内部で,閉じ弓カッコの直後に閉じカッコを使用します.1つのフォー マッタは自動的に句読点を挿入し,もう1つはそうしません.これは,印刷され た出力とInfoファイルで出力は正しく見えますが,それはコマンドがカッコの中 で使用されるときだけだということを意味します.

シェルからの呼び出し

Emacs,GCCと,gawkのようなプログラムをシェルから呼び出せます.そ れぞれのプログラムのドキュメントは,これを述べているセクションを含むべき です.残念ながら,これらのセクションのノード名とタイトルは異なり,読者は セクションを見つけることが困難だと分かります.

そのようなセクションは,`Invoking Emacs'のように,単語`Invoking ...'で始まる文節で名付けてください.この方法で,ユーザーはセクショ ンを簡単に見つけることができます.20

ANSI Cの構文

C関数の呼び出しの慣習を記述するため@exampleを使用するとき,以下 のようにANSI C構文を使用してください.

void dld_init (char *@var{path});

そして次の議論では,再び@varで強調されている同じ引数名で引数の値 を参照してください.

以下のような,古いスタイルを避けてください.

#include <dld.h>

dld_init (path)
char *path;

また,関数がヘッダファイルで宣言されていることを示すだけのため,宣言の上 に#includeを書くことを避けるのは最善です.その方法は,関数宣言の 近くに#includeが属しているという間違った印象を与えるかもしれませ ん.ヘッダファイルが宣言を持つことを明示的に宣言する,またはそれより良い, 関数を記述しているセクションの始めで,関数グループのために使用されている ヘッダファイルに名前をつけるかのどちらかにしてください.

悪い例

ここに,避けるべき悪い書き方の例がいくつか有ります.

この例で," ... you must @dfn{check in} the new version."と言っています.それは,より良くことが運びます.

When you are done editing the file, you must perform a @dfn{check in}.

以下の例では,"... makes a unified interface such as VC mode possible."と言っています.

SCCS, RCS and other version-control systems all perform similar functions in broadly similar ways (it is this resemblance which makes a unified control mode like this possible).

そして,この例では,`it'が何を参照しているのか指定すべきです.

If you are working with other people, it assists in coordinating everyone's changes so they do not step on each other.

終りに...


Node:Sample Texinfo File, Next:, Previous:Tips, Up:Top

Texinfoファイルの見本

ここに,コメントの無い完全なTexinfoファイルの短い見本があります.最初の 章でコメント付のこのファイルを見ることができます.See A Short Sample Texinfo File.

\input texinfo   @c -*-texinfo-*-
@c %**start of header
@setfilename sample.info
@settitle Sample Document
@c %**end of header

@setchapternewpage odd

@ifinfo
This is a short example of a complete Texinfo file.

Copyright 1990 Free Software Foundation, Inc.
@end ifinfo

@titlepage
@sp 10
@comment The title is printed in a large font.
@center @titlefont{Sample Title}

@c The following two commands start the copyright page.
@page
@vskip 0pt plus 1filll
Copyright @copyright{} 1990 Free Software Foundation, Inc.
@end titlepage

@node    Top,       First Chapter,         , (dir)
@comment node-name, next,          previous, up

@menu
* First Chapter::    The first chapter is the
                     only chapter in this sample.
* Concept Index::    This index has two entries.
@end menu

@node    First Chapter, Concept Index, Top,      Top
@comment node-name,     next,          previous, up
@chapter First Chapter
@cindex Sample index entry

This is the contents of the first chapter.
@cindex Another sample index entry

Here is a numbered list.

@enumerate
@item
This is the first item.

@item
This is the second item.
@end enumerate

The @code{makeinfo} and @code{texinfo-format-buffer}
commands transform a Texinfo file such as this into
an Info file; and @TeX{} typesets it for a printed
manual.

@node    Concept Index,    ,  First Chapter, Top
@comment node-name,    next,  previous,      up
@unnumbered Concept Index

@printindex cp

@contents
@bye


Node:Sample Permissions, Next:, Previous:Sample Texinfo File, Up:Top

許可の見本

Texinfoファイルは,読者に,Texinfoファイル,Infoファイルと,印刷されたマ ニュアルのコピーと配布の権利があることを告げるセクションを含むべきです.

また,ソフトウェアに関するマニュアルを書いている場合,ソフトウエアがフリー であることを説明し,GNU General Public License (GPL),または,それへの参 照を含めるべきです.ドキュメントのソフトウェアの"配布","一般公有使用 許諾書"と,"無保証"のセクションで使用可能なテキストの例は, See Distrib. 与えられる 権利にコピーの条件を供給する短い説明の例は,See Texinfo Copying Conditions.


Node:Inserting Permissions, Next:, Previous:Sample Permissions, Up:Sample Permissions

Texinfoファイルでは,最初の@ifinfoセクションは,通常ファイルがド キュメント化しているものについて述べる行で始まります.これは処理されてい ないTexinfoファイルを読んでいる,または,アドバンスInfoコマンドg * を使用している人が,最初に見るものです.詳細は,see Advanced Info commands. (標準のInfoコマンドを使用している読者は, 普通は最初のノードから読み始め,ノードにない,この最初のセクションを飛ば します.)

@ifinfoセクションでは,文の概要は著作権の注意が続き,そしてコピー の許可の注意が続きます.コピーの許可の段落の1つは,@ignore@end ignoreコマンドで囲まれています.この段落は,印刷されたマニュ アルがコピーの許可の注意を適切に供給する場合,TexinfoファイルをTeXと 印刷で処理できることを宣言しています.この段落は,Infoファイルに適切では ないので,Infoファイルの部分にはなりません.しかしそれは,Texinfoファイ ルをTeXと結果の印刷で処理する人への許可なので,Texinfoファイルの一部 として必須です.

印刷されたマニュアルでは,Free Software Foundationのコピー許可の注意は著 作権の注意と配布情報に続き, @titlepage@end titlepage コマンドで分離された領域に配置されます.コピー許可の注意は, @ignore@end ignoreで囲まれた段落が,注意の部分に無い以 外,正確に@ifinfoセクションの注意と同じです.

Texinfoファイルのそれぞれのセクションに許可の注意の挿入を簡単にするため, それぞれのセクションに対する許可の注意の見本は,以下に完全に再現されてい ます.

許可の注意で言及された,正しいセクション名を指定する必要があるかも知れま せん.例えば,The GDB Manualで,一般公有使用許諾書を参照している セクションは,"GDB General Public License"と呼ばれていますが,以下に表 示している例では,セクションは一般に"GNU General Public License"を参照 しています.Texinfoファイルが一般公有使用許諾書のコピーをもたらさない場 合,それへの参照を削除し,残りの文を含めることを確認してください.


Node:ifinfo Permissions, Next:, Previous:Inserting Permissions, Up:Sample Permissions

ifinfoコピー許可

Texinfoの@ifinfoセクションでは,標準的なFree Software Foundation の許可の注意は次のように読みます.

This file documents ...

Copyright 1999 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 a 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 also that the sections
entitled ``Copying'' and ``GNU General Public License''
are included exactly as in the original, and 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.


Node:Titlepage Permissions, Previous:ifinfo Permissions, Up:Sample Permissions

タイトルページのコピー許可

Texinfoファイルの@titlepageセクションでは,標準的なFree Software Foundationのコピーの許可の注意は著作権と出版情報に続きます.標準的な文は 以下の通りです.

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 also that the sections
entitled ``Copying'' and ``GNU General Public License''
are included exactly as in the original, and 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.


Node:Include Files, Next:, Previous:Sample Permissions, Up:Top

インクルードファイル

TeXInfo書式化コマンドが,Texinfoファイルの@includeコマンドを 見るとき,それはコマンドで名指しされたファイルの内容を処理し,作成されて いるDVIやInfoファイルに組み入れます.インクルードファイルからの索引項目 は,出力ファイルの索引に組み入れられます.

インクルードファイルは,便利な小さい部分の収集物として,単一な大きなドキュ メントを保持させます.


Node:Using Include Files, Next:, Previous:Include Files, Up:Include Files

インクルードファイルの使用方法

他のファイルをTexinfoファイルにインクルードするため,@includeコ マンドを行の最初に書き,同じ行にインクルードするファイル名を続けてくださ い.例えば以下のようにします.

@include buffers.texi

インクルードファイルは,単に,全体をインクルードするのを期待する,または, 外部のTexinfoファイルにある,テキストの部分にすべきです。それは, Texinfoファイルの標準的な始めと終りを含むべきではありません.特に,イン クルードファイルを,\input texinfoと述べている行から始めるべきで はありません.そうする場合,その文節は出力ファイルにそのまま挿入されます. 同様に,インクルードファイルを@byeコマンドで終えるべきではありま せん.@bye以降は,全く書式化されません.

過去に,インクルードファイルの最初に@setfilename行を書くことを要 求されていましたが,もはやそうでははありません.今では,そのような行を書 くかどうかは重要ではありません.@setfilename行がインクルードファ イルに存在する場合,それは無視されます.

慣習的に,インクルードファイルは,@chapter行が続く@node 行で始めます.それぞれのインクルードファイルは1つの章です.これは,通常 のノードとメニューを作成更新する,ノードポインタとメニューをインクルード ファイルに作成するコマンドの使用を簡単にします.しかし,単純なEmacsのノー ドとメニューを作成更新するコマンドは,多数のTexnfoファイルでは働きません. このため,それらのコマンドを,インクルードファイルで始まる@node 行の`Next',`Previous'と,`Up'ポインタを補充するために使用できません.同 様に,ファイル全体のマスターメニューを作成する通常のコマンドも使用できま せん.メニューと`Next',`Previous'と,`Up'ポインタを手で挿入するか,GNU Emacs Texinfoモードのコマンド,texinfo-multiple-files-updateを使 用する必要があり,それは@includeファイルに対し設計されています.


Node:texinfo-multiple-files-update, Next:, Previous:Using Include Files, Up:Include Files

texinfo-multiple-files-update

GNU Emacs Texinfoモードは,texinfo-multiple-files-updateコマンド を供給します.このコマンドは,インクルードファイルの`Next',`Previous'と, `Up' ポインタを,外部や全体的なTexinfoファイルに対するものと同様に作成更 新し,それは外部ファイルのメインメニューを作成更新します.オプションの引 数での呼び出しに依存して,コマンドはインクルードファイルやそれら全ての最 初の@node行のポインタのみを更新します.

M-x texinfo-multiple-files-update
引数無しでの呼び出し.
C-u M-x texinfo-multiple-files-update
前置引数としてC-uで呼び出し.
C-u 8 M-x texinfo-multiple-files-update
C-u 8のような,数字の引数での呼び出し.

対話的な使用での前置引数の使用の注意:通常の前置引数C-uを伴う 場合,texinfo-multiple-files-updateコマンドはマスターメニューを挿 入します.C-u 8のような,数字の前置引数を伴う場合,コマンドは, 全てのファイルの全てのポインタとメニューを更新し,マス ターメニューを更新します.


Node:Include File Requirements, Next:, Previous:texinfo-multiple-files-update, Up:Include Files

インクルードファイルの必要条件

texinfo-multiple-files-updateコマンドの使用を計画している場合,そ の中でインクルードファイルをリストアップしている外部のTexinfoファイルは, Texinfoファイルの最初と最後の部分と,インクルードファイルをリストアップ している@includeコマンド以外,何も含めるべきではありません.それ は,索引さえ含めるべきではなく,それはインクルードファイル自身にリストアッ プすべきです.

さらに,それぞれのインクルードファイルは,正確に1つの最上位のノード(慣習 的に,@chapterまたはそれと同等のもの)を含む必要があり,このノー ドはインクルードファイルの最初のノードにする必要があります.さらに,それ ぞれのインクルードファイルの中の,それぞれのこれらの最上位レベルのノード は,ファイル構造で同じ階層レベルにする必要があります.通常,それぞれ @chapter@appendixまたは,@unnumberedにします. このように,それぞれのインクルードファイルは,1つのそして唯一の,章や同 等のレベルのノードを含みます.

外部ファイルは1つのノード,`Top'ノードのみを含みます.それは,単 一の`Top'ノードの他の,あらゆるノードを含むべきではありません. texinfo-multiple-files-updateコマンドは,それらを処理しません.


Node:Sample Include File, Next:, Previous:Include File Requirements, Up:Include Files

@includeを用いたファイルの見本

ここに,メインまたはマスターメニューを挿入する texinfo-multiple-files-updateを実行する前の,その中に @includeファイルを用いた外部のTexinfoファイルの完全な例がありま す.

\input texinfo @c -*-texinfo-*-
@setfilename  include-example.info
@settitle Include Example

@setchapternewpage odd
@titlepage
@sp 12
@center @titlefont{Include Example}
@sp 2
@center by Whom Ever

@page
@vskip 0pt plus 1filll
Copyright @copyright{} 1999 Free Software Foundation, Inc.
@end titlepage

@ifinfo
@node Top, First, , (dir)
@top Master Menu
@end ifinfo

@include foo.texinfo
@include bar.texinfo
@include concept-index.texinfo

@summarycontents
@contents

@bye

foo.texinfoのようなインクルードファイルは,以下のようになります.

@node First, Second, , Top
@chapter First Chapter

Contents of first chapter ...

完全な内容のconcept-index.texinfoは,このように簡単になります.

@node Concept Index
@unnumbered Concept Index

@printindex cp

The GNU Emacs Lisp Reference Manualの外部のTexinfoソースファイル は,elisp.texiという名前です.外部ファイルは,417項目の外部ファイ ルと,41の@includeリストを含んでいます.


Node:Include Files Evolution, Previous:Sample Include File, Up:Include Files

インクルードファイルの進化

Infoが最初に作成されたとき,それは1つの主題に多くの小さなInfoファイルを 作成することが慣習的でした.それぞれのInfoファイルは,その独自のTexinfo ファイルから書式化されました.この慣習は,情報が欲しいとき,大きなInfoファ イル全体を保つため,Emacsが大きなバッファを作る必要がないことを意味しま す.その代わり,探している特定の情報を含む小さなInfoファイルのために, Emacsはちょうど十分なメモリを確保していました.

1つのファイルから他への参照は,ノード名同様,ファイル名で参照されていま した.(See Referring to Other Info Files. また, @xref with Four and Five Arguments,を参照してください.)

インクルードファイルは主に,単一の大きな印刷されたマニュアルを,複数のよ り小さなInfoファイルから作成する方法として設計されました.印刷されたマニュ アルでは,全ての参照は同じドキュメントにあり,それでTeXは自動的に参照 ページ数を決定できました.Info書式化コマンドは,つながった索引を作成する ためのみにインクルードファイルを使用していました.それぞれの個別の Texinfoファイルは,個別のInfoに書式化する必要がありました.(それゆえ,そ れぞれ独自の@setfilename行が必要でした.)

しかし,現在大きなファイルは自動的に分けられるので,それはもはや小さいま まにする必要がありません.

最近,複数のTexinfoファイルは,The GNU Emacs Lisp Reference Manualのような大きなドキュメントのためと,複数の異なる人々がドキュメン トの異なるセクションを同時に書くプロジェクトのために,ほとんど使用されて います.

さらに,Info書式化コマンドは,必要な場合より小さく分割される,単一の大き なInfoファイルを作成するため,@includeコマンドで働くように拡張さ れています.これは,メニューや相互参照を異なるTexinfoファイルを名指せず に書くことができることを意味します.


Node:Headings, Next:, Previous:Include Files, Up:Top

ページ見出し

ほとんどの印刷されたマニュアルは,タイトルと著作権のページ以外の全てのペー ジの上側に沿っている見出しを含みます.フッタを含むマニュアルもあります. (見出しとフッタはInfoでは意味がなく,それはページが付いていません.)


Node:Headings Introduced, Next:, Previous:Headings, Up:Headings

Texinfoは,それぞれの紙の片側に印刷されるマニュアルと,紙の両面に印刷さ れるマニュアルのための,標準的なページ見出し書式を提供します.通常はこれ らの書式を使用しますが,希望があれば独自の書式を指定できます.

更に,章を新しいページで始めるか,前の章と同じページに続けるかを指定でき ます.そして,章を新しいページで始める場合,奇数番号のページから始めるよ うに指定できます.

慣習では,本は紙の両面に印刷されます.本を開いたとき,右側のページが奇数 番号で,章は右側のページから始まります--前にある左側のページは必要な場 合は空白のままです.しかし,報告書は,片面に印刷され,章は前の章が終った 直後に改ページされて始まることが多いです.短い情報的な報告書では,章は新 しいページを開始することは全くありませんが,小量の空白をテキストの前に置 いて分けられます.

@setchapternewpageコマンドは,章を新しいページで始めるかどうかと, 標準的な見出しの書式の1つを使用するかどうかを制御します.Texinfoは,独自 の見出しとフッタの書式を使用生成するために,使用可能な見出しとフッタコマ ンドがいくつかあります.

Texinfoでは,見出しとフッタは,ページの上側と下側の単一行です.複数行の 見出しとフッタは作成できません.それぞれのヘッダとフッタ行は,3つの部分 に分けられます.左側の部分,真中の部分と,右側の部分です.あらゆる部分, または行全体は,空白のままにすることもできます.ヘッダとフッタ行の左の部 分に対するテキストは,左寄せになります.真中の部分のテキストはセンタリン グされます.そして,右の部分のテキストは右寄せになります.


Node:Heading Format, Next:, Previous:Headings Introduced, Up:Headings

標準的な見出しの書式

Texinfoは,2つの標準的な見出しの書式を供給し,1つは紙のそれぞれのページ の片面に印刷されたマニュアルのためで,もう1つは紙の両面に印刷されたマニュ アルのためです.

デフォルトで,Texinfoファイルのフッタは指定されず,フッタは空白のままで す.

片面印刷の標準的な書式は,左側の部分が章の名前を含み,真中の部分が空白で, 右側の部分がページ番号となっているヘッダから成り立ちます.

片面ページは以下のようになります.

   _______________________
  |                       |
  | chapter   page number |
  |                       |
  | Start of text ...     |
  | ...                   |
  |                       |

両面印刷の標準的な書式はページ番号が偶数か奇数かに依存します.慣習では, 偶数番号のページは左,奇数番号のページは右側になります.(TeXは,左右 の余白の幅を調整します.通常,幅は正しいのですが,両面印刷のとき,ページ が正しく結びつけられているか調べた方が賢明です--時々プリンタは,奇数ペー ジの余白より大きな右側の余白を持つ偶数ページで出力を生成します.)

標準的な両面の書式では,左側(偶数番号)のページの左側の部分はページ番号を 含み,真中の部分は空白で,右側の部分は(@settitleコマンドで指定さ れた)タイトルを含みます.右側(奇数番号)のページの左側の部分は章の名前を 含み,真中の部分は空白で,右側の部分はページ番号を含みます.

両側に開いた本の2ページは,以下のようになります.

   _______________________     _______________________
  |                       |   |                       |
  | page number     title |   | chapter   page number |
  |                       |   |                       |
  | Start of text ...     |   | More  text ...        |
  | ...                   |   | ...                   |
  |                       |   |                       |

章の名前は,単語"Chapter"21,章の番号と,コロンが前置されます.これは,マニュアルの現在 の場所の記録追跡をより簡単にします.


Node:Heading Choice, Next:, Previous:Heading Format, Up:Headings

見出しの形式の指定

TeXは,@end titlepageコマンドに至るまで,標準的なTexinfoファ イルに対しページ見出しの生成を開始しません.このため,タイトルと著作権の ページは番号が付きません.@end titlepageコマンドは, @titlepageセクションの前にある@setchapternewpageコマンド で指定された標準的な書式によって,TeXにページ見出しの生成を開始させま す.

可能性は4つあります.

No @setchapternewpage command
@setchapternewpageコマンド無し
章を新しいページで開始する片面見出しの書式をTeXに指定します.これは, @setchapternewpage onと同じです.
@setchapternewpage on
章を新しいページで開始する片面見出しの書式を指定します.
@setchapternewpage off
新しい章を,前の章のページの最後と同じページで,いくらか縦方向の空白を開 けて,TeXに開始させます.また,TeXに片面ページで植字させます. (@headings doubleコマンドでヘッダの書式を優先できます. The @headings Command,を参照してくださ い.)
@setchapternewpage odd
章を新しいページで開始する両面の書式を指定します.

Texinfoは@setchapternewpage evenコマンドはありません.


Node:Custom Headings, Previous:Heading Choice, Up:Headings

独自の見出しの作成方法

Texinfoで提供される標準的な見出しを使用したり,独自のものを指定したりで きます.デフォルトで,Texinfoはフッタが無く,そのため指定した場合,主な テキストのための利用可能なページサイズがわずかに減少します.

Texinfoは見出しとフッタを指定する6つのコマンドを提供します.

Texinfoファイルの@end titlepageコマンド直後に,カスタムの見出し 指定を書いてください.texinfo-format-bufferコマンドがそれらを認識 しない可能性があるので,指定を@iftex@end iftexで囲んで ください.また,前もって定義した見出しコマンドを,独自の指定の定義をする 前に@headings off コマンドで中止する必要があります.

ここに,偶数と奇数の番号のページの両方の全てのヘッダに,章の名前を左側に, ページ番号を真中に,日付を右側に置くよう,TeXに伝える方法があります.

@iftex
@headings off
@everyheading @thischapter @| @thispage @| @today{}
@end iftex

真中の部分と左の部分,そして右の部分と真中の部分を,部分同士の間に @|を挿入して分ける必要があります.そうしない場合,指定コマンドは, 一部分のテキストの終りと次の部分の始めの位置を伝えることができません.

それぞれの部分は,テキストや@-コマンドを含むことができます.本体のペー ジにある,通常の段落にある部分のようにテキストは印刷されます.@-コマン ドはページ番号,日付,章の名前や,あらゆるものに,それ自身が置換されます.

ここに,6つの見出しとフッタのコマンドがあります.

@everyheading left @| center @| right
@everyfooting left @| center @| right
`every'コマンドは,偶数と奇数の番号のページ両方の書式を指定します.これ らのコマンドは,それぞれの紙の片面に印刷されるドキュメントや,対称なヘッ ダとフッタにしたいドキュメントのためのものです.
@evenheading left @| center @| right
@oddheading left @| center @| right
@evenfooting left @| center @| right
@oddfooting left @| center @| right
`even'と`odd'コマンドは,偶数番号のページと奇数番号のページの書式を指定 します.これらのコマンドは,本と,それぞれの紙の両面に印刷されるマニュア ルのためのものです.

章とセクションの名前とページ番号を提供するため,@this...シリー ズの@-コマンドを使用してください.

ここに@this...コマンドがあります.

@thispage
現在のページ番号を展開します.
@thischaptername
現在の章の名前を展開します.
@thischapter
現在の章の番号と名前を,書式`Chapter 1: Title'に展開します.
@thistitle
ドキュメントの名前を@settitleで指定されているように展開します.
@thisfile
@includeファイルのためだけです: 現在の@includeファイルの 名前に展開します.現在のTexinfoソースファイルが@includeファイル ではない場合,このコマンドは効果がありません.このコマンドは, @includeファイルではない場合,現在のTexinfoソースファイルの名前 を提供しません.( @includeファイルの詳細は,See Include Files.)

@today{}コマンドも使用でき,それは現在の日付を`1 Jan 1900'書式 で展開します.

その他の@-コマンドとテキストは,ページの本体に書かれているかのようにヘッ ダとフッタに印刷されます.それは,特にドラフトを書いているとき,テキスト を組み入れることに役立ちます.

@iftex
@headings off
@everyheading @emph{Draft!} @| @thispage @| @thischapter
@everyfooting @| @| Version: 0.27: @today{}
@end iftex

余りに長いタイトルへの注意: それらは他のヘッダやフッタの部分に重なり,隠 してしまう可能性があります.


Node:Catching Mistakes, Next:, Previous:Headings, Up:Top

書式化の失敗

ドキュメントの内容のミス以外に,Texinfoで犯す2種類のミスがあります: @- コマンドでミスを犯し,ノードと章の構造でミスを犯します.

Emacsは@-コマンドのミスを捕らえる2つのツールと,構造のミスを捕らえる2つ の方法があります.

@-コマンドの問題を見つけるため,問題の有る領域で,TeXや領域の書式化 コマンドを実行することができます.これらのコマンドを,書いているときにそ れぞれの領域で本当に実行できます.

ノードと章の構造の問題を見つけるため,C-c C-s (texinfo-show-structure)と関連するoccurコマンドを使用する ことができ,そして,M-x Info-validateを使用することができます.


Node:makeinfo Preferred, Next:, Previous:Catching Mistakes, Up:Catching Mistakes

makeinfoプログラムはエラーを捕らえそれらを報告する優れた仕事を行 います--texinfo-format-regiontexinfo-format-bufferより 遥かに優れています.さらに,自動的にノードポインタとメニューを作成更新す る様々な機能は,人間のエラーに対し多くの機会を取り除きます.

ポインタとメニューを作成したり挿入したりする更新コマンドを,できる限り使 用してください.そして,makeinfo(または,Texinfoモードの表現の makeinfo-regionmakeinfo-buffer)を,ファイルを書式化した り他のエラーを調べるために使用してください.これは,Texinfoで仕事をする ことに対する最善の方法です.しかし,makeinfoを使用できない,また は,問題が大変難問な場合,この付録で記述されているツールを使用したいと思 うかも知れません.


Node:Debugging with Info, Next:, Previous:makeinfo Preferred, Up:Catching Mistakes

Infoの書式化でエラーを捕らえる

Texinfoファイルの部分を書いた後,領域の書式化が正確かどうかを見るために, texinfo-format-regionmakeinfo-regionコマンドを使用できま す.

しかしほとんどの場合,とある理由でmakeinfo-regionコマンドが使えな いためにこのセクションを読んでいることでしょう.それゆえ,このセクション の残りは,texinfo-format-regionの使用を想定します.

@-コマンドでミスを犯した場合,texinfo-format-regionはエラー時ま たはその後で処理を停止し,エラーメッセージを表示します.エラーが発生した バッファを見るために,*Info Region*バッファに切替えてください.カー ソルはエラーの位置の後にあります.また,テキストはエラーが発生した(また は,より正確にはそれが検出された)後は書式化されません.

例えば偶然,@end menuの代わりに,最後に`s'が付いたコマンド @end menusでメニューを終了した場合,以下のようなエラーメッセージ を得るでしょう.

@end menus is not handled by texinfo

カーソルは,バッファ内で,エラーが発生した,またはそう遠くない後で止まり ます.バッファは以下のようになります.

---------- Buffer: *Info Region* ----------
* Menu:

* Using texinfo-show-structure::  How to use
                                  `texinfo-show-structure'
                                  to catch mistakes.
* Running Info-Validate::         How to check for
                                  unreferenced nodes.
@end menus
-!-
---------- Buffer: *Info Region* ----------

texinfo-format-regionコマンドは,ちょっと変わったエラーメッセージ を提供することもあります.例えば,書式化で相互参照の追跡で失敗したとしま す.

(@xref{Catching Mistakes, for more info.)

この場合,texinfo-format-regionは,足りない閉じカッコを検出します が,メッセージは,Unbalanced bracesではなく,Unbalanced parenthesesになります.これは,書式化コマンドが,カッコであるかのように 弓カッコの不一致を探すためです.

texinfo-format-regionはミスの検出に失敗するときもあります.例えば, 以下では,閉じカッコと閉じ弓カッコが置き換わっています.

(@xref{Catching Mistakes), for more info.}

書式化は以下を生成します.

(*Note for more info.: Catching Mistakes)

このエラーを検出する唯一の方法は,以下のように参照を実現することです.

(*Note Catching Mistakes::, for more info.)

ついでに,Infoでこのノードを読んでいて,f <RET> (Info-follow-reference)を入力した場合,以下のエラーメッセージを生 成するでしょう.

No such node: "Catching Mistakes) The only way ...

これは,Infoがエラーの例を,このノードの最初の相互参照として供給するため で,Infoのfコマンドの直後に<RET>を入力した場合,Infoは参照ノー ドに行こうと試みるでしょう.f catch <TAB> <RET>と入力した 場合,Infoは正確に書かれている例のノード名を認知し,`Catching Mistakes' ノードへ連れて行くでしょう.(これを試みる場合,l(Info-last) を入力し,`Catching Mistakes'に戻ることができます.)


Node:Debugging with TeX, Next:, Previous:Debugging with Info, Up:Catching Mistakes

TeX書式化でエラーを捕らえる

TeXでファイルを書式化しているときも,ミスを捕らえることができます.

通常,texinfo-format-bufferは,TeXより有意義なエラーメッセージ を表示するときもあるので,同じファイルでtexinfo-format-buffer(や, それより良いmakeinfo-buffer)を実行後こうしたいと思います. (See Debugging with Info, for more information.)

例えば,TexinfoファイルでTeXを実行した時の一部を以下に示します.

---------- Buffer: texinfo.texi ----------
name of the Texinfo file as an extension.  The
@samp{??} are `wildcards' that cause the shell to
substitute all the raw index files.  (@xref{sorting
indices, for more information about sorting
indices.)@refill
---------- Buffer: texinfo.texi ----------

(相互参照に閉じカッコがありません.)TeXは停止した後,以下の出力を生成 します.

---------- Buffer: *tex-shell* ----------
Runaway argument?
{sorting indices, for more information about sorting
indices.) @refill @ETC.
! Paragraph ended before @xref was complete.
<to be read again>
                   @par
l.27

?
---------- Buffer: *tex-shell* ----------

この場合,TeXは正確で理解できるエラーメッセージを生成しました.

Paragraph ended before @xref was complete.

@parは,Texinfoと関係が無い,内部TeXコマンドです.l.27 は,TeXが問題をTexinfoファイルの27行で検出したという意味です. ?は,この環境でTeXが使用するプロンプトです.

残念ながら,TeXは常に役に立つ訳ではなく,時々間違ったものを発見するた め,本当にシャーロック ホームズになる必要があります.

あらゆる場合で,このような問題に遭遇した場合,3つのことを行うことができ ます.

  1. ?プロンプトで<RET>を入力することで,実行を続け,このエラーを 無視するようTeXに伝えることができます.
  2. ?プロンプトでr <RET>を入力することで,実行を続け,最善 の方法として全てのエラーを無視するようTeXに伝えることができます.

    これは最善のことが多いです.しかし,用心してください.1つのエラーが更な るエラーメッセージのカスケードを生成し,その結果はファイルの残り全体だと 感じるかも知れません.そのようなエラーメッセージの雪崩を生成している時に TeXを止めるため,C-c(または,Emacsの内部シェルで実行している場 合はC-c C-c)を入力してください.

  3. ?プロンプトでx <RET>を入力することで,この実行を停止す るようTeXに伝えることができます.

Emacs内部でTeXを実行している場合,シェルバッファとTeXが?プ ロンプトを出している行を,切替える必要があります.

TeXは,問題があってもエラーメッセージを生成せずにファイルを書式化する ときもあります.これは通常,コマンドが終っていないが,TeXは処理を続け られる場合生じます.例えば,@end itemizeコマンドで項目分けリスト を終了するのに失敗した場合,TeXは印刷出力可能なDVIファイルを書き出し ます.TeXが与えるエラーメッセージは幾分不可思議な以下のようなコメント だけです.

(@end occurred inside a group at level 1)

しかし,DVIファイルを印刷した場合,項目分けリストに続くファイルのテキス トが,項目分けリストの最後の項目の部分であるかのように,全部字下げされて いることが分かります.エラーメッセージは,TeXが,ファイルで @end コマンドを見つかることを期待していたが,必要なところで決定 できなかったということです.

エラーを見つけにくいと悪名高いもう1つのソースは,@end groupコマ ンドが無いことです.理解できないエラーで困惑している場合,最初に @end groupコマンドが無いものを探してください.

Texinfoファイルにヘッダが欠けている場合,TeXは実行の最初で停止し,以 下のような出力を表示します.*はTeXが入力を待っていることを示し ています.

This is TeX, Version 3.14159 (Web2c 7.0)
(test.texinfo [1])
*

この場合,アスタリスクの後で\end <RET>を単純に入力してください. そして,Texinfoファイルのヘッダ行を書き,もう一度TeXコマンドを実行し てください.(バックスラッシュ\の使用に注意してください.TeXは @の代わりに\を使用します.そしてこの場合,Texinfoではなく, 直接TeXで作業しています.)


Node:Using texinfo-show-structure, Next:, Previous:Debugging with TeX, Up:Catching Mistakes

texinfo-show-structureの使用

Texinfoファイルの,ノード,章,セクションと,サブセクションの記録追跡は, 常に簡単ではありません.これは,他人が書いたTexinfoファイルを修正追加し ている場合,特に真です.

GNU EmacsのTexinfoモードでは,texinfo-show-structureコマンドは, 構造を指定する@-コマンドで始まる全ての行をリストアップします. @chapter@section@appendix等です.引数(対話的 な場合は,前置引数C-u)を用いた場合,コマンドは@node行 も表示します.texinfo-show-structureコマンドは,Texinfoモードで C-c C-sに,デフォルトでバインドされています.

行は,*Occur*と呼ばれるバッファに,階層レベルで字下げされて表示さ れます.例えば以下は,このマニュアルでのtexinfo-show-structureを 実行が生成したものの一部です.

 Lines matching "^@\\(chapter \\|sect\\|subs\\|subh\\|
 unnum\\|major\\|chapheading \\|heading \\|appendix\\)"
 in buffer texinfo.texi.
 ...
 4177:@chapter Nodes
 4198:    @heading Two Paths
 4231:    @section Node and Menu Illustration
 4337:    @section The @code{@@node} Command
 4393:        @subheading Choosing Node and Pointer Names
 4417:        @subsection How to Write an @code{@@node} Line
 4469:        @subsection @code{@@node} Line Tips
 ...

これは,texinfo.txiファイルの4337,4393と,4417行が,それぞれ @section@subheadingと,@subsectionで始まってい ることを告げています.カーソルを*Occur*ウィンドウに移動した場合, Texinfoファイルで対応する場所にジャンプするため,行の1つにカーソルを置き, C-c C-cコマンド(occur-mode-goto-occurrence)を使用することが できます.occur-mode-goto-occurrenceに関する詳細は,See Other Repeating Search.

*Occur*ウィンドウの最初の行は,texinfo-heading-patternで指 定された正規表現の記述です.この正規表現は, texinfo-show-structureが探すパターンです.詳細は,See Regexps.

texinfo-show-structureコマンドを呼び出すとき,Emacsはバッファ全体 の構造を表示します.バッファの一部のみ,例えば1つの章の構造を見たい場合, 領域をマークするため,C-x n n (narrow-to-region)コマンドを 使用します.(See Narrowing.)これは, 上記の生成で使用された例の方法です.(再びバッファ全体を見るため, C-x n w (widen)を使用してください.)

C-u C-c C-sと入力して,前置引数を用いて texinfo-show-structureを呼び出す場合,@chapter@sectionに対する@-サインコマンドで始まる行と同様に, @nodeで始まる行をリストアップします.

*Occur*ウィンドウのリストを見ることで,Texinfoファイルの構造を思 い出すことができます.そして,間違った名前のノードや飛ばしたセクションが ある場合,ミスを修正可能です.


Node:Using occur, Next:, Previous:Using texinfo-show-structure, Up:Catching Mistakes

occurの使用

texinfo-show-structureコマンドが,余りに多い情報を生成するときも あります.おそらく,Texinfoファイルの全体的な構造を思い出したいとき, texinfo-show-structureが生成した詳細なリストに圧倒されます.この 場合,occurコマンドを直接使用できます.こうするため,以下のように 入力します.

M-x occur

その後で,regexpの形式で入力を促されたとき,一致させたいパターンの 正規表現を入力してください.(See Regexps.)occurコマンドは,バッファの現在のカー ソル位置からバッファの終りまで働きます.バッファ全体でoccurを実行 したい場合,カーソルをバッファの最初に置いてください.

例えば,その中に@chapterを含む行の全てを見たい場合, @chapterを入力してください.これは章のリストを生成します.それは, 行の真中に@chapterがある文も,全てリストアップします.

単語@chapterで始まるこれらの行のみを見たい場合,occurで入 力を促されたとき,^@chapterを入力してください.単語や文節で終る 全ての行を見たい場合,例えばcatching mistakes$のように,$ で単語の終りを終えてください.これは,同じ章やセクションの部分の,それゆ え同じ`Up'ポインタを持っている全てのノードと,を見たいとき役に立つはずで す.

詳細は,See Other Repeating Search.


Node:Running Info-Validate, Previous:Using occur, Up:Catching Mistakes

悪いノード参照を見つける

あらゆる`Next',`Previous',`Up'やその他のノードポインタがノードを指し示 すことに失敗しているかどうかを調べるため,Info-validateを使用する ことができます.このコマンドは,全てのノードポインタが存在するノードを指 し示していることを調べます.Info-validateコマンドは,Texinfoファ イルではなく,Infoファイルでのみ働きます.

makeinfoプログラムは,自動的にポインタの有効の調査を行い,そのた めmakeinfoを使用している場合,Info-validateを使用する必要 はありません.makeinfoを実行できず,その代わりに texinfo-format-regiontexinfo-format-bufferを使用している 場合や,スクラッチからInfoファイルを書く場合のみ,Info-validateを 使用する必要があります.


Node:Using Info-validate, Next:, Previous:Running Info-Validate, Up:Running Info-Validate

Info-validateの実行

Info-validateを使用するため,調査したいInfoファイルに移動し,以下 を入力してください.

M-x Info-validate

Info-validateコマンドは大文字の`I'を必要とすることに注意してくだ さい.また,Info-validateを実行する前にタグ表を作成する必要がある かも知れません.See Tagifying.

ファイルが有効な場合,"File appears valid"というメッセージを受け取りま す.しかし,ノードを指し示さないポインタがある場合,*problems in info file*と呼ばれるバッファにエラーメッセージが表示されます.

例えば,Info-validateは,このマニュアルの最初のノードのみを含むテ ストファイルで実行されたとします.メッセージの1つは以下のようになります.

In node "Overview", invalid Next: Texinfo Mode

この意味は,Overviewと呼ばれるノードに,何も指し示さない`Next'ポ インタがあるということを意味します(テストファイルには1つのノードしかない ので,この場合はそうなります.).

今,我々がTexinfo Modeという名のノードをテストケースに加えますが, このノードの`Previous'を指定しないとします.そのとき我々は,以下のような エラーメッセージを得ます.

In node "Texinfo Mode", should have Previous: Overview

これは,全ての`Next'ポインタは,戻るための(`Next'を示すノードにある) `Previous'に一致すべきだからです.

Info-validateは,全てのメニュー項目と相互参照が,実際にノードを指 し示していることも調べます.

Info-validateはタグ表が必要で,分けられたファイルでは動作しません. (texinfo-format-bufferコマンドは,大きなファイルを自動的に分けま す.)大きなファイルでInfo-validateを使用するため,Infoファイルが 分けられないように,引数を用いてtexinfo-format-bufferを実行する必 要があります.そして,分けられていないファイルのためタグ表を作成する必要 があります.


Node:Unsplit, Next:, Previous:Using Info-validate, Up:Running Info-Validate

分けられていないファイルの作成

Info-validateは,タグ表を持った単一のInfoファイルのでのみ実行可能 です.コマンドは,マスターファイルが分けられたとき生成されたサブファイル で,間接的に働きません.(70,000バイトかそれくらい以上の)大きなファイルが ある場合,間接的なサブファイルを生成しないような方法で, texinfo-format-buffermakeinfo-bufferコマンドを実行する必 要があります.Infoファイルのためのタグ表も作成する必要があります.これを 行った後,Info-validateを実行し,悪い参照ノードを探すことが可能と なります.

第一段階は分けられていないInfoファイルを作成することです. texinfo-format-bufferがTexinfoファイルをより小さなInfoファイルに 分けるのを避けるため,M-x texinfo-format-bufferコマンドに前置引数 を与えてください.

C-u M-x texinfo-format-buffer

または,こうします.

C-u C-c C-e C-b

こうしたとき,Texinfoはファイルを分けず,そのタグ表を生成しません.


Node:Tagifying, Next:, Previous:Unsplit, Up:Running Info-Validate

ファイルのタグ付け

分かれていないInfoファイルを作成後,そのためのタグ表を作成する必要があり ます.タグ付けしたいInfoファイルに移動し,以下を入力してください.

M-x Info-tagify

(Info-tagifyの大文字のIに注意してください.)これは,有効化 が可能なタグ表を持つInfoファイルを作成します.

第三段階はInfoファイルを有効にすることです.

M-x Info-validate

(Info-validateの大文字のIに注意してください.)簡単にいうと, 段階は以下のようになります.

C-u M-x texinfo-format-buffer
M-x Info-tagify
M-x Info-validate

ノード構造を有効にした後,通常の方法でtexinfo-format-bufferを再実 行し,そしてそれは,タグ表を構築しファイルを自動的に分ける,または手動で タグ表と分けられたファイルを作成することができます.


Node:Splitting, Previous:Tagifying, Up:Running Info-Validate

ファイルを手動で分ける

大きなファイルを分けたり,texinfo-format-buffermakeinfo-bufferコマンドで自動的にそれを行ったりすべきです.(一般 的に,書式化コマンドの1つでこの仕事を行います.See Creating an Info File.)

分けられたファイルは,間接的なサブファイルと呼ばれています.

Infoファイルはメモリをセーブするため分けられます.より小さなファイルでは, Emacsは,情報を保つため大きなバッファを作成しません.

Infoファイルが30ノード以上ある場合,それのためにタグ表も作成すべきです. タグ表作成の詳細は,See Using Info-validate. (また,通常タグ表は,書 式化コマンドで自動的に作成されます.手動で仕事をした場合のみ,タグ表を作 成する必要があります.ほとんどの場合,Info-validateで仕事をした, 大きな分けられていないファイルでこれを行います.)

タグ付けと分割を行いたいファイルに移動し,2つのコマンドを入力してくださ い.

M-x Info-tagify
M-x Info-split

(InfoIが大文字であることに注意してください.)

Info-splitコマンドを使用するとき,バッファは,間接的なサブファイ ルを列挙する(小さな)Infoファイルに修正されます.このファイルは,訪れた元 のファイルの場所に保存されます.間接的なサブファイルは,元ファイルがあっ たのと同じディレクトリに書かれ,元ファイル名に-と数字が追加された ファイル名を持ちます.

主なファイルは,Infoファイルとして機能しますが,それはタグ表とサブファイ ルのディレクトリだけを含みます.


Node:Refilling Paragraphs, Next:, Previous:Catching Mistakes, Up:Top

段落の補充

@refillコマンドは補充し,オプションで段落の最初の行を字下げしま す.22@refillコマンドはもはや重要ではありませんが,かつ て必要だったので,我々はそれをここで記述します.多くの古いTexinfoファイ ルで見ることでしょう.

補充がない場合,長い@-構成物を含む段落は,フォーマッタが@-コマンドを削 除し,他の行より短くなるものもあるので,書式化後悪く見えます.以前は, texinfo-format-regionコマンドやtexinfo-format-bufferコマン ドは,段落を自動的に補充しませんでした.@refillコマンドを,全て の段落の終りに,これらのフォーマッタがそれを補充するように書く必要があり ました.(TeXとmakeinfoの両方が,常に段落を自動的に補充していま した.)現在は,全てのInfoフォーマッタは補充と字下げが必要なそれらの段落 を,自動的に補充し字下げします.

@refillコマンドは,全ての他の処理が終了したtexinfo-format-regiontexinfo-format-bufferにInfoファイル の段落を補充させます.このため,@*@w{ ... }を含 む段落で,補充の動作がこれら2つのコマンドに優先されるので, @refillを使用することはできません.

現在,texinfo-format-regiontexinfo-format-bufferコマンド は,自動的に@refillを,補充が必要なそれぞれの段落に加えます. @*@w{ ...}を含む段落の終りに@refill を加えないので,それらは,補充も字下げもされません.


Node:Command Syntax, Next:, Previous:Refilling Paragraphs, Up:Top

@-コマンドの構文

文字@は,特別なTexinfoコマンドを開始するために使用されます.(そ れは,プレーンTeXに\があるのと同じ意味です.)Texinfoは4つの形 式の@-コマンドがあります.

1. アルファベットでないコマンド.
これらのコマンドは,@に句読点やアルファベット以外の文字が続いたものから 成り立ちます.アルファベットでないコマンドはほとんど,常に段落内のテキス トの一部で,全く引数をとりません.2文字(@ともう一文字)は,完全にそれ自 身になります.カッコは続きません.アルファベットでないコマンドは以下のも のです.@.@:@*@SPACE@TAB@NL@@@{,と @}
2. 引数をとらないアルファベットコマンド.
これらのコマンドは,@で開始し,単語が続き,左右のカッコが続きます.これ らのコマンドは,ドキュメントに特別なシンボルを挿入します.それらは,引数 は必要ありません.例えば,@dots{} => ...@equiv{} => ==@TeX{} => `TeX'と,@bullet{} => です.
3. カッコ内に引数が必要なアルファベットコマンド.
これらのコマンドは,@で開始し,文字や単語が続き,カッコ内に引数が続きま す.例えば,コマンド@dfnは,用語の紹介や使用の定義を示します.そ れは以下のように使用されます.Texinfoでは,@@-コマンドは @dfn{mark-up}コマンドです.
4. 行全体を占める,アルファベットコマンド.
これらのコマンドは,行全体を占めます.行を@で開始し,コマンドの名前(単 語)が続きます.例えば,@center@cindexです.引数が必要 ない場合,単語は行の終りが続きます.引数がある場合,コマンド名とスペース で分けられています.カッコは使用しません.

このように,アルファベットコマンドは,異なる引数の構文を持つクラスに分類 されます.その名前の外見からコマンドが属するクラスは分かりませんが,コマ ンドの意味は分かります.コマンドがglyphを意味する場合,それはクラス2で引 数はいりません.それが,段落の部分としての他のテキストと一緒に使用される コマンドを意味する場合,コマンドはクラス3で,カッコ内に引数が続きます. それ以外の場合,それはクラス4で,その引数として,行の残りを使用します.

クラス3と4のコマンドに対して異なる構文を持つ目的は,Texinfoファイルを読 み易くし,GNU Emacs段落と補充コマンドが正確に働く助けとするためです.こ の規則に1つの例外があります.それは@refillコマンドで,それは段落 の終りで,最後のピリオドや句読点文字の直後に常に使用されます. @refillは引数をとらず,カッコは要求されません@refillは,行の最初に現われないので,Emacs 段落コマンドは決して 混乱しません.


Node:Obtaining TeX, Next:, Previous:Command Syntax, Up:Top

TeXの入手方法

TeXは自由に再配布できます.anonymous ftpや物理媒体でUnixシステムのた めのTeXを入手できます.核となる材料は,Web2c TeX配布物から構成され ます(http://tug.org/web2c).

anonymous ftpで検索する説明と,他の利用可能な配布物の情報は,以下の通り です.

ftp://tug.org/tex/unixtex.ftp
http://tug.org/unixtex.ftp

Free Software Foundationは,Texinfoマニュアルの印刷に適したソースコード CD-ROMでの核となる配布物を提供します.注文するために,以下に連絡してくだ さい.

Free Software Foundation, Inc.
59 Temple Place Suite 330
Boston, MA   02111-1307
USA
Telephone: +1-617-542-5942
Fax: (including Japan) +1-617-542-2652
Free Dial Fax (in Japan):
      0031-13-2473 (KDD)
      0066-3382-0158 (IDC)
Electronic mail: gnu@gnu.org

その他多くのTeX配布物が利用可能です.http://tug.org/を参照して ください.


Node:Command and Variable Index, Next:, Previous:Obtaining TeX, Up:Top

コマンドと変数の索引

これは,Emacs Lisp関数で分類された全ての@-コマンドと,いくつかの変数のリ ストです.リストを使いやすくするために,コマンドは@を取ってリスト アップされています.


Node:Concept Index, Previous:Command and Variable Index, Up:Top

概念の索引


Footnotes

  1. "Texinfo"の最初の音節は,"hex"ではなく, "speck"のように発音されます.この奇妙な発音は,同じではありませんが, TeXの発音から得られています.単語TeXで,Xは実際,英文字 "ex"というよりはギリシャ文字"chi"となります.TeXを,Xは名 前の`Bach'の最後の音のように発音してください.しかし,Texinfoはx を`k'のように発音してください."Texinfo"を大文字"T"とそれ以外は小文 字で綴ってください.

  2. ドキュメントには,最初の子に`Previous'ポインタが無い ものもあります.時々,最後の子が`Next'ポインタとして次の上のレベルのノー ド名を持つものもあります.

  3. TeXを持っていない場合, texi2roffプログラムを使う こともできます.TexinfoはTeXで使うように設計されているので, texi2roffはここでは述べません.texi2roffは,標準のGNU配布 物ではなく,このマニュアルで述べているすべてのTexinfoの特徴を管理したり 更新したりしていません.

  4. 単語argumentは数学での使用 法から来ていて,二人の論争には関連しません.それは,コマンドに与えた情報 を参照します.オックスフォード英語辞典によると,単語は明らか にする,証明するというラテン語から生じました.このように,`証明として提 出された証拠'と言う意味から来ていて,それは`提出された情報'と言われてい て,数学的な意味から導かれました.由来の他の筋では,単語は,`他人がした 反対の断言に,反対する方法で断言すること'と言う意味から来ていて, `argument'の意味を論争に導きました.

  5. 訳注:原文は,"housekeeping"

  6. 訳注:原文は,look more intimidating

  7. 我々は,マニュアルのバージョンを`edition'として,プ ログラムのバージョンを`version'として参照することが便利だと分かりました. そうしない場合,慣習的にドキュメントとソフトウェアの両方を同じ単語で言及 すると,お互いに混乱しやすいことが我々は分かりました.

  8. メニュー では,階層構造にかかわらずあらゆるノードへ行くことができます.異なるInfoファ イルのノードへ行くことすら可能です.しかし,GNU Emacs Texinfoモードの更新 コマンドは,従属的なノードのメニューしか作成しません.慣習で,相互参照は他 のノードへの参照のために使用します.

  9. 訳注:txi-??.texにより 変更可能です,以下の`see'や`See'も変更されます.しかし,基本的に前置に使 用されるため,日本語ではtexinfo.texも変更が必要です.

  10. 訳注:日本語では句読点はカンマやピリオドではありま せん.このマニュアルでは,全角のカンマとピリオドを使用しています.

  11. 頭文字を組み合わせて作った語

  12. C,Fortranや他の言語 に対し,類似の流儀で働くようTexinfoを拡張することは簡単です.

  13. 訳注:あいうえ お順には,現在対応していません.

  14. 脚注は主要なテキストを補完する,または詳細に述べるべきですが,読 者が主要なテキストを理解するために脚注を読む必要があるべきではありません. 脚注の徹底的な論議のため,シカゴ大学出版によって出版されたThe Chicago Manual of Styleを参照してください.

  15. これは見本の脚注です.

  16. これらのシステムで,ディ レクトリセパレータは,:の代わりに;文字を使用することに注意し てください.

  17. MS-DOS/MS-Windowsシステムでは,Infoは同様に,.inf拡張子も 試します.

  18. ディ レクトリの区切りとして;を使うことと,他の環境変数の値の使用に対し, 構文が違うことに注意してください.

  19. MS-DOS/MS-Windowsシステムは,代わりにセミコロンを使います.

  20. 訳注:日本語ではどうするべき かは知りません.

  21. 訳注:これはtxi-??.texで変更 可能です.

  22. おそらくコマンドは,@refillandindentコマンドと呼ば れるべきですが,@refillはより短く,名前は字下げが可能になる前に 選ばれました.