@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-name}
@dfn
{term}
@cite
{reference}
@acronym
{acronym}
@url
{uniform-resource-locator}
@email
{email-address[, displayed-text]}
--- The Detailed Node Listing ---
Texinfoの概要
Texinfoモードの使用
ノードとメニューの更新
Texinfoファイルの開始
Texinfoファイルのヘッダ
タイトルと著作権のページ
@titlefont
, @center
,
and @sp
commands.
@title
, @subtitle
,
and @author
commands.
`Top'ノードとマスターメニュー
Texinfoファイルの終り
章の構造
@top
command, part of the `Top' node.
ノード
@node
コマンド
@node
line.
@top
command.
メニュー
相互参照
@xref
@xref
with one argument.
@xref
with two arguments.
@xref
with three arguments.
@xref
with four and five arguments.
単語と文節のマーキング
定義,コマンド等の表示
テキストの強調
引用と例
@smallbook
.
リストと表
2行の表の作成
複数行の作成
索引
索引の統合
@code
font for the merged-from index.
特別な挿入
@
.
@とカッコの挿入
@
.
{
and }
.
スペースの挿入
省略,ドットと,黒点の挿入
TeXと著作権シンボルの挿入
@copyright
{}.
例のためのglyph
glyphの概要
脚注
改行改ページの作成と阻止
コマンドの定義
定義コマンド
表示されるテキストの条件
@set
,@clear
と,@value
国際化
新しいTexinfoコマンドの定義
ハードコピーの書式化と印刷
Infoファイルの作成とインストール
Infoファイルの作成
makeinfo
provides better error checking.
makeinfo
from a shell.
makeinfo
from Emacs.
makeinfo
.
Infoファイルのインストール
install-info
options.
許可の見本
ifinfo
copying permissions.
インクルードファイル
@include
command.
texinfo-multiple-files-update
expects.
@include
command
has changed over time.
ページ見出し
書式化の失敗
makeinfo
finds errors.
texinfo-show-structure
.
悪いノード参照を見つける
Info-validate
.
ドキュメントはSexに似ていて,いいときはとってもいいし,ダメなときは何も しないのと一緒だね.--Dick Brandon
GNU Emacsの一部を含むTexinfoに関連して配布されるプログラムとは,他の別々
のプログラム(makeinfo
,info
,texindex
と,
texinfo.tex
を含む)を現在は追加しています.これらのプログラムは
フリーです.これは,誰でも自由に使え,自由を基本として,自由に再配
布できるということを意味します.Texinfo関連のプログラムは,パブリックド
メインではありません.著作権があり配布に関して制限がありますが,これらの
制限は,良い協力的な市民が望むものを全て認めるよう設計されています.許可
されないことは,あなたから得たこれらのプログラムのあらゆるバージョンを,
他の人が共有することの妨害を試みることです.
明らかに我々は,Texinfoに関連したプログラムのコピーを与える権利をあなた が持っていることを確かめたいと思い,それらの権利とは,あなたがソースコー ドを受け取るか欲しい場合得ることができることと,これらのプログラムを変更 したり新しいフリーのプログラムにその一部を使ったりできることと,これらの ことを知っているということです.
皆がそのような権利を持っていることを確認するため,我々は,あなたが他の誰 かから権利を奪うことを禁止する必要があります.例えば,あなたがTexinfoに 関連するプログラムを配布する場合,あなたは,あなたが持つ全ての権利を与え る必要があります.そして,ソースコードを受け取る,または得られることを確 かめる必要があります.そして,権利について教える必要があります.
また,我々自身を守るため,我々は,Texinfoに関連するプログラムに対し,保 証が無いことを全ての人が理解することを確実にする必要があります.プログラ ムが誰かに編集されて渡された場合,我々は,受け取ったものが我々が配布した ものではないので,他人が招いたあらゆる問題が,我々の判断の影響を受けてい ないことを,受け取り人が知ることを望みます.
Texinfoに関連して配布されている現在のプログラムに対するライセンスの正確 な状態は,一緒に配布されるGeneral Public Licensesで見つかります.
Texinfo1は,オンラインの情報と印刷物の両方を作成するための, 単一ファイルを用いたドキュメントシステムです.これは,1つをオンライン情 報,もう1つを印刷物,といった異なる2つのドキュメントを書く代わりに,1つ のドキュメントを書くだけで良いことを意味します.それゆえ,ワークが修正さ れたとき,1つのドキュメントだけを修正する必要があります.
我々は,Texinfoシステムに対するプログラムとドキュメントの両方のバグの報 告と提案を歓迎します.それらを電子メールで,bug-texinfo@gnu.org に送ってください.Texinfoの最新バージョンは, ftp://ftp.gnu.org/gnu/texinfo/と世界中のミラーサイトで入手できま す.
管理者が問題を再現するため,バグの報告に十分な情報を含めてください.一般 的に言って以下を意味します.
configure
に与えた普通ではないオプション.
必要かどうか疑わしい場合はそれを含めてください.重要なものを除くより多く を含める方が良いです.
パッチは最も歓迎しますが,できればdiff -c
(see Top)で作り,
ChangeLog
の項目(see Change Log)を含めてください.
電子メールで送る場合,できれば何とかして,メッセージを符号化したり分けた りしないでください.たとえ大きくても一つのプレーンテキストの方が多くの小 さいものより簡単に扱えます.GNU sharは,電子メールで複数のバイナリファイルをまとめる便利な方法です.
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で利用可能です.
Infoファイルは,Infoドキュメントを読むプログラムが処理できるように,書式
化されたTexinfoファイルです.(makeinfo
と
texinfo-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に続きません.
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, を参照してください.
Texinfoファイルでは,TeXに印刷されるマニュアルの植字法を伝えたり,
makeinfo
とtexinfo-format-buffer
にInfoファイルの作り方を伝
えるコマンドは,@
が前につきます.それらは@-コマンドと呼ば
れています.例えば,@node
はコードを示すコマンドで,
@chapter
は章の最初を示すコマンドです.
注意してください:全ての@-コマンドは,@TeX{}
コマンド
以外,全体を小文字で書く必要があります.
Texinfoの@-コマンドは,厳密に制限された構成のセットです.厳密な制限で, Texinfoファイルを,TeXとInfoファイルに変換するコードの両方が理解する ことを可能とします.Infoファイルを英数字を表示する端末で表示することがで きます.同様に,TeXで生成した出力を様々なプリンタで印刷できます.
することや取る引数に依存して,4それ自身の行や,文の一部として,@- コマンドを書く必要があります.
@noindent
のようなコマンドを,行の最初に,行の唯一のテキストとし
て書いてください.(@noindent
は,次の改行の最初で段落の始まりとし
ての字下げを妨げます.)
@chapter
のようなコマンドをコマンドの引数が続く行の最初に,この場
合は行の残りが章のタイトルになるように書いてください.
@dots{}
のようなコマンドを,通常は文中ですが,好きなところに書
いてください.(@dots{}
は,ドット...を作ります)
@code{sample-code}
のようなコマンドを,好きなところに(通
常は文中ですが),引数と一緒に,この例ではカッコの中にsample-codeの
ように書いてください.(@code
はコードとしてテキストに印を付けます.)
@example
のようなコマンドを,単独行に書いてください.本文はそれ以
降の行に書いてください.そして,併せて@end
コマンドを,この場合本
文の後に,単独行に書いてください.(@example
...@end
example
は字下げし,例として本体のテキストを植字します.)このような環境
コマンドの字下げは通常問題ありませんが,複雑で定義しにくい環境での余分な
スペースは出力に余分なスペースを生成するので注意してください.
一般的な規則として,他のテキストの間に混ぜる場合,コマンドにはカッコが必
要です.しかし行の始まり場合は不要です.@:
のようなアルファベット
でないコマンドは,規則に対し例外でカッコを必要としません.
Texinfoの経験を積むにつれ,違うコマンドに書き方をすぐに覚えられます.コ マンドの書き方の異なる方法で,全てのコマンドが同じ構文に正確に従うことに 比べ,より簡単にTexinfoファイルを書いたり読んだりできます.(@-コマンド 構文の詳細は,@-Command Syntax,を参照してくださ い.)
このセクションは,全てのTexinfoドキュメントで使われる,一般的な慣習を述 べます.
@
,{
と,}
を除き印刷可能な全てのASCII文字は,
Texinfoファイルに現すことが可能で,それ自身を意味します.@
はコマ
ンドを導入するエスケープ文字です.{
と}
は,特定のコマンド
の引数を囲むためのみに使われます.これらの特別な文字をドキュメントに置く
ため,@
文字を,@@
,@{
と,@}
のように,
その前に置きます.
---
を,--のようなダッシュのために使ってください.
TeXで,1つまたは2つのハイフンは,通常の植字のダッシュより小さいダッシュ
を印刷します.Infoは画面表示で,3つのダッシュを2つにします.
@noindent
を置いてください.
@iftex
と@end iftex
コマンドでTexinfoファイルの領域を
区切る場合,その領域は印刷されたコピーのみに現れます.その領域で,Infoで
は使えないプレーンTeXから借りた特定のコマンドを使うことができます.さ
らに,@ifinfo
と@end ifinfo
で領域を区切る場合,その領域は
Infoファイルのみに現れます.その領域でTeXで使えないInfoコマンドを使う
ことができます.@ifhtml ... @end ifhtml
,@ifnothtml
... @end ifnothtml
,@ifnotinfo ... @end ifnotinfo
,
@ifnottex ... @end ifnottex
も同様です.See Conditionals.
注意:タブをTexinfoファイルで使わないでください!TeXは,様々な 幅のフォントを使い,それは全ての環境で働くように,タブを前定義できないこ とを意味します.従って,TeXはタブを単一のスペースとして扱い,タブのよ うに見えません.さらにmakeinfo
はタブに対し,特別なことをしないの で,入力ファイルのタブ文字は,出力で異なるように現れるかもしれません.この問題を避けるためTexinfoモードは,<TAB>キーを押したとき,GNU Emacsに多数のスペースを挿入させます.
同様に,タブを一つの領域の複数のスペースに変換するため,Emacsで
untabify
を実行することもできます.
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ソースファイルに適応する
ため,著作権の部分を囲むために使われます.
慣習によって,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行になります.
一般に,Texinfoファイルは最初と最後の最小限以上から成り立ち,通常6つの部 分から成り立ちます.
@ifinfo
と@end ifinfo
コマンドで囲まれ
ています.
@titlepage
と
@end titlepage
コマンドで囲まれています.タイトルと著作権ページは,
印刷されたマニュアルのみで現れます.
@bye
コマンドの行から成り立っています.
ここに,完全ですが非常に短い,6つの部分があるTexinfoファイルがあります.
ファイルの最初の3つの部分は,\input texinfo
から@end
titlepage
までで,他より恐ろしく(?)6見えます.材料のほとんどが標準的な常套句です.マニュアルを
書くとき,単純にこの部分に独自のマニュアルの名前をいれてください.
(See Beginning a File.)
以下で,サンプルテキストは字下げされています.そのコメントはそう なっていません.コメントのない完全なファイルは,Sample Texinfo File,で見れます.
ヘッダはInfoファイルにも印刷された出力物にも現れません.それは様々な変数 を設定し,それにはInfoファイルの名前とヘッダで使っているタイトルが含まれ ます.
\input texinfo @c -*-texinfo-*- @c %**start of header @setfilename sample.info @settitle Sample Document @setchapternewpage odd @c %**end of header
要約の記述と著作権の部分は,印刷されたドキュメントには現れません.
@ifinfo これは,完全なTexinfoファイルの短いサンプルです. Copyright @copyright{} 1990 Free Software Foundation, Inc. @end ifinfo
タイトルページの部分は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
`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
本体の部分はドキュメントの全ての部分を含みますが,索引と目次は含みません. この例は,列挙されたリストからなるノードと章を説明します.
@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{}は,それを印刷されたマ ニュアルに植字します.
終りの部分は,それ自身が番号付けされていない章とノードの索引を生成するコ
マンド,(通常)目次を生成するコマンドと,ドキュメントの終りを示す
@bye
コマンドから成り立ちます.
@node Concept Index, , First Chapter, Top @unnumbered Concept Index @printindex cp @contents @bye
ここに,サンプルの最初の章の内容のようなものがあります.
これは,最初の章の内容です.これは,番号付のリストです.
- これは,最初の項目です.
- これは,2番目の項目です.
makeinfo
とtexinfo-format-buffer
コマンドは,このような TexinfoファイルをInfoファイルに変換し,TeXは,それを印刷されたマニュ アルに植字します.
Richard M. StallmanがTexinfoフォーマットを発明し,最初のプロセッサを書
き,このマニュアルのEdition 1.0を作りました.Robert J. Chassellは
このマニュアルにかなりの修正と拡張をし,Edition 1.1を始めました.Brian
Foxは,バージョン3.8まで,スタンドアローンのTexinfo配布物に責任があり,
makeinfo
とinfo
を書きました.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を組合 せ,オンラインと印刷されたハードコピーの両方で読めるようにしたテキストの ためのマークアップ言語となりました.
Texinfoファイルは,どんなテキストエディタを選んでも編集できます.Texinfo ファイルは,他のASCIIファイルと差がありません.しかし,GNU Emacsは, Texinfoモードと呼ばれる特別なモードがあり,仕事が楽になるようEmacsコマン ドとツールを供給します.
この章は,GNU EmacsのTexinfoモードの特徴について述べ,Texinfo書式化言語 の特徴は述べません.このマニュアルを始めからまっすぐ読んでいる場合,この 章は軽く流し,詳細にTexinfoフォーマット言語を述べている章を読み終えた後 戻りたくなるかもしれません.
Texinfoモードは,Texinfoファイルで働く特別な特徴を供給します.以下のよう にできます.
@node
行の自動生成.
恐らく,最も役に立つ特徴の2つは,良く使う@-コマンドの挿入とノードポイン タとメニューの作成です.
ほとんどの場合,通常のテキストモードのコマンドは,Texinfoモードでもテキ
ストモード同様に働きます.Texinfoモードは,新しい編集コマンドとツールを,
GNU Emacsの一般的な優れた編集能力に追加されます.主な違いは,中身に関係
します.Texinfoモードでは,段落分離の変数と構文表は,単独行のTexinfoコマ
ンドが不注意で段落に含まれないように再定義されています.このように,
M-q (fill-paragraph
)コマンドは段落を再定義しますが,隣接し
ている索引コマンドを段落内に混ぜません.
さらに,Texinfoモードはpage-delimiter
に
texinfo-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モードをカスタマイズしたり拡張した りできます.特にキーバインドは非常に簡単に変更できます.ここではデフォル トと標準的なキーバインドを述べます.
Texinfoモードは,良く使う様々な@-コマンドをバッファに挿入するコマンドを 供給します.これらのコマンドでキーストロークを減らすことができます.
挿入コマンドは,C-cを2度の後,@-コマンドの最初の文字を入力し呼び 出します.
@code{}
を挿入し,カッコの間にカーソルを置きます.
@dfn{}
を挿入し,カッコの間にカーソルを置きます.
@end
を挿入し,example
やtable
といった,以下に続く正し
い単語を推測します.(このコマンドはネストされたリストを正確に処理しません
が,すぐ前のリストに適切な単語を挿入します.)
@item
を挿入し,次の行の始めにカーソルを置きます.
@kbd{}
を挿入し,カッコの間にカーソルを置きます.
@node
と,`Next',`Previous'と,`Up'ノードに対し,連続したリストの
コメント行を挿入します.@node
の後にポイントは置かれます.
@noindent
を挿入し,次の行の最初にカーソルを置きます.
@samp{}
を挿入し,カッコの間にカーソルを置きます.
@table
とその後にSPCを挿入し,<SPC>の後にカーソルを置きま
す.
@var{}
を挿入し,カッコの間にカーソルを置きます.
@example
を挿入し,次の行の最初にカーソルを置きます.
{}
を挿入し,カッコの間にカーソルを挿入します.
存在する単語の周りに,@code{...}
のようなコマン
ドを置くため,単語の前にカーソルを置き,C-u 1 C-c C-c cと入力して
ください.これで,簡単に既存のプレーンテキストを編集できます.プレフィク
ス引数の値は,1単語の場合は1
,2単語の場合は2
等のように,カッ
コの間に含める,それ以降の単語がいくつあるかをEmacsに伝えます.負の引数
は,前の単語を囲むために使ってください.プレフィクス引数を指定しない場合,
Emacsは,@-コマンド文字列を挿入し,カーソルをカッコの間に置きます.この
特徴は,@kbd
と@var
のような,一つの単語や一行内の単語を操
作する@-コマンドに対してのみ働きます.
この挿入コマンドのセットは,GNU Emacs ManualとGDB 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を入力してください.コマンドはノード名に付属
するタイトルを探しコピーし,タイトルを記述として挿入します.それは編集で
きるように,挿入されたテキストの始めにポイントを置きます.メニュー項目行
に記述が含まれる場合は,この機能はタイトルを挿入しません.
このコマンドは,記述を書くためだけで役立ちます.それは仕事を全部しません. タイトルはノード名と同じ単語を使いやすいのですが,役に立つ記述は異なる単 語を使うので,挿入されたテキストを編集する必要があります.
C-c C-sコマンド(texinfo-show-structure
)を使って,Texinfoファ
イルのセクションの構造を見ることができます.このコマンドは,
@chapter
,@section
のような,@-コマンドで始まる行をリス
トアップし,Texinfoファイルのセクションの構造を見せます.それは,結果と
して目次を構成します.これらの行は,*Occur*
と呼ばれる別のバッファ
に表示されます.そのバッファでTexinfoファイルの関連する場所に移動するた
め,行の1つにカーソルを置き,C-c C-cコマンド
(occur-mode-goto-occurrence
)を使うことができます.
@chapter
,@section
と,そのような行を表示
します.
*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.
Texinfoモードは,自動的にメニューとノードポインタを作成し更新するコマン
ドを供給します.コマンドは"更新"コマンドと呼ばれ,その理由は,作業後に
Texinfoファイルを更新するため最も良く使われるためです.しかし,`Next',
`Previous'と,`Up'ポインタを,何も持たない@node
行に挿入したり,
何も持たないファイルでメニューを作成したりするために使うことができます.
更新コマンドを使わない場合,メニューとノードポインタを手で書く必要があり, それは退屈な仕事です.
以下のために,更新コマンドを使うことができます.
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-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 ファイルに書くように,設計されています.
以下のコマンドです.
@node
行をポイントの前)に挿入します.@node
行に,`Next',
`Previous'や,`Up'ポインタがある場合,古いポインタは削除され新しいものが
挿入されます.引数(対話的な場合,C-uプレフィクス引数)を使うと,こ
のコマンドは,領域の全ての@node
行を更新します(それは,ポイントと
マークの間のテキストです).
texinfo-make-menu
が既存のメニューを更新する場合は,メニューの記述
は常に新しいメニューに挿入されます.これは,既存のメニューから,同じノー
ド名を持つ新しいメニュー項目に記述をコピーすることで行います.ノードメ
ニューが異なる場合,記述は新しいメニューにコピーされません.
マスターメニューがある場合,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.)
更新コマンドを使うため,章,セクション,サブセクションとそれに類するもの を使って,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'ノードがある場合,それは,top
やTop
と呼ばれ,
ファイルの最初のノードにする必要があります.
メニュー更新コマンドは,章のセクションメニュー,セクションのサブセクショ ンメニュー等を作ります.これは,章のメニューが欲しい場合,`Top'ノードが 必要だということを意味します.
ところで,makeinfo
コマンドは,`Next',`Previous'と,`Up'ポインタ
が無い階層的に組織化されたTexinfoファイルに対し,Infoファイルを作ります.
このように,Texinfoファイルがmakeinfo
で書式化されるのを確かめるこ
とができる場合,ノード更新コマンドは不要です.(makeinfo
の詳細は,
See Creating an Info File.)しかし,makeinfo
と
texinfo-format-...
コマンドでは,どちらもファイルにメニューを
挿入する必要があります.
5つの主な更新コマンドに加え,Texinfoモードには余り使われない更新コマンド もあります.
@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)は,タイトルをメニュー項目に記述とし
て挿入する,異なる動作です.しかし,どちらの場合でも挿入されたテキストを
編集する必要があります.
texinfo-multiple-files-update
コマンドは,
@include
ファイルの付録で述べられています.
texinfo-indent-menu-description
コマンドは,領域の全てのメニューの記述をを字下げします.しかし,このコマ
ンドは,複数行の記述行の2番目と次に続く行を字下げしません.
texinfo-sequential-node-update
コマンドは領域の全てのノードを更新
します.
Texinfoモードは,InfoのためTexinfoファイルの一部または全体を書式化するコ マンドも供給します.ドキュメントを書いているとき,ファイルの一部だけ,す なわち領域を書式化したいことが良くあります.
texinfo-format-region
やmakeinfo-region
コマンドを使って,領
域の書式化ができます.
texinfo-format-buffer
やmakeinfo-buffer
コマンドを使って,バッ
ファ全体の書式化ができます.
例えば,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.
Texinfoファイルの植字と印刷は,最初に印刷のための(DVIと呼ばれる)ファイル
を作り,ファイルを印刷するという,複数のステップによる処理になります.オ
プションで索引を作ることもできます.こうするため,最初にtex
植字コ
マンドを実行した後,texindex
コマンドを実行する必要があります.そ
して,もう一度tex
コマンドを実行する必要があります.また別の方法と
して,必要なら索引を自動的に作成する,texi2dvi
コマンドを実行しま
す(see Format with texi2dvi).
ドキュメントを書いているとき,見え方を見るため,ファイルの一部だけを植字
し印刷したいときが良くあります.texinfo-tex-region
と,この目的に
関係するコマンドを使うことができます.texinfo-tex-buffer
コマンド
は,バッファ全体の書式化に使ってください.
texi2dvi
を実行します.バッファでTeXの実行に追加し,
このコマンドは,必要な場合,自動的に索引を作成更新します.
texinfo-tex-region
で書式化されたTexinfoファイルの索引をソートする
ため,texindex
を実行します.texinfo-tex-region
コマンドは,
自動的にtexindex
を実行しません.それは,tex
植字コマンドを
実行するだけです.texindex
コマンドで生の索引ファイルをソートした
後,texinfo-tex-region
コマンドを2回実行する必要があります.(通常,
領域を書式化したときは,索引を書式化せず,バッファを書式化したときのみ行
います.現在はtexi2dvi
コマンドがあるので,このコマンドはほとんど,
あるいは全く必要ありません.)
texinfo-tex-buffer
やtexinfo-tex-region
で書式化さ
れたファイル(またはファイルの一部)を印刷します.
texinfo-tex-region
やtexinfo-tex-buffer
が働くように,ファイ
ルは,\input texinfo
行で始める必要があり,
@settitle
行を含める必要があります.ファイルは,@bye
行で
終る必要があります.(texinfo-tex-region
を使うとき,
@settitle
行を,start-of-headerとend-of-header行で囲む必要があり
ます.)
tex-show-print-queue
のような,他のTeXに関連するコマンドの記述
は,See Hardcopy.
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を使うと, 最初に全てのノードを作成更新し そして全てのメニューを作成更新します.
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-lmakeinfo
出力バッファの更新. C-c C-m C-kmakeinfo
書式化の停止.
TeXの植字と印刷コマンドは,C-c C-tと入力してから,もう1つ制御コ
マンドを入力して呼び出します.texinfo-tex-region
のためのC-r,
texinfo-tex-buffer
のためのC-b,等などです.
C-c C-t C-r TeXを領域で実行. C-c C-t C-btexi2dvi
をバッファで実行. C-c C-t C-itexindex
の実行. 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
厳密な順序でノードポインタの挿入.
情報の特定の部分は,Texinfoファイルの最初に供給する必要があり,それは, ファイル名やドキュメントタイトルのようなものです.
通常,Texinfoの始まりは,4つの部分があります.
@ifinfo
と@end ifinfo
コマンドで囲まれています.
@titlepage
と@end titlepage
コマンドで囲まれていま
す.タイトルと著作権ページは印刷されたマニュアルのみで現れます.
追加で,プログラムのコピー条件と保証の放棄を含むこともできます.コピーの セクションは,マニュアルの「はじめに」の部分や最初の章が続きます.
Texinfoドキュメントの著作権の注意と著作権の許可は(プログラムのコピーの許 可に比べ),Infoファイルや印刷されたマニュアルでしか現れない部分にあるの で,この情報は2度与える必要があります.
以下のサンプルは,必要なものを現しています.
\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
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
TeXに入力する最上位となるすべてのTexinfoファイルは,以下の行で始める 必要があります.
\input texinfo @c -*-texinfo-*-
この行は,2つの機能を提供します.
\input texinfo
コマンドは,
Texinfoファイルを処理するため必要なマクロを,TeXにロードするよう伝え
ます.これらは,texinfo.tex
と呼ばれるファイルにあり,通常,
/usr/lib/tex/macros
ディレクトリにあります.TeXはバックスラッシュ
\
をコマンドの始めの印として使い,ちょうどTexinfoが使う@
の
ようなものです.texinfo.tex
ファイルは,\
を@
に切替
えます.切替え前に,TeXは\
を要求し,それがファイルの最初に現す
理由です.
-*-texinfo-*-
モード指定は,
EmacsにTexinfoモードを使うよう伝えます.
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行だと思
われないことを保証します.
@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-10
,gcc.i12
等になります.
Info書式化コマンドは,@setfilename
行の前に書かれている全てのものを
無視し,それは,ファイルの最初の行(\input
行)を出力に表示しません.
@setfilename
行は,TeXでマニュアルを植字するとき出力を作成しませ
んが,それにも関わらず不可欠です.それは,索引,相互参照と,その他の
Texinfoファイルが使う追加ファイルを開き,システムにtexinfo.cnf
ファ
イルがあれば,それも読み込みます(see Preparing for TeX).
@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.
@setchapternewpage
公式に製本された本で,テキストは通常,紙の両面に印刷され,章は右側のページ から始まり,右のページは偶数番号です.しかし,短いレポートでテキストが紙の 片面で印刷されることも良くあります.また短いレポートで,章で改ページしない ときもありますが,小量の縦方向の空白の後,前の章の終りと同じページで印刷さ れます.
@setchapternewpage
コマンドを,TeXが章を開始する方法と,紙の片面
や両面に印刷する(1面や2面印刷の)ためのヘッダの書式化の方法を指定する,様々
な引数で使用できます.
@setchapternewpage
コマンドを,行の最初に引数を続けて書いてください.
例えば,それぞれの章を新しい偶数ページから始めるため,以下のように書きます.
@setchapternewpage odd
@setchapternewpage
コマンドで,3つの選択肢の1つを指定できます.
@setchapternewpage off
@headings double
コマンドで,ヘッダの書式化を優先できま
す.The @headings
Command,を参照してく
ださい.)
@setchapternewpage on
この選択肢はデフォルトです.
@setchapternewpage odd
Texinfoには,@setchapternewpage even
コマンドはありません.
@setchapternewpage
コマンドのヘッダに対する効果を,
@headings
コマンドで取り消したり変更したりできます.
See The @headings
Command.
マニュアルや本の最初でページは番号付けされません--例えば,本のタイトルと 著作権のページは番号付けされていません.慣習で,目次のページはローマ数字で 番号付けされ,ドキュメントの残りの部分に続けません.
Infoファイルはページが無いので,@setchapternewpage
はそれに対し効果
はありません.
要求される出力物がドキュメントの本質ではないため,
@setchapternewpage
コマンドをマニュアルのソースに入れるよう,全く要
求されません.代わりに,デフォルトオプション(空白ページがない,全てのペー
ジで同じヘッダ)が不要な場合,texi2dvi
への--texinfo
オプ
ションを,お望みの出力指定に利用してください.
Texinfoプロセッサは,それぞれの段落の最初の行の始めに空白を挿入し,それに
より段落を字下げします.@paragraphindent
コマンドを,この字下げの指
定に使うことができます.行の最初に,@paragraphindent
コマンドを
asis
や数字を続けて書いてください.
@paragraphindent indent
字下げは,indentの値に従います.
asis
indentのデフォルト値はasis
です.@paragraphindent
は,
HTML出力では無視されます.
@paragraphindent
コマンドは,Texinfoファイルの最初に,
end-of-header行の前かすぐ後に書いてください.(start-of-headerと
end-of-header行の間に書いた場合,領域書式化コマンドは,指定されたように段
落を字下げします.)
texinfo-format-buffer
とtexinfo-format-region
の特別なところは,
@w
や@*
コマンドを含む段落を字下げしない(または補充しない)こ
とです.詳細は,See Refilling Paragraphs.
@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
indentのデフォルト値は5です.@exampleindent
はHTML出力で無
視されます.
@exampleindent
コマンドは,Texinfoファイルの最初に,end-of-header行
の前かすぐ後に書いてください.(start-of-headerとend-of-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は"小さな"本の書式で領域を植字します.
タイトルページと著作権ページは,マニュアルの印刷されたコピーにのみ現れます. それゆえ,同じ情報をInfoファイルにのみ現れるセクションに挿入する必要があり ます.このセクションは,通常,Infoファイルの内容の短い記述,著作権の注意と, 著作権の許可を含みます.
著作権の注意は読むべきです.
Copyright year copyright-owner
そして,それは単独にします.
著作権の許可のための標準テキストは,このマニュアルの付録に含まれています.
完全なテキストは,ifinfo
Copying Permissions,を参照してください.
許可のテキストは,Infoファイルの最初のノードの前に現れます.これは, アドバンスドInfoコマンドg *を使うとき以外,Infoを使うファイルを読む とき,読者がこのテキストを読まないことを意味します.
マニュアルの名前と著作者は,通常はタイトルページに印刷されます.著作権情報 も同様に,タイトルページに印刷されることもあります.ほとんどの場合,著作権 情報は,タイトルページの裏に印刷されます.
タイトルと著作権ページは印刷されたマニュアルでは現れますが,Infoファイルに は現れません.このため,Infoファイルで使えない,分かりにくいTeX植字コマ ンドを,僅かですが使うことができます.さらに,Texinfoファイルの始めのこの 部分は,印刷されたマニュアルに現れる著作権の許可のテキストを含みます.
プレーンテキスト出力のため,タイトルページのような情報を含めたい場合もあり
ます.単純に,@ifinfo
と@end ifinfo
の間に,そのような導入材
料を置いてください.makeinfo
は,これをプレーンテキスト出力に含め
ます.Infoリーダーでは表示されません.
著作権許可の標準テキストは,See Titlepage Copying Permissions.
@titlefont
, @center
,
and @sp
commands.
@title
, @subtitle
,
and @author
commands.
@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
コマン
ドも供給しています.引数は,ページにそれだけを植字し,次は空白のページにな
ります.
@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インチのマニュアルに適しています.
@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,で述べられています.)
国際的な条約で,本の著作権の注意は,タイトルページかタイトルページの裏にす るべきです.著作権の注意は,年と,それに続いて,著作権を所有する組織か人の 名前を含めるべきです.
著作権の注意がタイトルページの裏にあるとき,そのページは慣習的に,番号付け
されません.それゆえ,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.
単独行の@end titlepage
コマンドは,タイトルと著作権のページの終りを
マークするだけでなく,TeXにページ見出しとページ番号の生成を開始させます.
他で述べた繰り返しですが,Texinfoは,2つの標準ページ見出しの書式があり,
1つは,紙のそれぞれの片側に印刷されたドキュメント(片面印刷)のためで,もう
1つは,それぞれの用紙の両側に印刷されたドキュメント(両面印刷)のためです.
(See @setchapternewpage
.)これらの書式化を,
異なる方法で指定できます.
@setchapternewpage
コマンドをタイトルページコマンドの
前に書くもので,@end titlepage
は,要求された方法でページ見出しの生
成を開始します.(See @setchapternewpage
.)
@headings
コマンドを使うことができます.
(@headings
コマンドを,@end titlepage
コマンドの直後に書いて
ください.詳細は,See The @headings
Command.)
ほとんどのドキュメントは標準的な片面または両面の書式で書式化され,両面印刷
のため@setchapternewpage odd
を使い,片面印刷のため
@setchapternewpage
コマンドを使いません.
@headings
コマンド@headings
コマンドは,滅多に使われません.それは,それぞれのページ
に印刷するページ見出しとフッタの種類を指定します.通常,これは,
@setchapternewpage
コマンドで制御されます.
@setchapternewpage
コマンドが望まないことをしたり,独自の定義の前に
前もって定義されているページ見出しを止める場合のみ,@headings
コマ
ンドが必要です.@headings
コマンドを,@end titlepage
コマン
ドの直後に書いてください.
以下のように,@headings
を使うことができます.
@headings off
@headings single
@headings double
@headings on
@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.
`Top'ノードは,Infoファイルの入口のノードです.
`Top'ノードは,Infoファイルの短い記述と,Infoファイル全体の大規模なマスター メニューを含むべきです.これは,読者がInfoファイルが何について書いてあるの かを理解する助けとなります.また,Infoファイルが適応するプログラムのバージョ ンナンバーを書くべきです.または,少なくともエディションナンバーを書くべき です.
`Top'ノードの内容は,Infoファイルでのみ現れます.@ifinfo
と
@end ifinfo
コマンドで囲まれているので,印刷された出力物では何も現
れません.(TeXは@node
行もメニューも印刷しません.Infoでのみ現れ
ます.厳密には,@ifinfo
と@end ifinfo
でこれらの部分を囲む必
要はありませんが,そうするのが最も簡単です.See Conditionally Visible Text.)
@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章です.
マスターメニューは,ファイル全体のノードをリストアップする詳細なメイ ンメニューです.
マスターメニューは,@menu
と@end menu
コマンドで囲まれていて,
印刷されたドキュメントには現れません.
一般に,マスターメニューはいくつかの部分に分かれています.
@detailmenu
を最初のものの前に置き,@end
detailmenu
を最後のものの後に置きます.そうしなければ,makeinfo
は混
乱します.
メニューのそれぞれのセクションは,記述行で紹介されています.そのため,アス タリスクで始まらない程長い行は,メニュー項目として扱われません.(詳細は, 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
Texinfoファイルが,"General Public License"と,文章化されたソフトウェア に対する配布情報と免責を含むセクションがある場合,このセクションは,通常 `Top'ノードに続きます.General Public Licenseは,Project GNUのソフトウェア にとって,非常に重要です.それは,万人に対するソフトウェアの使用と共有の維 持を保証します.
コピーと配布の情報と,免責には,はじめにやマニュアルの最初の章が続きます.
はじめには,Texinfoの必須部分ではありませんが,大変役に立ちます.理想的に
は,それはファイルが何に関係するするのか,誰が興味を持って読むのかを,明白
に簡潔に述べるべきです.ドキュメントの最初の方に置く人もいますが,一般に,
はじめににはライセンスと情報の記述が続きます.通常,はじめには,
@unnumbered
セクションに置きます.(See The @unnumbered
and @appendix
Commands.)
Texinfoファイルの終りは,索引を作るコマンドと,(通常)詳細と概要の目次を生
成するコマンドを含むべきです.そしてそれは,TeXが処理する最後の行を示す,
@bye
コマンドを含む必要があります.
例えば,以下のようにします.
@node Concept Index, , Variables Index, Top @c node-name, next, previous, up @unnumbered Concept Index @printindex cp @contents @bye
索引を印刷することは,マニュアルやInfoファイルの一部として,それを含むこと
です.これは,@cindex
や,その他の索引項目を生成するコマンドを,
Texinfoファイルで使っているので,自動的に発生しません.それらは,索引のた
め生データを蓄積します.索引を生成するため,@printindex
コマンドを,
ドキュメントの索引を置きたい場所に含める必要があります.同様に,印刷された
マニュアルを作成する過程でソートされた索引ファイルを生成する際,生データを
ソートするため,texindex
と呼ばれるプログラム(see Hardcopy)を実
行する必要があります.ソートされた索引ファイルは,索引の印刷で実際に使われ
ます.
Texinfoは,6つの異なるタイプの前もって定義された索引を提供し,それは,コン
セプト索引,関数索引,変数索引,キーストローク索引,プログラム索引と,デー
タ型索引です(see Predefined Indices).それぞれの索引は2文字の名前があ
り,それらは,cp
,fn
,vr
,ky
,pg
と,
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).
@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
@bye
@bye
コマンドは,TeXやInfoの書式化を終了します.ファイルの
@bye
以下には,書式化コマンドは全くありません.@bye
は,単
独行にすべきです.
お望みなら,@bye
行にメモを続けることができます.これらのメモは書式
化されず,Infoや印刷されたマニュアルに現れません.それは,@bye
後の
テキストが@ignore
...@end ignore
にあるかのようです.同
様に,@bye
行に,ローカルな変数リストを続けることもできます.詳細は,
See Using Local Variables and the Compile Command.
章の構造化コマンドは,ドキュメントを,章,セクション,サブセクション と,サブサブセクションの階層構造に分けます.これらのコマンドは,大きな見出 しを生成します.それらは,印刷されたマニュアルの目次の情報も供給します (see Generating a Table of Contents).
章の構造化コマンドはInfoノード構造を作成しないので,通常は@node
コ
マンドを,それぞれの章の構造化コマンドの直前に置くべきです
(see Nodes).ノード構造化コマンドを使わず,章の構造化コマンドを使うの
は,おそらく,相互参照を含まないドキュメントや,Info形式に変換しないドキュ
メントを書く場合だけでしょう.
印刷可能なドキュメントではなく,InfoファイルためだけにTexinfoファイルを書 くことは,おそらくないでしょう.そうする場合でも,章の構造化コマンドをそれ ぞれのノードの見出しを作るために--不要ですが--書くことができます.
@top
command, part of the `Top' node.
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,を参照してください.)
章を構造化するコマンドは,4つのグループ,またはシリーズに分類され,それぞ れは,章,セクション,サブセクションと,サブサブセクションの階層レベルに対 応する,構造化コマンドを含みます.
4つのグループは,@chapter
シリーズ,@unnumbered
シリーズ,
@appendix
シリーズと,@heading
シリーズです.
それぞれのコマンドは,印刷されたページやInfoファイルで,異なるタイトルを生 成します.いくつかのコマンドのみ,印刷された本やマニュアルの目次でリストアッ プされるタイトルを持ちます.
@chapter
と@appendix
シリーズは,印刷されたものや
目次に,番号や文字が付いた項目を生成します.
@unnumbered
シリーズは,印刷されたものや目次に,番号無し
の項目を生成します.特別に使われる@top
コマンドは,このシリーズのメ
ンバーです(see @top
).
@heading
シリーズは,目次に現れない番号付けされない見出し
を生成します.見出しコマンドは新しいページを開始しません.
@majorheading
コマンドは,@chapheading
の使用と似た結果を生
成しますが,見出しの前に大きな縦方向の空白を生成します.
@setchapternewpage
コマンドでは,@chapter
,
@unnumbered
と,@appendix
コマンドは,印刷されたマニュアルで
新しいページを開始します.@heading
コマンドではそうなりません.
ここに,4つの章の構造化コマンドのグループがあります.
改ページ | 改ページ無し
| ||
番号付き | 番号無し | 文字と番号 | 番号無し
|
目次にある | 目次にある | 目次にある | 目次にない
|
@top | @majorheading
| ||
@chapter | @unnumbered | @appendix | @chapheading
|
@section | @unnumberedsec | @appendixsec | @heading
|
@subsection | @unnumberedsubsec | @appendixsubsec | @subheading
|
@subsubsection | @unnumberedsubsubsec | @appendixsubsubsec | @subsubheading
|
@top
@top
コマンドは,Texinfoファイルの最初で,@node Top
行の後
に使っている特別なセクションコマンドです.@top
コマンドは,
makeinfo
フォーマッタに`Top'ノードを伝え,マニュアルが暗黙のポイン
タを使う場合,それはノードツリーの根として使うことができます.
@unnumbered
(see @unnumbered
and @appendix
)の植字効果と同じです.詳細は,The @top
Command,を参照してください.
@top
ノードとそのメニュー(がある場合)は,InfoとHTML出力のみで現れ,
TeXで現れないようにするため,慣習で,@ifnottex
環境になります.
@chapter
@chapter
は,ドキュメントの章を識別します.行の最初にコマンドを,同
じ行に続けて章のタイトルを書いてください.
例えば,このマニュアルのこの章は,"章の構造(Chapter Structuring)"という
項目です.@chapter
行は以下のようになります.
@chapter 章の構造(Chapter Structuring)
TeXでは,@chapter
コマンドはドキュメントに章を作成し,章のタイト
ルを指定します.章は,自動的に番号付けされます.
Infoでは,@chapter
コマンドは,タイトルを単独行に現し,行の下にはア
スタリスクの挿入があります.このように,Infoで上の例は,以下の出力を生成し
ます.
章の構造(Chapter Structuring) *****************************
Texinfoは,コマンド@centerchap
も供給し,それは
@unnumbered
に似ていますが,印刷された出力物でその引数をセンタリン
グします.この種の形式上の選択は,通常Texinfoでは提案されません.
@unnumbered
と@appendix
@unnumbered
コマンドを,印刷されたマニュアルであらゆる種類の数字が
付かない章を作成するために使用してください.@appendix
コマンドを,
印刷されたマニュアルで数字の代わりに文字でラベルが付く付録を作成するために
使用してください.
Infoファイル出力に対し,@unnumbered
と@appendix
コマンドは,
@chapter
を同じです.タイトルは単独行で印刷され,下にアスタリスクの
行が付きます.(See @chapter
.)
付録や番号を付けない章を作成するため,章の作成と同様に,
@appendix
や@unnumbered
コマンドを行の最初から書き,同じ行に
タイトルを続けてください.
@majorheading
,@chapheading
@majorheading
と@chapheading
コマンドは,ドキュメントの本体
に章のような見出しを置きます.
しかし,いずれのコマンドも,TeXに番号付の見出しや目次項目を生成させませ ん.また,どちらのコマンドも,TeXに印刷されたマニュアルで新しいページを 開始させません.
TeXでは,@majorheading
コマンドは,@chapheading
コマンド
が生成するより大きな縦方向の空白を生成します.
Infoでは,@majorheading
と@chapheading
コマンドは
@chapter
と同じで,下にアスタリスクの行が付いた単独行に,タイトルを
出力します.(See @chapter
.)
@section
印刷されたマニュアルでは,@section
コマンドは,章の中の番号付のセク
ションとなります.セクションのタイトルは目次に現われます.Infoでは,
@section
コマンドは,=
で下線を引かれたテキストをタイトルとし
て提供します.
このセクションは,@section
コマンドが前置され,Texinfoファイルで
は以下のように見えます.
@section @code{@@section}
セクションを作るため,@section
コマンドを行の最初に書き,同じ行に
セクションのタイトルを続けてください.
以下のようにします.
@section This is a section
以下を生成します.
This is a section =================
以上はInfoで,生成されます.
@unnumberedsec
,@appendixsec
,@heading
@unnumberedsec
,@appendixsec
,@heading
コマンドは,
それぞれ,@section
コマンドの,番号無し,付録と,見出しのようなもの
と同じです.(See @section
.)
@unnumberedsec
@unnumberedsec
コマンドは,番号無しの章の中や,通常の章や付録の中で,
番号無しのセクションを供給するために使用できます.
@appendixsec
@appendixsection
@appendixsection
は,@appendixsec
コマンドの長い綴です.2つ
は同じです.
慣習的に,@appendixsec
や@appendixsection
コマンドは,付録で
のみ使用します.
@heading
@heading
コマンドは,章の形式の見出しで目次に現われないもののため,
希望の場所で,どこでも使用できます.
@subsection
コマンドサブセクションとセクションの関係は,セクションと章の関係のようなものです.
(See @section
.)Infoで,サブセクションのタイトルは,
-
で下線が引かれます.例えば,以下のようになります.
@subsection これはサブセクションです.
以下を生成します.
これはサブセクションです. --------------------
印刷されたマニュアルでは,サブセクションは目次にリストアップされ,3レベル の深さで番号が付きます.
@subsection
のようなコマンド@unnumberedsubsec
,@appendixsubsec
と,
@subheading
コマンドは,それぞれ,@subsection
コマンドの,番
号無し,付録と,見出しのようなものと同じです.(See @subsection
.)
Infoでは,@subsection
のようなコマンドは,ハイフンで下線が引かれた
タイトルを生成します.印刷されたマニュアルでは,@subheading
コマン
ドは,番号無しのものと目次に現われないもの以外,サブセクションのような見出
しを生成します.同様に,@unnumberedsubsec
コマンドは,サブセクショ
ンに似た,番号がない見出しを生成し,@appendixsubsec
コマンドは,文
字と数字でラベルが付いたサブセクションのような見出しを生成します.これらの
コマンドは,両方とも目次に現われる見出しを生成します.
Texinfoでの4番目以下のレベルのセクションコマンドは,`subsub'コマンドです. 以下のものがあります.
@subsubsection
@subsection
.)印刷された
マニュアルで,サブサブセクションのタイトルは目次に現われ,4番目の深さのレ
ベルで番号を付けられます.
@unnumberedsubsubsec
@appendixsubsubsec
@subsubheading
@subsubheading
コマンドは,目次に現われない小さい見出しが必要なあら
ゆる場所で使用できます.Infoで,サブサブ見出しは,実際に,普通のサブサブセ
クションの見出しのように見えます.
In Info, `subsub' titles are underlined with periods. For example,
Infoでは,`subsub'タイトルはピリオドで下線が引かれます.例えば,以下のよう にします.
@subsubsection これはサブサブセクションです.
以下を生成します.
これはサブサブセクションです. .......................
@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ステップづつ,上がるか下が るかし続けます.
`章'を上に上げようとすると,章コマンドを再生成します.`サブサブセクション 'を下に下げようとすると,サブサブセクションコマンドを再生成します.
ノードは,Texinfoファイルの主要な部分です.それらは,それ自身が階層 的ではなく,ファイル構造でもありません.ノードは,他のノードの名前を持つ ノードポインタを含み,ノードをリストアップしているメニューを含 めることもできます.Infoでは,移動コマンドで,指示されたノードやメニューの ノードリストへ移動することができます.ノードポインタとメニューは,Infoファ イルに,章,セクション,サブセクション等のような構造を供給し,それらは,印 刷された本に構造を供給しているものです.
ノードとメニューコマンドと,章の構造化コマンドは,専門的にはお互い独立して います.
ノードポインタとメニューを,Infoファイルを好きなように構造化するために使用 することができます.Texinfoファイルで,Info出力が印刷された出力と異なるよ うに書くこともできます.しかし,ほとんど全てのTexinfoファイルは,Info出力 の構造が印刷された出力の構造に対応するように書かれています.そうしなければ, 読者は不便で理解不能になります.
一般に,印刷された出力は,章が主要な大枝で,そこからセクションが枝を出して いる木のような階層構造です.同様に,ノードポインタとメニューは,Info出力で 一致する構造を作成するように組織化されています.
ここに,前で示した,章が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
コマンドで始まり,次の@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
line.
@top
command.
ノード名はノードの識別子です.ポインタは他のノードに行くことができ,これら のノード名から成り立ちます.
通常ノードの`Up'ポインタは,そのメニューがそのノードを記述しているノード名 を含みます.ノードの`Next'ポインタは,メニューでそのノードの次のノード名を 含み,`Previous'ポインタは,メニューでそのノードの前のノード名を含みます. ノードの`Previous'ノードが`Up'ノードと同じとき,両方のノードは同じノード名 を示します.
通常,Texinfoファイルの最初のノードは`Top'ノードで,その`Up'と`Previous'ポ
インタはdir
ファイルを指し示し,それは,Info全てのメインメニューを含
みます.
`Top'ノード自身は,マニュアルのメインまたはマスターメニューを含みます.ま た,`Top'ノードに簡単なマニュアルの記述を含めると便利です.Texinfoファイル の最初のノードの書き方の詳細は,See First Node.
明示的に全てのポインタを指定したときでも,任意の順番でTexinfoソースファイ ルにノードを書くことができることを意味しません!TeXは,ファイルをノード ポインタにかかわらず,順番に処理するので,印刷された出力物に現したい順番に ノードを書く必要があります.
@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
行の助言ここに3つの提案があります.
Infoファイルでは,ファイル名,ノード名と,ポインタ名は全て1行に挿入され, それはウィンドウの右端まで行くかも知れません.(これは,Infoの問題ではあり ませんが,醜いです.)
@node
行の必要事項ここに,いくつかの@node
行の必要事項があります.
重複すると,Info移動コマンドで混乱します.これは例えば,概要で全ての章を終 える場合,それぞれの概要のノードを異なる名前にする必要があります.それぞれ を1つの"概要"とすることはできません.しかし,章,セクションとそれに類す るもののタイトルは重複することができます.このように,ノード名がセクション では全て異なっている限り,本のそれぞれの章を"概要"というセクションで終え ることができます.
ポインタが示すノードは,そのポインタを含む前後のノードから来ることができま す.
こうして,@chapter
と呼ばれるセクションの始めは,以下のようになりま
す.
@node chapter, unnumbered & appendix, makeinfo top, Structuring @comment node-name, next, previous, up @section @code{@@chapter} @findex chapter
例えば,以下のようなセクションタイトルにします.
@code{@@unnumberedsec}, @code{@@appendixsec}, @code{@@heading}
対応するノード名は以下のようになります.
unnumberedsec appendixsec heading
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.
@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更新コ
マンドを使うとき使用することもできます.
@top
行の後で,メインまたはマスターメニューの前に,`Top'ノードの概
要を書くと読者は便利です.概要は,ドキュメントを手短に記述するべきです.
Infoでは,この概要はマスターメニューの前に現れます.印刷されたマニュアルで
は,この概要は単独ページに現れます.
印刷されたマニュアルで,単独ページに概要を現したくない場合,`Top'ノード全
体を,@node Top
行と@top
セクションコマンド行やその他のセク
ションコマンド行を含めて,@ifinfo
と@end ifinfo
で囲むことが
できます.これは,印刷された出力物で,あらゆるテキストが現れるのを妨げます.
(see Conditionally Visible Text)印刷されたマニュアルで
読むため,最初の章の始めに,@iftex
... @end iftex
の中
に,`Top'ノードから短い記述を繰り返すことができます.これは紙の使用を押え,
きちんとしているように見えるでしょう.
マニュアルが適応するプログラムのバージョンナンバーを,概要に書くべきです.
これは,マニュアルがプログラムのどのバージョンに対するのものなのかを,読
者が記録追跡するのに役立ちます.プログラムや,それが依存するものより,マ
ニュアルの更新が多い場合,マニュアルのエディションナンバーを含めるべきで
す.(タイトルページにも,この情報を含めるべきです.@titlepage
,を参照してください.)
makeinfo
でポインタの作成makeinfo
プログラムは,階層的に組織化されているファイルに対し,自動
的にノードポインタを定義する特徴があります.
この特徴を利用するとき,`Next',`Previous'と`Up'ポインタをノード名の後に書
く必要がありません.しかし,@chapter
や@section
のような区分
けコマンドを,それぞれの切り詰めた@node
行の直後の行に書く必要があ
ります(例外は,コメント行が間に入ることです).
さらに,`Top'@node
行に,ファイルの`Top'ノードに印を付ける
@top
で始まる行を続ける必要があります.See @top
.
最後に,(`Top'ノード以外の)それぞれのノード名を,ノードの階層レベルの上に, 1つかそれ以上の階層レベルとなるメニューに書く必要があります.
このmakeinfo
のノードポインタ挿入の特徴は,手動やTexinfoモードのコマ
ンドで,メニューやポインタを更新する必要から開放します.(See Updating Nodes and Menus.)
@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.)
メニューは,従属的なノードへのポインタを含みます.8Infoでは,メニューをそのようなノード へ行くために使用します.メニューは印刷されたマニュアルで効果がなく,それら には現れません.
慣習で,メニューを使用する読者が,それ以降のテキストを見ない可能性があるの でメニューはノードの終りに置かれます.さらに,メニューがあるノードは多くの テキストを含むべきではありません.多くのテキストとメニューがある場合は,テ キストのほとんどを--数行以外全て--新しいサブノードに移動してください.そ うしない場合,数行しか表示できない端末を使用する読者は,メニューとそれに関 連するテキストが見えません.実際問題として,メニューはノードの最初の20行以 内に配置すべきです.
メニューの前の短いテキストは,印刷されたマニュアルで不様に見えるかもしれま
せん.これを避けるため,メニューをそのノードの最初の方に書き,メニューを
@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, の最初にあります.
メニューは,単独行の@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行はメニュー
項目です.メニューのスペース文字は,このように維持されます.これで,メニュー
を望み通りに書式化できます.
メニュー項目は,3つの部分があり,2番目のみ必要です.
メニュー項目のテンプレートは,以下のようになります.
* menu-entry-name: node-name. description
メニュー項目名に,1つのコロンを続け,ノード名にタブ,コンマ,ピリオドや, 改行を続けてください.
Infoでは,ユーザはノードを,m(Info-menu
)コマンドで選択します.
メニュー項目名は,ユーザがmコマンドの後で入力するものです.
メニュー項目の3番目の部分は,記述的な句または文です.メニュー項目名とノー ド名は短い場合が多いです.記述は読者に,何について書かれているノードかを説 明します.役立つ記述は,繰り返しではなくノード名への補完になります.追加の 記述は,2行以上に分けることができます.そうする場合,著作者は,最初(と他の 全て)と同列にするより,2行目を字下げするほうを好みます.それは,好きにでき ます.
メニュー項目名とノード名が同じとき,行の最初でアスタリスクとスペースの直後に 名前を書き,名前に2つのコロンを続けることができます.
例えば,以下のように書きます.
* Name:: description
代わりに以下のようにします.
* Name: Name. description
メニューが見た目バラバラに散らばるので,可能な場合,ノード名をメニュー項目 名として使用すべきです.
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
はコメントです.それはメニューには現れますが項目ではありません.
Files
やBuffers
でファイル名が指定されていないので,それらは,
同じInfoファイルでのノード名のはずです.(see Referring to Other Info Files).
ノード名の直前のカッコにファイル名を書くことで,Infoの読者が他のInfoファイ ルのノードへ行くことを可能にするメニュー項目を作成することができます.この 場合,3つの部分のメニュー項目書式を使用するべきで,それは,読者がファイル 名を入力することを省きます.
書式は,以下のようになります.
@menu * first-entry-name:(filename)nodename. description * second-entry-name:(filename)second-node. description @end menu
例えば,Emacs Manualで直接Outlining
とRebinding
ノード
を参照するため,メニューを以下のように書きます.
@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モードでのメニュー更新コマンドは,現在のバッファのノード でのみ働くので,他のファイルを参照するメニューを作成するために使用すること はできません.そのようなメニューは,手で書く必要があります.
相互参照は,同じまたは異なるTexinfoファイルの他の部分へ,読者を導く ために使用します.Texinfoでは,ノードとアンカーは相互参照が参照する場所で す.
いつもではありませんが,ほとんどの印刷されたドキュメントは順番に読むよう に設計されています.人々は,必要なとき提出されるべき情報を見つけるために, 前後にページをめくるのが嫌になります.
しかし,あらゆるドキュメントで,現在の文脈に対し詳しすぎたり,主要でなかっ たりする情報もあります.そのような情報へのアクセスを供給するため相互参照 を使用してください.また,オンラインヘルプシステムや,リファレンスマニュ アルは.小説とは異なります.そのようなドキュメントを最初から最後まで順番 に読む人はほとんどいません.代わりに,人々は必要なところを拾い読みします. このため,そのようなものは,読者が読まなかった可能性のある他の情報を見つ けるとき役に立つ,相互参照を多く含めるべきです.
印刷されたマニュアルでは,完全に他のマニュアルでない限り,相互参照は結果 としてページ参照となり,その場合は相互参照はマニュアルの名前になります.
Infoでは,相互参照は結果として,Infoのf
コマンドに続いて使用するこ
とができる項目となります.(see Some advanced Info commands.)
様々な相互参照コマンドは,ノード(やアンカー
see @anchor
)を,相互参照の位置を定義するために使用し
ます.これは,Infoの環境では,そこでの相互参照は指定した場所に移動します.
TeXもノードを相互参照の位置を定義するために使用しますが,動作は明白で
はありません.TeXがDVIファイルを生成するとき,それは,それぞれのノー
ドのページを記録し,参照を作成する際ページ番号を使用します.このため,印
刷されるだけのマニュアルを書きオンラインで使用しない場合でさえ,相互参照
する場所に名前をつけるために@node
行を書く必要があります.
4つの異なる相互参照のコマンドがあります.
@xref
*Note name: node.
を告げる文を開始するために使用さ
れます.
@ref
@xref
と同じです.印刷さ
れたマニュアルでは参照だけを生成し,前に`See'を生成しません.
@pxref
p
は
`parenthesis'です.)
@inforef
(@cite
コマンドは,Infoと関係の無い,本とマニュアルへの参照を作成
するために使用され,それゆえ,指し示すノードはありません.See @cite
.)
相互参照のコマンドは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つの利用可能な引数は,以下の通りです.
.info
接尾子は不要です.
完全な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
をカッコ内でのみ書くなどで
す.
@xref
@xref
コマンドは文の最初での相互参照を生成します.Info書式化コマ
ンドはそれをInfo相互参照に変換し,Infoのf
で他のノードへ直接行くこ
とができます.TeX植字コマンドはそれをページ参照や,他の本やマニュアル
への参照に変換します.
@xref
with one argument.
@xref
with two arguments.
@xref
with three arguments.
@xref
with four and five arguments.
よくある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つまで追加引数を含 むことができます.これらの変数はそれぞれ,幾分異なるように見える相互参照 を生成します.
注意してください:カンマは相互参照で引数を分けます.フォーマッタ がそれらをセパレータと間違えないように,タイトルや他の部分にそれらを含め るのを避けてください.
@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.
(前の例では,閉じカッコはカンマと,文節が続き,それにはピリオドが続くこと に注意してください.)
@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.
(前の例では,閉じカッコはカンマと文節が続き,それにはピリオドが続くことに 注意してください.)
@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}.
@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番目はその必要がありません.
相互参照では,常にノードを名付ける必要があります.これは,マニュアル全体
を参照するために,@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
がマニュアルの最初
のセクション名です.
@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出力でも最善に見えます.
@pxref
丸カッコの参照コマンド@pxref
は,@xref
とほとんど同じです
が,丸カッコの中でのみ使用し,コマンドの閉じカッコの後にカンマや
ピリオドを入力しません.コマンドは2つの点で@xref
と異なり
ます.
書式化の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ファイル,印刷された出力,またはその両方で悪く見えます.同様に,丸カッコ相互参照は,文の終りで最善に見えます.文中に書くこともでき ますが,その場所はテキストの流れを分断します.
@inforef
@inforef
は印刷されたマニュアルには無い,Infoファイルへの相互参照
のために使用されます.印刷されたマニュアルでも,@inforef
は,Info
ファイルでユーザに見せるような参照を生成します.
このコマンドは,以下の順番で2つまたは3つの引数をとります.
@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 fileinfo
, nodeExpert
, for more information.
同様に,以下のようにします.
@inforef{Expert, , info}, for more information.
以下を生成します.
*Note (info)Expert::, for more information.
また,以下を生成します.
See Info fileinfo
, nodeExpert
, for more information.
@inforef
の逆は@cite
で,それはInfo形式がない,印刷の仕事を
参照するために使用します.See @cite
.
@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:
と>
を用い,出力
をバラバラにすることは必要ないと思います.
Texinfoでは,様々な方法で単語や句にマークを付けることができます.Texinfo フォーマッタは,テキストの強調の仕方を決定するため,この情報を使用します. 例えば,単語や句が,定義している事象,メタ構文の変数や,プログラムで定義 されているシンボルであっても指定できます.同様にいくつかの異なる方法で, テキストを強調できます.
Texinfoには,テキストの一部が関係する種類を示すコマンドがあります.例え
ば,メタ構文の変数は@var
で,コードは@code
でマークされま
す.テキストの一部はそのオブジェクトの種類を伝えるコマンドでラベルが付く
ので,Texinfoフォーマッタがそのようなテキストを準備する方法を変更するこ
とは簡単です.(Texinfoは植字的な書式化言語というよりはむしろ,
意図的な書式化言語です.)
例えば,印刷されたマニュアルで,コードは通常タイプライターのフォントで図
案化されます.@code
はTeXに,このテキストをこのフォントで植字
するよう伝えます.しかし,TeXのコードの強調を他のフォントを使用するよ
う変更することは簡単で,この変更はキーストローク例の強調方法に影響を与え
ません.直接的な植字コマンドがファイルの本体で使用され,それを変更したい
場合,コードを変更し,他が変更されていないことを確かめるため,全ての単一
の事象を調べる必要があります.
強調コマンドは,関数やファイル名のリストのような,ファイルの役に立つ情報を 抽出するために使用できます.例えば,指定したコマンドでマークされた単語と句 を,全ての段落の後に索引項目を挿入する,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}
@url{uniform-resource-locator}
@email{email-address[, displayed-text]}
@code
{sample-code}プログラムの一部と,構文的なトークン全体からなるテキストを示すため,
@code
コマンドを使用してください.カッコでテキストを囲ってください.
このように,@code
をプログラムの表現,プログラムで使用している変数
や関数の名前や,プログラム言語のキーワードに対して使用すべきです.
Texinfoのようなプログラム言語に似ている言語のコマンド名に対し,
@code
を使用してください.例えば,@code
と@samp
は,
Texinfoソースファイルで,それぞれ@code{@@code}
と
@code{@@samp}
と書くことで生成されます.
文の最初に現れるとき,@code
コマンドの中で単語の大文字小文字を変え
るのは正しくありません.ほとんどのコンピュータ言語は大文字小文字の違いを識
別します.例えばCでは,Printf
はprintf
の識別子と異なり,おそ
らくそのスペルミスです.大文字小文字の区別をしない言語でも,異なる方法で綴
られた識別子を見ると,人間の読者は混乱します.1つの綴りを選び,それを常に
使用してください.全てが小文字で書かれたコマンド名で文を開始したくない場合,
文の配置替えをするべきです.
印刷されたマニュアルで,@code
でTeXは引数をタイプライターフェイ
スのフォントで植字します.Infoファイルでは.Info書式化コマンドはシングルクォー
テーションマークでテキストも周りを囲みます.
例えば,以下のようにします.
The function returns @code{nil}.
印刷されたマニュアルで,これは以下を生成します.
The function returns nil
.
ここに,@code
を使用しないほうが好ましい場合をいくつかあげます.
ls
のようなシェルコマンド名(@command
を使用してください).
-c
のようなシェルオプション単独のとき(@option
を使用してくだ
さい).
@code
より@samp
を使って書いた方が良く見えるシェルコ
マンド全体.この場合,規則はより喜ばしい書式を選択するためです.
TEXINPUTS
のような環境変数(@env
を使用してください).
goto-char
の名前
の一部のgoto-ch
に関して書く場合,@samp
を使用すべきです.
@code
を使わない
でください.(@samp
を使用してください.)同様に,入力がプログラム言
語のような言語で書かれていない場合,プログラムの入力と考えられるテキストの
マークに@code
を使用すべきではありません.例えば,GNU Emacsのキース
トロークコマンドに対し@code
を使用すべきではありませんが(代わりに
@kbd
を使用してください),キーストロークコマンドが呼び出すEmacs
Lispの関数名に対し@code
を使用することはできます.
@command
,@option
と,@env
は比較的最近導入されたの
で,@code
や@samp
をコマンド名,オプションと,環境変数に使用
することも可能です.新しいコマンドでより正確にマークアップを表現できますが,
より古いコマンドの使用でも実害は無く,もちろん長期存続のマニュアルはそうし
ています.
@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}を書いてください.
@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}
を書いてください.
@samp
{text}ファイル,文字列,パターンなどの文字の並びの例や`sample'のリテラルとなるテ
キストを示すため,@samp
コマンドを使用してください.テキストをカッ
コで囲んでください.Infoファイルと印刷されたマニュアルの両方で,シングルクォー
テイションの中にで引数が現れます.さらに,等幅フォントで印刷されます.
To match @samp{foo} at the end of the line, use the regexp @samp{foo$}.
これは以下を生成します.
To matchfoo
at the end of the line, use the regexpfoo$
.
単一の文字を記述するときはいつも,@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 area
,e
,i
,o
,u
, and sometimesy
.
@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書式化コマンドを
<...>
書式で出力させることもできます.)
@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.
@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.
@command
{command-name}ls
やcc
のようなコマンド名を示すため,@command
を
使用してください.
@command
の効果は@code
と同じです.例えば,以下のようにしま
す.
The command @command{ls} lists directory contents.
以下を生成します.
The command ls
lists directory contents.
`Emacs'や`Bison'のような,新しい英語としたい場合,@command
を使わず,
通常のテキストのフォントでプログラム名を書くべきです.
ls -l
のようなシェルコマンドの呼び出し全体を書くとき,自分で判断して
@samp
または@code
のどちらかを使用すべきです.
@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
の中に書くと,より喜ばしい効果を生成しま
す.
@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.
一般的な規則として,用語の発生の定義を含む文は,用語の定義になるべきです. 文はその定義を明示的にする必要はありませんが,定義情報を含めるべきです --それで意味がはっきりします.
@cite
{reference}Infoファイルの仲間に欠けている本の名前に対し@cite
コマンドを使用し
てください.コマンドは印刷されたマニュアルでイタリック体を生成し,Infoファ
イルでは引用符を生成します.
本がTexinfoで書かれている場合,読者がInfoでそのような参照を簡単に追うこと
ができるので,相互参照を使用してください.See @xref
.
@acronym
{acronym}`NASA'のように全て大文字で書かれている省略に対し,
@acronym
を使用してください.省略は@acronym{NASA}
のように,
カッコ内に1つの引数で与えられます.形式の問題や,特定の省略に対し,
@acronym{F.B.I.}
のようにピリオドを使用した方が良いかもしれません.
TeXとHTMLでは,引数は傾いた小さなフォントサイズで印刷されます.Infoやプ レーンテキスト出力では,このコマンドは何も変更しません.
@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
>.
@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.
通常Texinfoは,テキストで単語が属するカテゴリに従ってマークされた単語に対
しフォントを変更します.例えば@code
コマンドです.ほとんどの場合,
単語をマークする方法が最善です.しかし,カテゴリを示さずテキストを強調した
いときもあります.Texinfoはこのため2つのコマンドがあります.またTexinfoは,
TeXがテキストを植字するときのフォントを指定するコマンドがいくつかありま
す.これらのコマンドはInfoでは効果が無く,その中の1つ@r
コマンドだ
け,通常使用されます.
@emph
{text}と@strong
{text}@emph
と@strong
コマンドは,強調のためのものです.
@strong
がより強調します.印刷された出力で,@emph
は
italicsを生成し,@strong
はboldを生成します.
例えば,以下のようにします.
@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 noteやCautionのような句を使用してください.
@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
を使用す
べきです.
Texinfoは,Infoでは効果が無く,印刷されたマニュアルでフォントの変更を指定
する,4つのフォントコマンドを供給します.@i
はitalicフォント
(TeXのバージョンによっては傾いたフォントが使用される)を要求し,
@b
はboldフェイスを要求し,@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言語で,おそらくギャップが生じます.
引用と例は,テキストの大部分が区切られた1つ以上の段落全体から成り立つテキ ストの塊で,異なる取り扱いをされます.通常字下げされます.
Texinfoでは,引用や例は常に行の最初に単独で@-コマンドを書くことから始まり,
同様に,行の最初に単独行で@end
コマンドを書くことで終ります.例えば,
例を@example
を行の最初に単独行で書くことで始め,行の始めに単独行で
@end example
を書くことで終えます.
@smallbook
.
ここに,次のセクションで更に説明する引用と例のコマンドがあります.
@quotation
@example
@smallexample
@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.
@quotation
引用のテキストを,以下の場合以外,通常処理します.
これは@quotation
コマンドと@end quotation
コマンドの間に書か れているテキストの例です.@quotation
コマンドは,他の(実際または架 空の)印刷された本から抜粋されたテキストを示すために,最もよく使用されます.
@quotation
コマンドは単独行のテキストとして書いてください.この行は
出力に現れません.引用の終りを,行の最初に@end quotation
のみを含む
行で印を付けてください.@end quotation
行は出力に現れません.こうし
て,以下のようになります.
@quotation This is a foo. @end quotation
以下を生成します.
This is a foo.
@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
.)
@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).
@lisp
@lisp
コマンドはLispコードに対し使用します.それは
@example
コマンドの類語です.
これは,@lisp
コマンドと@end lisp
コマンドの間に書かれたテキ ストの例です.
例の特徴に関する情報を保護するため,@example
の代わりに
@lisp
を使用してください.例えば,TexinfoファイルにLispコードのみを
評価しそれが全てである関数を書く場合,これは便利です.Lispライブラリのよう
にTexinfoファイルを使用することができます.12
@lisp
の終りは,単独行の@end lisp
で印を付けてください.
@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.
@display
と@smalldisplay
@display
コマンドは,例のようなものを開始します.印刷されたマニュア
ルで@display
は等幅フォントを選択しない以外は,@example
コマ
ンドに似ています.実際,フォントを全く指定しないので,テキストは
@display
コマンドが使われていないところで現れるものと同じフォントで
現れます.
これは,@display
コマンドと@end display
コマンドの間に書かれ たテキストの例です.@display
コマンドは,テキストを字下げしますが, 補充しません.
Texinfoは@smalldisplay
コマンドも供給し,それは@display
に似
ていますが,@smallbook
書式でより小さいフォントを使用します.
See small.
@format
と@smallformat
@format
コマンドは,印刷されたマニュアルで@format
が等幅フォ
ントを選択せず,マージンを狭くしないこと以外は,@example
に似ていま
す.
これは@format
コマンドと@end format
コマンドの間に書かれてい るテキストの例です. この例で分かるように,@format
コマンドは,テキストを補充しません.
Texinfoは@smallformat
も供給し,それは,@format
に似ています
が,@smallbook
書式でより小さいフォントを使用します.
See small.
@exdent
: 行の字下げのアンドゥ@exdent
コマンドは行が持つ字下げを削除します.このコマンドは行の最
初に書き,同じ行にあるコマンドに続くテキストのみに適用されます.テキストの
周りにカッコを使用しないでください.印刷されたマニュアルでは,
@exdent
行のテキストはローマンフォントで印刷されます.
@exdent
は通常例の内部で使用されます.こうして,以下のようになりま
す.
@example この行は,@@exampleコマンドに続いています. @exdent この行は伸ばされます. この行は伸ばされた行に続いています. @@end exampleは次の行にあります. @end group
以下を生成します.
この行は,@exampleコマンドに続いています.
この行は伸ばされます.
この行は伸ばされた行に続いています. @end exampleは次の行にあります.
実際は,@exdent
コマンドは滅多に使用されません.通常幅に変えるため,
通常は例を終りにしたり,ページをかえたりして,テキストを字下げしないように
します.
@flushleft
と@flushright
@flushleft
と@flushright
コマンドは,ページの左右のマージン
で,行の終りを整えますが,テキストを補充しません.コマンドはカッコを使用せ
ず,単独行に書かれます.@flushleft
と@flushright
コマンドは,
単独行の@end flushleft
と@end flushright
コマンドで終りにな
ります.
例えば,以下のようにします.
@flushleft このテキストは 左揃えで書かれています. @end flushleft
以下を生成します.
このテキストは 左揃えで書かれています.
@flushright
は,手紙の返信先住所でよく使用される字下げの形式を生成
します.例えば,以下のようにします.
@flushright これは, 右揃えで書かれてたテキストの例です.@code{@flushright}コマンドは 全ての行を右揃えにしますが, 左端はバラバラのままです. @end flushright
以下を生成します.
これは,
右揃えで書かれてたテキストの例です.@flushright
コマンドは
全ての行を右揃えにしますが,
左端はバラバラのままです.
印刷されたマニュアルで,@cartouche
コマンドは,その内容の周りに角丸
の箱を描きます.例や引用をより強調するために使用することができます.例えば,
例の1つの形式が強調のためcartoucheで囲まれているマニュアルを書くことができ
ます.
@cartouche
は印刷されたマニュアルのみで効果があります.他の出力では
効果がありません.
例えば,以下のようにします.
@example @cartouche % pwd /usr/local/share/emacs @end cartouche @end example
2行の例は,印刷されたマニュアルで,角丸の箱で囲まれます.
Texinfoはリストと表を作成する方法がいくつかあります.リストは黒丸または番 号が付きます.2行の表は,最初の行の項目が強調されます.複数行の表もサポー トされています.
Texinfoは,リストや表のテキストの字下げと,列挙されたリストの番号付けを自 動的に行います.この最後の特徴は,リストを編集する場合,番号を付けなおす必 要が無いので便利です.
番号付のリストと表は,行の最初を適切な@-コマンドで開始し,単独行の対応す
る@end
コマンドで終了します.表と項目に分けられたリストのコマンドも,
開始の@-コマンドと同じ行に書式化情報を書くことを要求します.
例えば,@enumerate
コマンドで列挙リストを開始し,@end
enumerate
コマンドでリストを終了してください.項目分けリストを
@itemize
コマンドで開始し,@bullet
のような書式化コマンドを
同じ行に続け,@end itemize
コマンドでリストを終了してください.
リストのそれぞれの要素は,@item
や@itemx
コマンドに優先しま
す.
ここに,異なる種類の表とリストの項目分けされたリストがあります.
ここに,同じ項目で列挙されたリストがあります.
そして,ここに,同じ項目と@-コマンドの2行の表があります.
@itemize
@enumerate
@table
@ftable
@vtable
@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
これは,以下を生成します.
- fooに対するいくつかのテキスト.
- barに対する いくつかのテキスト.
項目分けされたリストは他の項目分けされたリストを埋め込むことができます.こ こに黒点で印を付けたリストの中にダッシュで印を付けたリストを埋め込んだもの があります.
@itemize @bullet @item 最初の項目. @itemize @minus @item 内部の項目. @item 2番目の項目. @end itemize @item 2番目の外部項目. @end itemize
これは,以下を生成します.
- 最初の項目.
- 内部の項目.
- 2番目の項目.
- 2番目の外部項目.
@enumerate
: 数字や文字が付いたリストの作成@enumerate
は,アイテムのラベルが黒丸の代わりに,連続した整数や文字
となる以外,@itemize
に似ています(see @itemize
).
@enumerate
コマンドを行の最初に書いてください.コマンドは引数を要求
しませんが,オプションとして数字または文字を受け入れます.引数が無い場合,
@enumerate
は数字1
でリストを開始します.3
のような数字
の引数で,コマンドはその番号からリストを開始します.a
または
A
のような場合,大文字または小文字で,コマンドはその文字でリストを開
始します.
項目分けされたリストと同じ方法で,列挙されたリストのテキストを書いてくださ
い.列挙したいそれぞれの段落を始める前に,単独行に@item
を置いてく
ださい.@item
で始まる行に他のテキストは一切書かないでください.
リストの項目の間に空白行を置くべきです.一般にInfoファイルが読みやすくなり ます.
ここに引数の無い@enumerate
の例があります.
@enumerate @item 根本的な原因. @item 直接の原因. @end enumerate
これは以下を生成します.
ここに,3を引数とした例があります.
@enumerate 3 @item 元となる原因. @item 逆の原因. @item 永続する原因. @end enumerate
これは以下を生成します.
ここに,選択肢の短い概要があります.概要は,aの引数で
@enumerate
を使用して組み立てられています.
@enumerate
引数が無い場合,番号付リストを生成し,それは数字1で始まります.
@enumerate positive-integer
(正の)数字の引数の場合,その数字で番号付のリストを開始します.他の文章で中 断されたリストを続けるために,これを使用することができます.
@enumerate upper-case-letter
引数を大文字とした場合,それぞれの項目がその大文字で始まる文字で,マークが 付いたリストを開始します.
@enumerate lower-case-letter
引数を小文字とした場合,それぞれの項目がその小文字で始まる文字で,マークが 付いたリストを開始します.
アウトラインのように,番号付のリストを入れ子にすることができます.
@table
は,@itemize
(see @itemize
)に似
ていますが.それぞれの項目に対し,名前や見出し行を指定できます.
@table
コマンドは,2行の表を生成するために使用され,特に,用語集,
説明的な表示や,コマンドラインオプションの概要に役に立ちます.
@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
2行以上の名前の項目を1塊のテキストでリストアップしたい場合,
@itemx
コマンドを使用してください.(See @itemx
.)
@ftable
と@vtable
@ftable
と@vtable
コマンドは,@ftable
が自動的に表の
最初の行のそれぞれの項目行を関数の索引に入れ,@vtable
が自動的に表
の最初の行のそれぞれの項目行を変数の索引に入れる以外,@table
コマン
ドと同じです.これは,索引作成の仕事を単純にします.@item
コマンド
と同じ行の項目のみ索引になり,それらはその行が現れる正確な形式で索引になり
ます.索引の詳細は,See Indices.
2行の表を@ftable
や@vtable
を使用し,行の最初に@-コマンドを
書くことで開始し,同じ行に引数として,@table
のためのもののように正
確に,@code
コマンドのようなTexinfoコマンドを続けます.そして,単独
行で@end ftable
や@end vtable
コマンドを使用し終りにしてくだ
さい.
前のセクションの@table
の例を参照してください.
@itemx
同じ項目で,最初の行の項目が2つ以上あり,それぞれを単独行に現したい場合,
@itemx
コマンドを表の中で使用してください.@itemx
を全ての最
初の項目に使用してください.@itemx
は常に@item
コマンドに続
けるべきです.@itemx
コマンドは,最初の行のテキストの上に余分な空白
を生成しない以外は,正確に@item
のように働きます.
例えば,以下のようにします.
@table @code @item upcase @itemx downcase この2つの関数は,引数として文字や文字列を受け入れ,対応した大文字(小文字 )の文字や文字列を返します. @end table
これは以下を生成します.
upcase
downcase
(この例は,2行の表に複数行をサポートしているテキストを表現していることに注 意してください.)
@multitable
で,それぞれの行が希望の幅を持つ,あらゆる数の表を構築
することが可能となります.
単独の@multitable
行で行の幅を定義し,@tab
コマンドで分けら
れた行で,@item
コマンドに続けて,実際の表のそれぞれの列を書きます.
最終的に,@end multitable
で表を終了します.詳細は以下のセクション
にあります.
複数行の表の行の幅を2つの方法で定義できます.それは,行の長さを分数とする.
または列のプロトタイプを使用するです.2つの方法を混ぜたものはサポートして
いません.どちらの場合でも,@multitable
コマンドと同じ行で幅は完全
に定義されます.
@columnfractions
と(1より小さ
い)10進数を@multitable
コマンドの後に以下のように書いてください.
@multitable @columnfractions .33 .33 .33
分数は上記がそうでないように,和が正確に1.0になる必要はありません.これで, 行全体を満たす必要の無い表を生成することができます.好みで0を前に置くこと ができます.
@multitable
コマンドの後にカッコで囲んで書いてください.例えば,以
下のようにします.
@multitable {行1のためのいくつかのテキスト} {行2のため}
最初の行は,`行1のためのいくつかのテキスト'で植字される幅を持ち,2行目は `行2のため'の幅を持ちます.
プロトタイプ項目は,表自身に現す必要はありません.
この例で単純なテキストを使用しましたが,プロトタイプ項目は,Texinfoコマン
ドを含めることができます.@code
のようなマークアップコマンドは,特
に役に立つ可能性が高いです.
行の幅を定義する@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.
|
Texinfoを使用すると,項目を手動でソートしたりページ順に揃える必要無く,索 引を生成できます.索引では,項目はアルファベット順13に,それぞれの項目の記述を見つける方法の 情報と共にリストアップされます.印刷されたマニュアルでは,この情報はページ 番号を含みます.Infoファイルでは,この情報は参照された最初のノードへ導くメ ニュー項目となります.
Texinfoは,前もって定義された索引の種類も供給します.関数の索引,変数の索 引,概念による索引などです.索引を統合したり,典型的な目的以外のために使用 することができます.好みで,独自の索引を定義できます.
索引項目を作成するとき,人々が何かを探す際,異なる方法でできるように考える ことは良いことです.何かを探すとき,異なる人々は,同じ単語を考えませ ん.役に立つ索引は,人々が使用する可能性のある,全ての異なる単語で索引に された項目を持ちます.例えば,ある読者は単語"Index"は一般的な概念なので, 索引の2文字の名前は"Indices, two-letter names"にあって当然だと考えるかも 知れません.しかし,もう一人の読者は,2文字の名前の特定の概念を覚えていて, "Two letter names for indices"としてリストアップされている項目を探すかも しれません.良い索引は,両方の項目を持ち,それは両方の読者を助けるでしょう.
植字のように,索引の構築は高度に熟練した専門的な芸術品で,自分で作る必要が 無ければ正当に評価できない繊細なものです.
本の終りに索引を印刷する,またはInfoファイルで索引メニューを作成する方法の 情報は,See Printing Indices & Menus.
Texinfoは6つの前もって定義されている索引を供給します.
全てのマニュアルが,これらの全てを必要とするわけではなく,ほとんどのマニュ
アルは,その2,3を使用します.このマニュアルは2つの索引があります.概念索
引と,@-コマンド索引(実際には関数索引ですが,章見出しでコマンド索引と呼ば
れています)です.2つ以上の索引を,@synindex
や
@syncodeindex
コマンドを使用して,1つに統合することができます.
See Combining 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
@findex function
@vindex variable
@kindex keystroke
@pindex program
@tindex data type
注意:索引項目にコロンを使用してはいけません.Infoでは,コロンはノー ド名と項目名を分けるので,項目自身のコロンはInfoを混乱させます.メニュー項 目の構造の詳細は,See The Parts of a Menu.
それらの標準目的のために,前もって定義されている索引を実際に使用することを
要求されているわけではありません.例えば,Cプリプロセッサマクロの索引を望
む場合を考えます.それらに対し@findex
コマンドを書くことで,それら
を実際の関数に属する関数索引に置くことができます.そして,番号付けされてい
ない章として"関数索引"を印刷するとき,タイトルに`関数とマクロの索引'を与
え,読者に対し全てが矛盾しません.または,マクロを@tindex
コマンド
でデータタイプに置き,それに適した索引タイトルを与えると読者は理解します.
(See Printing Indices & Menus.)
分かれた索引がばかげて見える程,その1つが小さいなどの理由で,関数と概念の ように2つに分かれている索引を統合したいこともあります.
@cindex
コマンドを@findex
コマンドの代わりに書くことで関数を
概念索引に置き,`関数の索引'と印刷するのではなく,`関数と概念の索引'という
タイトルで概念索引を印刷することで,一貫したマニュアルを生成することができ
ます.しかし,これは強力な手続きではありません.ドキュメントが分かれた関数
索引を持つように設計されている他のドキュメントに挿入されない場合のみ働きま
す.そのようなドキュメントに,ドキュメントを挿入した場合,ドキュメントの関
数と他から持って来たものは一緒になりません.同様に,関数名は概念索引の右側
に現すため,@code
のカッコの間にそれらの1つを個別に囲む必要がありま
す.
@code
font for the merged-from index.
@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
フォントで印刷されます.
@synindex
`from'索引項目を@code
フォントに置き換えない以外,
@synindex
コマンドは@syncodeindex
コマンドとほとんど同じです.
その代わりにローマンフォントに置き換えます.このため,概念索引を関数索引に
統合するとき@synindex
を使用します.
本の終りに索引を印刷したり,Infoファイルに索引メニューを作成する詳細は, See Printing Indices & Menus.
前もって定義されている索引に加えて,@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)の前で使用
すべきです.
Texinfoは,カッコのようなTexinfoで特別な意味を持つ文字を挿入するためと,入 力可能な単純な文字に対応しない他の画像要素のためのコマンドもいくつかありま す.
@
.
@
と弓カッコはTexinfoで特別な文字です.これらの文字をテキストに現れ
るように挿入するため,Texinfoが誤解することを避けるため,@
をこれら
の文字の前に置く必要があります.
これらのコマンドの後にカッコを置いてはいけません.それらは不要です.
@
.
{
and }
.
@
を@@で挿入する@@
は,印刷されたまたはInfoで単一の@
を意味します.
@@
コマンドの後にカッコを置かないでください.
{
と}
を@{と@}で挿入する@{
は印刷されたまたはInfoで単一の{
を意味します.
@}
は印刷されたまたはInfoで単一の}
を意味します.
@{
や@}
コマンドの後にカッコを置かないでください.
以下のセクションは,文の中や後の様々な種類の空白を制御するコマンドを記述し ます.
ピリオドや,感嘆符や疑問符が文の中か終りにあるかに依存して,少しまたは多く の空白が植字されたピリオドの後に挿入されます.ピリオドが文を終るときと省略 で使用されるときとを,常に決定できるわけではないので,特別なコマンドが必要 な状況もあります.通常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出力で効果はありません.@:
の後にカッコを置かないで
ください.
単一の大文字で終る文の終りのピリオドの代わりに@.
,感嘆符の代わり
に@!
,そして疑問符の代わりに@?
を使用してください.そう
しない場合,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)でうまく働きます.
これらのコマンドの後にカッコを置かないでください.
通常,TeXは複数の空白文字(スペース,タブと,改行)を単一のスペースに収め ます.一方,Info出力では,改行をスペースにする以外,入力した通りの空白を維 持します.これは,Texinfoドキュメントの文の終りの2つのスペースを置くことが 重要だからです.
例の目的(プログラムが入力として複数の空白を扱うこと)や,見出しやリストの見
栄えのため,複数の連続した空白を実際に挿入したいこともあります.Texinfoは
3つのコマンドをサポートします.@SPACE
,@TAB
と,
@NL
で,それらは全て,出力に単一のスペースを挿入します.(ここ
で,@SPACE
は空白に続く@
文字,すなわち@
を現
し,TABとNLはタブ文字と文の終り,すなわち,@
が行の最後
の文字のときを現します.)
例えば,以下のようにします.
Spacey@ @ @ @ example.
以下を生成します.
Spacey example.
@SPACE
の他の可能な利用法は,
@multitable
(see Multi-column Tables)に包括されました.
これらのコマンドにカッコを続けないでください.
@dmn
{dimension}: 寸法単位の書式化寸法単位のため,数字と省略の間に小さな空白または空白を全く置かないで,
12pt
や8.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.
ここに,フローティングアクセントを挿入するためにTexinfoが挿入するコマンド
の表があります.アルファベットでない名前のコマンドは引数の周りにカッコをと
りません(それは次の文字をとります).(例外:@,
は引数の周りにカッコを
とります.)これは,アクセントを置かれた文字が言語では普通であるもの
もあるので,ソースを可能な限り入力に便利で読み易くするためです.
コマンド | 出力 | 意味するもの
|
@"o" | ö" | ウムラートアクセント
|
@'o | ó | アキュートアクセント
|
@,{c} | ç | セディラアクセント
|
@=o | 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
|
省略(ドットの行)は,ピリオドの列として植字されないので,特別なコマン
ドがTexinfoの省略で使用されます.@bullet
コマンドも特別です.それぞ
れのコマンドは,カッコの組{}
が続き,コマンド名とカッコの間には空
白を置きません.(続けて他のテキストを使用できるので,これらのコマンドにカッ
コの使用が必要です.カッコが無い場合,フォーマッタは混乱するでしょう.詳細
は,See @-Command Syntax.)
@dots
{} (...)と@enddots
{} (....)続けて3つの点となり適切な空白がある`...'のような省略を生成するため,
@dots{}
コマンドを使用してください.入力ファイルに単純に3つのピリ
オドを書かないでください.それはInfo出力では働きますが,印刷されたマニュア
ルではピリオドの間に間違った量の空白を生成します.
同様に,@enddots{}
コマンドは文の終りの省略(4つの点)を生成します
....
@bullet
{} ()大きな黒点やそれに近いものを生成するために@bullet{}
を使用してく
ださい.Infoではアスタリスクが使用されます.
これは黒点です:
@itemize
で@bullet
を使用するとき,@itemize
が供給す
るので,カッコを入力する必要はありません.(See @itemize
.)
ロゴ`TeX'は特別な形での植字で,@-コマンドが必要です.著作権シンボル
`©'も特別です.それぞれのコマンドはカッコの組{}
が続き,
コマンド名とカッコの間に空白は使用しません.
@copyright
{}.
@TeX
{} (TeX)`TeX'を生成するため@TeX{}
コマンドを使用してください.印刷され
たマニュアルでは,これは3つの通常の文字と異なる特別なロゴとなります.
InfoではそれはTeX
のように見えます.@TeX{}
コマンドは
T
とX
が大文字の,Texinfoコマンドの中ではユニークなものです.
@copyright
{} (©)`©'を生成するために@copyright{}
コマンドを使用してくだ
さい.印刷されたマニュアルでは,これは円の中のc
になり,Infoではこれ
は(C)
になります.
@pounds
{} (£): ポンド英貨`£'を生成するために@pounds{}
コマンドを使用してください.
印刷されたマニュアルでは,これは通貨ポンド銀貨のシンボルとなります.Infoで
は#
になります.他の通貨シンボルは残念ながら利用不可能です.
@minus
{} (-): 負記号の挿入負記号を生成するために@minus{}
コマンドを使用してください.等幅フォ
ントで,これは単一のハイフンですが,プロポーショナルフォントではシンボルは
負記号の慣習的な長さで,--ハイフンより少し長く,em-dashより短くなります.
-
は@minus{}
で生成された負記号で, `-'は文字-
で生成したハイフンで, `---'はテキストのem-dashです.
Infoで使用される等幅フォントで@minus{}
はハイフンと同じです.
幅の違いは,使用する等幅フォントで作成されないので,@code
や
@example
で@minus{}
を使用すべきではありません.
項目分けされたリストのそれぞれの項目をはじめるマークを指定するため
@minus
を使用するとき,カッコを入力する必要はありません
(see @itemize
).
@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つの$
(ド
ル記号)の間に適切に数学的表現を書くことを覚えておいてください.
Texinfoでは,コードは@example
と@end example
や
@lisp
と@end lisp
で区切られた例として表示されることが多いで
す.そのような例では,=>
や==>
を使用して,評
価の結果や拡張を示すことができます.同様に,印刷された出力,エラーメッセー
ジ,等式表現と,ポイントの位置を示すglyphを挿入するコマンドがあります.
glyph挿入コマンドは,例の内部で使用する必要はありませんが,ほとんどそうな ります.全てのglyph挿入コマンドは左右のカッコの組が続きます.
@result{}
は,表現の結果を示します.
@expansion{}
はマクロ拡張の結果を表示します.
@print{}
は印刷された出力を示します.
@error{}
は次のテキストがエラーメッセージだということを示します.
@equiv{}
は,2つの形式が正確に等しいことを示します.
@point{}
はポイントの場所を表示します.
@result{}
(=>): 評価結果を示す表現の評価の結果を示すため@result{}
を使用してください.
こうして,以下のようにします.
(cdr '(1 2 3)) => (2 3)
"(cdr '(1 2 3))
を評価すると(2 3)になる
"と読めるでしょう.
@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個の空白で字下げす
ると,例が良く見えることが多いです.
@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
@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-->
自身はエラーメッセージの一部ではありません.
@equiv{}
(==): 等価を示す2つの表現が同一の結果を生成することもあります.@equiv{}
コマンド
で,2つの形式が正確に同一だということを示すことができます.
このようにします.
@lisp (make-sparse-keymap) @equiv{} (list 'keymap) @end lisp
以下を生成します.
(make-sparse-keymap) == (list 'keymap)
これは,(make-sparse-keymap)
の評価が(list 'keymap)
の評価結果
と同一なものを生成することを示します.
@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
footnoteは,ドキュメントや主要なテキストを説明する参照のためです. 14
Texinfoでは脚注は@footnote
で作成されます.このコマンドは直後に左カッ
コが続き,その後に脚注のテキストが続き,そして終端の右カッコが続きます.脚
注はどのような長さでも可能ですが(必要ならページに跨ります),通常は短いです.
以下はテンプレートです.
通常のテキスト@footnote{脚注のテキスト}
ここで見るように,@footnote
は脚注が付くテキストの直後に,余分な空
白無しにすべきです.そうしない場合,脚注の印は行を開始するでしょう.
例えば,この節は見本の脚注15が続きます. Texinfoソースファイルでは,以下のようになります.
...見本の脚注@footnote{これは見本の脚注です.}が続きます.Texinfoソー ス...
印刷されたマニュアルや本では,脚注の参照マークは小さい,上付き数字です.脚 注のテキストは,ページの底に,水平方向の線の下に現れます.
Infoでは,脚注の参照マークは脚注番号が間にある1組のカッコで,(1)
の
ようになります.参照マークは,脚注のテキストへの相互参照のリンクが続きます.
HTML出力では,脚注参照は小さな上付き数字で,脚注テキストへのハイパーテキス トリンクとなります.
ところで,@table
に対する@item
コマンドの引数の脚注は,(通常
)@item
コマンドと同じ行にする必要があります.See Two-column Tables.
Infoは2つの脚注スタイルがあり,脚注のテキストがある場所を決定します.
Footnotes
が付いた
ダッシュの行で分けられます.それぞれの脚注は(n)
の参照マークで
開始します.
ここに,ノードの終りのスタイルの,1つの脚注の例があります.
--------- Footnotes --------- (1) これは見本の脚注です.
(n)
参照マークが続きます.脚注参照は,実際に
は脚注ノードに到達する相互参照です.
脚注のノード名は,脚注が含むノード名に-Footnotes
を付けて構築さ
れます.(従って,Footnotes
に対する脚注のノードは
Footnotes-Footnotes
です!)脚注ノードは,その親ノードに戻るための,
`Up'ノードポインタがあります.
これは,このマニュアルの最初の脚注が,分かれたノードスタイルで,Infoの書式 化後どのように見えるかを示します.
File: texinfo.info Node: Overview-Footnotes, Up: Overview (1) "Texinfo"の最初の音節は,"hex"ではなく,``speck''のように発音されます. ...
Texinfoファイルは,どちらかの脚注スタイルでInfoファイルに書式化されます.
@footnotestyle
コマンドを,Infoファイルの脚注スタイルを指定するため
に使用してください.このコマンドは行の最初に書き,終りのノードスタイルに対
するend
,または,分割ノードスタイルに対するseparate
を,引数
として続けてください.
例えば,以下のようにします.
@footnotestyle end
または,以下のようにします.
@footnotestyle separate
@footnotestyle
コマンドは,Texinfoファイルの最初に,end-of-header行
の前か直後に書いてください.(@footnotestyle
コマンドが
start-of-headerとend-of-header行の間に含まれる場合,領域の書式化コマンドは
脚注を指定したように書式化します.)
脚注スタイルを指定しない場合,書式化コマンドはデフォルトスタイルを使用しま
す.現在texinfo-format-buffer
とtexinfo-format-region
は
`separate'スタイルを使用し,makeinfo
は`end'スタイルを使用します.
@image
コマンドで,外部ファイルで与えられた画像を挿入できます.
@image{filename, [width], [height]}
filename引数は必須で,異なるプロセッサは異なる書式をサポートするので, 拡張子付けてはいけません.
filename.eps
ファイル(Encapsulated PostScript
format)を読みます.
filename.pdf
ファイル(アドビのPortable Document
Format)を読みます.
makeinfo
はInfo出力に対しfilename.txt
を
(@example
のように)そのまま使用します.
makeinfo
はfilename.png
を試みます.存
在する場合は,filename.jpg
を試みます.どちらも存在しない場合,
警告を出します.(特許のためGIFフォーマットはサポートできません.)
追加のwidthとheight引数は,画像のサイズを指定します(Info出力で は無視されます).どちらも指定されない場合,画像はそのままの大きさで提供さ れます(ファイルで与えられたもの).一方のみが指定された場合,もう一方は比例 して大きさを調整します.両方指定された場合,両方が重視され,このため,縦横 比を変更され元画像が歪む可能性があります.
widthはheightは有効なTeXの寸法単位を使用して指定できます. すなわち以下を使用します.
例えば,以下は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
は図を表示する行で使用することができます.このため,表示しよ
うとした場合,前のテキストに出力が入り込まないように,コマンドの前で残りの
空白行を確認してください.
通常Texinfoファイルは,TeXとInfo書式化コマンドの1つの,両方で処理されま す.行,段落や,ページの分割は,出力のどれかで`間違った'場所で発生すること もあります.印刷されたマニュアルとInfoファイルの両方でテキストが正しく見え るように確認する必要があります.
例えば,印刷されたマニュアルでは,ページの分割は例の途中で不恰好に発生する かも知れません.これを避けるため,テキストを2ページに分割することから守る, グループコマンドを使用してテキストを保つことができます.反対に,通常発生し ない場所で改ページを強制したい場合もあります.幸い,これらの問題は滅多にあ りません.そうするときは,改行や改ページ,改行や改ページ防止や,ページ付け コマンドを使用してください.
改行改ページコマンドは,行や段落の分割を作成または許可します.
@*
@sp n
@-
@hyphenation{hy-phen-a-ted words}
改行を避けるコマンドは,テキストを1行に全て一緒に保ちます.
@w{text}
Infoはページが無いので,ページコマンドは印刷された出力のみで適用されます.
@page
@group
@need mils
@*
: 改行の生成@*
コマンドは,印刷されたマニュアルとInfoの両方で,強制的に改行しま
す.
例えば,以下のようにします.
この行は@* 2箇所で@*分割されます.
以下を生成します.
この行は 2箇所で 分割されます.
(最初の@*
コマンドの後のスペースは次の行にそのまま運ばれることに注
意してください.)
@*
コマンドは,ファイルの著作権ページで良く使用されます.
これは,Texinfoドキュメントのエディション2.0@*, それは...
この場合,@*
コマンドは TeXが醜い方法でページ全体に行を引き延ば
すことを阻止します.
注意してください:@*
コマンドの後にカッコを書かないでくださ い.それらは不要です.
@*
コマンドを含む段落の終りに@refill
コマンドを書かないでく ださい.それは改行の発生後段落を充填し,改行の効果を否定します.
@-
と@hyphenation
: TeXのハイフネーションを助けるTeXのハイフネーションアルゴリズムは一般にかなり良いのですが,時々役に立 つハイフネーションポイントに失敗します.(滅多に無いことですが,間違ったハ イフネーションを挿入します.)そのため,通常の語彙のドキュメントや良く調整 された印刷エディションのため,TeX出力を助けたいと思うかも知れません. Texinfoはこのための2つのコマンドをサポートします.
@-
@-
を含む単語にハイフネーションポイントを挿入しません.
@hyphenation{hy-phen-a-ted words}
-
をそれぞれのハイフネーションポイントに置きます.例えば以下
のようにします.
@hyphenation{man-u-script man-u-scripts}
TeXは,正しく一致した単語のときのみ指定されたハイフネーションポイントを 使用するので,必要な変形を全て与えてください.
Info出力はハイフネーションしないので,これらのコマンドはそこでは意味があり ません.
@w
{text}: 改行を妨げる@w{text}
はtextを出力し,textでの改行を妨げます.
@w
コマンドを,TeXが行の終り付近で発生する,長い名前や文節を自動
的にハイフネーションを避けるために使用することができます.例えば,以下のよ
うにします.
GNUソフトウェアを@w{@samp{ftp.gnu.org}}からコピーできます.
以下を生成します.
GNUソフトウェアをftp.gnu.org
からコピーできます.
同様に,改行されないスペースを生成するためにも@w
を使用できます.
フォーマッタはこの@w{ }スペースを改行しません.
@sp
n: 空白行の挿入@sp n
のみを含むもので始まる行は,印刷されたマニュアルと
Infoファイルの両方で,n個の空白行の空間を生成します.@sp
は段
落の分割も強制します.例えば,以下のようにします.
@sp 2
2行の空白行を生成します.
@sp
コマンドはタイトルページでもっとも良く使用されます.
@page
: 新しいページの開始@page
のみを含む行は印刷されたマニュアルで,新しいページを開始しま
す.このコマンドは,Infoファイルではページが無いので効果がありません.
@page
コマンドは,著作権ページを開始するため,Texinfoファイルの
@titlepage
セクションで良く使用されます.
@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
が無いところを探すことは,良い経験則です.
@need mils
: 改ページを妨げる@need n
のみを含む行は,現在のページの残りがnミル(千分
の1インチ)以下の場合,印刷されたマニュアルで新しいページを開始します.引数
nの周りにカッコを使用しないでください.@need
コマンドは,
Infoはページが無いので,Infoでは効果はありません.
この段落は,ページの残りが800ミル(10分の8インチ)以下の場合,TeXに新しい
ページを開始するよう伝える,@need
コマンドで処理されます.以下のよ
うにします.
@need 800 この段落は,...
@need
コマンドは孤立行(印刷ページの底の単一行)を避けるのに役立ちま
す.
@deffn
コマンドと他の定義コマンドで,関数,変数,マクロ,コマ
ンド,ユーザーオプション,特別な形式と,その他の一様な書式での人工物のよう
なものを記述可能になります.
Infoファイルでは,定義はエンティティのカテゴリ--`関数',`変数'や,あらゆ
るもの--を定義の最初の行の始めに現し,エンティティの名前と引数が続きます.
印刷されたマニュアルでは,コマンドはTeXにエンティティの名前とその引数を
左端のマージンにに印刷させ,カテゴリを次に右端のマージンに印刷させます.両
方の出力形式で,定義の本体は字下げされます.同様に,エンティティ名は適切な
索引に入ります.@deffn
は関数索引に名前が入り,@defvr
は変数
索引に入る等のようになります.
マニュアルは,与えられた名前に対し1つ以上の定義は不要で含めるべきではあり
ません.概要を含む付録は,定義コマンドより@table
を使用すべきです.
@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
のように動作します.
オプションや繰り返しの引数を取るエンティティもあり,それは角カッコと丸カッ コを使用する特有なglyphで指定されるかも知れません.例えば,特別な形式 は,引数リストを,簡単な関数より複雑な方法で分けられた引数に区切ることも良 くあります.
ここに想像上の,特別な形式の例の@defspec
の行があります.
foobar (var [from to [inc]]) body... Special Form
この例では,引数fromとtoがオプションですが,両方有るまたは両方 無い必要が有ります.それらが有る場合,incは同様にオプションで指定で きます.これらの引数は,bodyと分けるため,リストに引数varでま とめられ,それは形式の残りの全ての要素を含みます.
Texinfoソースファイルでは,この@defspec
行は以下のように書かれます
(この例のように2行以上には分かれません).
@defspec foobar (@var{var} [@var{from} @var{to} [@var{inc}]]) @var{body}@dots{}
関数はコマンドと変数の索引でfoobar
の下にリストアップされます.
定義に対し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
,を参照してください.
Texinfoは1ダース以上の定義コマンドを供給し,それら全てをこのセクションで記 述します.
定義コマンドは,自動的にエンティティ名を適切な索引に入れます.例えば,
@deffn
,@defun
と,@defmac
は関数の索引に関数名を入
れます.@defvr
と@defvar
は変数の索引に変数名を入れます.
以下のほとんどの例はLispの例ですが,コマンドは他のプログラミング言語でも使 用可能です.
このセクションは関数や類似のエンティティの記述のためのコマンドを記述します.
@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
これは,引数がsymbolとnew-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
のように動作します.
ここに,変数と類似のエンティティを定義するためのコマンドがあります.
@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
@defvr
はnameに対し,変数索引の項目を作成します.
@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
のように働きます.
@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
を引数名の周りに明示的に書く必要があります.上の例では,引
数名はfoo
とbar
です.
@deftypefn
のテンプレートは以下の通りです.
@deftypefn category data-type name arguments ... body-of-description @end deftypefn
categoryやdata 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
で,その引数はsと
nです.)
@deftypefn
はnameに対し関数索引に項目を作成します.
@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
@deftypefun
はnameに対し関数索引に項目を作成します.
型のある言語の変数は,型のある言語の関数に似た方法で処理されます.
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に対し,変数索引の項目を作成します.
ここに,オブジェクト指向プログラミングで使用するような,抽象的なオブジェク トに関する記述を書式化するためのコマンドがあります.クラスは抽象的なオブジェ クトの定義された型です.クラスのインスタンスはクラスの型を持つ特定のオブジェ クトです.インスタンス変数はクラスに属するがそれぞれのインスタンスが独自の 値を持つ変数です.
定義では,クラス名はクラスに対するプログラミングシステムで本当に定義された
名前の場合,@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-class
のbar-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パラメータを追加し
たものに似ています.
ここにデータの型に対するコマンドがあります.
@deftp category name attributes...
@deftp
コマンドは,データの型のための一般的な定義コマンドです.その
コマンドは行の最初に書かれ,同じ行にカテゴリ,型の名前(int
や
float
のようなもの),そして型のオブジェクトの属性名が続きます.この
ように,このコマンドをint
やfloat
を記述するために使用すること
ができ,その場合,カテゴリとしてdata type
を使用することができます.
(データの型は,オペレーションがそれに対し実行されることが可能なように決定
する目的に対する,特定のオブジェクトのカテゴリです.)
例えば,Lispでは,pairは特定のデータの型に名前を付け,その型のオブジェ
クトはCARとCDRと呼ばれる2つのスロットを持ちます.ここに,
pair
の定義の最初の行を書く方法があります.
@deftp {Data type} pair car cdr ... @end deftp
テンプレートは以下の通りです.
@deftp category name-of-type attributes... body-of-definition @end deftp
@deftp
はデータの型の索引に項目を作成します.
@deffn
,@defun
やその他の定義コマンドの1つを使用し定義を書
くとき,forward-word
関数に対するcount引数のように意味を示す,
引数の使用に注意してください.同様に,integerのように引数名が型名を
含む場合,引数が実際にその型であるよう注意してください.
関数定義は,@defun
と@end defun
を使用します.関数名は
@defun
コマンドの直後に続き,同じ行にパラメータリストが続きます.
ここにCalling Functions,からの定義があります.
apply function &rest arguments Function
apply
はargumentsでfunctionを呼び出し,funcall
に 似ていますが,1点異なります.argumentsの終りは,functionに与え られた単一の引数というよりはむしろ引数のリストです.同様に我々は,このリス トが他の引数に加えられるとも言っています.
apply
はfunction呼び出しの結果を返します.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
の下のコマンドと変数索引にリスト
アップされています.
通常の変数とユーザーオプションは,変数が引数を取らない以外,関数に対するも のに似た書式を使用し記述されます.
異なる出力書式に対し,異なるテキストを使用するのが良いこともあります.例え ば,印刷されたマニュアルとInfo出力に対し異なるテキストを指定する,条 件コマンドを使用することができます.
条件コマンドはネストできません.
条件コマンドは,以下のカテゴリを含みます.
@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つのみ見えることに注 意してください.
@ifnot...
コマンドで与えられたもの以外の,あらゆる出力書式に含
まれるテキストを指定できます.
@ifnothtml ... @end ifnothtml @ifnotinfo ... @end ifnotinfo @ifnottex ... @end ifnottex
(@ifnot...
コマンドと@end
コマンドは,実際には単独行で現
します.)
出力ファイルが与えられた書式のために作成されていない場合,その領域は含みま す.それ以外の場合,無視されます.
これらのコマンドで限定された領域は,@tex
で使用したような生のフォー
マッタソースではなく,@iftex
で使用したような通常のTexinfoソースで
す(see Raw Formatter Commands).
@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
は認識されます.)
@set
,@clear
と,@value
@set
,@clear
,@ifset
と,@ifclear
を用いて,
直接Texinfo書式化コマンドにTexinfoファイルの一部を書式化させたり無視させた
りできます.
更に,@set flag
コマンドを,文字列にflagの値を設定する
ために使用できます.そして,文字列を挿入するために
@value{flag}
を使用することができます.例えば,日付を設定す
るために@set
を使用し,Texinfoファイルの様々な場所に日付を挿入する
ため@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
@clear flag
@ifset flag
@end ifset
コマンドまでのテキストを書式化するよう伝えます.
flagがクリアされている場合,Texinfo書式化コマンドに,それに続く
@end ifset
コマンドまでのテキストを無視するよう伝えます.
@ifclear flag
@end ifclear
コマンドまでのテキストを無視するよう伝えます.
flagがクリアされている場合,Texinfo書式化コマンドに,それに続く
@end ifclear
コマンドまでのテキストを書式化するよう伝えます.
@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.
@value
の例@value
コマンドを,マニュアル更新時に変更する必要がある部分の数を制
限するために使用することができます.ここにThe GNU Make Manualで行っ
た例があります.
@set EDITION 0.35 Beta @set VERSION 3.63 Beta @set UPDATED 14 August 1992 @set UPDATE-MONTH August 1992
@ifinfo
セクションのためにテキス
トを書きます.
This is Edition @value{EDITION}, last updated @value{UPDATED}, of @cite{The GNU Make Manual}, for @code{make}, version @value{VERSION}.
@title GNU Make @subtitle A Program for Directing Recompilation @subtitle Edition @value{EDITION}, ... @subtitle @value{UPDATE-MONTH}
(印刷されたカバーでは,月と年をリストアップした日付は,月と年のようにその 日をリストアップした日付より曖昧に見えません.)
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つのセクショ ンを編集する必要はありません.
Texinfoは,英語以外の言語で書くためのサポートもありますが,この領域は,ま だ重要な仕事を必要とします.
Texinfoがサポートする,さまざまなアクセントと特別な文字のリストは, Inserting Accents,を参照してください.
@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 |
|
@documentencoding enc
:入力エンコードのセット@documentencoding
コマンドは,入力ドキュメントのエンコードを宣言し
ます.単独行に,ISO-8859-1
のような有効なエンコード指定を続けて書い
てください.
現在,これはmakeinfo
のHTML出力のみで使われます.ドキュメントエンコー
ドencが指定された場合,<meta>
タグで出力の<head>
に含め
られます.
<meta http-equiv="Content-Type" content="text/html; charset=enc">
Texinfoは,新しいコマンドを定義する様々なコマンドを提供します.
さらに,これらのマクロは@defmac
コマンドと関係が無く,それは,マニュ
アルのサブジェクトでドキュメント化されるマクロです(see Def Cmd Template).
@alias
は,既存のコマンドに対する新しい名前を定義する便利な方法です.
@definfoenclose
で,Infoファイルのカスタマイズされた出力で新しいコ
マンドの定義が可能です.
マクロを定義するため,以下のようにTexinfoの@macro
コマンドを使用し
ます.
@macro macroname{param1, param2, ...} text ... \param1\ ... @end macro
パラメータのparam1,param2,...は,後でマクロをドキュ メントで使用する時(次のセクションで記述します)に供給される引数に対応します.
マクロが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
マクロの定義後(前のセクションを参照してください),以下のようにドキュメント で使用(呼び出し)できます.
@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.
TeXとmakeinfo
のインプリメントでの避けられない相違のため,
Texinfoマクロは以下の制限があります.
@ifinfo @macro ctor {name, arg} @macro \name\ something involving \arg\ somehow @end macro @end macro @end ifinfo @tex \gdef\ctor#1{\ctorx#1,} \gdef\ctorx#1,#2,{\def#1{something involving #2 somehow}} @end tex
@alias new=existing
@alias
コマンドは,新しいコマンドを既存のものと同じように定義します.
これは追加のマークアップ名の定義に便利で,このため出力結果が同じであっても,
入力の意味論的な情報を維持します.
@alias
コマンドを単独行に書き,新しいコマンド名,等号,そして既存の
コマンド名を続けてください.等号の周りの空白は無視されます.このようにしま
す.
@alias new = existing
例えば,ドキュメントが本と他のメディア(例えば動画)の両方への引用を含んでい
る場合,通常の@cite{}
と同じことを行いますが,同じような余分な意
味論的情報をもたらすマクロ@moviecite{}
を定義したい可能性がありま
す.このため以下のようにします.
@alias moviecite = cite
気まぐれな引数の解析のため,マクロは常に同じ結果となるわけではありません. また,別名はマクロより定義が簡単です.そのため,コマンドは重複しません. (また,専門語ファイルで大量に使用されました!)
別名は,直接的や間接的に,再帰的してはいけません.
definfoenclose
: 強調のカスタマイズ@definfoenclose
コマンドは,Infoのためで,TeXのためではない,強
調コマンドの定義に使用される可能性があります.@definfoenclose
で定
義されたコマンドは,前後のテキストの文字列内の,それで囲んだテキストをマー
クします.Info出力のより近い制御を得るためこれを使用することもできます.
おそらく,Infoに対し@definfoenclose
でコマンドを定義する場合,
texinfo.tex
,texinfo.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-buffer
や
texinfo-format-region
に対するものです.@definfoenclose
コマ
ンドは@ifinfo
内に置く必要はありませんが,生のTeXコマンドは
@iftex
内に置く必要があります.
ここにもう1つの例があります.
@definfoenclose headword, , :
@headword
の引数の前には何も置かず,後にコロンを挿入するInfo書式化
コマンドとして@headword
を定義するために,ファイルの最初の方に書い
てください.
@definfoenclose
定義は,直接的または間接的に,再帰的にできません.
Texinfoファイルから印刷されたマニュアルを作るため,3つの主なシェルコマンド があります.1つは,Texinfoファイルを印刷されるファイルに変換するもので, 2つ目は索引をソートするもので,3つ目は書式化されたドキュメントを印刷するも のです.シェルコマンドを使うとき,オペレーティングシステムのシェルで直接実 行したり,GNU Emacs内部のシェルで実行したりできます.
GNU Emacsを使う場合,シェルコマンドの代わりにTexinfoモードで供給されるコマ ンドを使うことができます.ファイルを書式化したり,索引をソートしたり,結果 を印刷したりする3つのコマンドの加え,Texinfoモードは,出力バッファを更新し たり,印刷のキューを表示したり,印刷キューからジョブを削除したりするコマン ドに対するキーバインドを提案します.
TeXと呼ばれる植字プログラムは,Texinfoファイルの書式化に使用します. TeXは非常に強力な植字プログラムで,正しく使用すると,非常に良い仕事をし ます.(TeXの入手方法の詳細は,See How to Obtain TeX.)
makeinfo
,texinfo-format-region
と,
texinfo-format-buffer
コマンドは,TeXのように,Texinfoファイルの
@-コマンドを,全く同じように読み込みますが,Infoファイルの作成とは異なる
処理を行います(see Creating an Info File).
tex
とtexindex
での書式化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.cp
,foo.vr
,foo.fn
,
foo.tp
,foo.pg
とfoo.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ステップの処理です.
tex
を実行してください.これは(相互参照が定義されて
おらず,索引のない)DVIファイルと,(2文字の拡張子を持つ)生の索引ファイルを
生成します.
texindex
を実行してください.これで,適切にソート
された(3文字の拡張子の)索引ファイルを生成します.
tex
を再びTexinfoファイルで実行してください.これでDVIファイルを生成
し,索引と定義された相互参照はこのとき再生成しますが,相互参照のページ番号
は一般に正しくないので最後に再生成します.
texindex
で再び索引をソートしてください.
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
で有効に停止します.
texi2dvi
での書式化texi2dvi
コマンドは,自動的にtex
とtexindex
の両方を,ソー
トされた索引や相互参照が解決されているDVIファイルを生成するのに必要な回数
実行します.それは,前のセクションで記述された,
tex
--texindex
--tex
--tex
の順番で単純化されて
います.
入力ファイルfoo.texi
でtexi2dvi
を実行するため,以下のようにし
てください(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
を実行してください.
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ファイルを印刷する代わりの方法があります.
lpr
プログラムや,そのクローンを見つけてインストールして
ください.そうする場合,DVIファイルを上記のようなスクリプトで印刷できます.
lpr
のバージョ
ンが,特別のキューにファイルを送るため,以下のような特別なオプションがあり
ます.
lpr -Qdvi -hprint.server.domain bison.dvi
dvilj
のmanページを参照してください.DVIファイルを
ローカルプリンタが直接理解できる書式に変換してから,通常はPRN
である
適切なポートそれを送ってください.
書式化と印刷のコマンドを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
Texinfoモードは,TeXの書式化と印刷のための前もって定義されたキーコマン ドをいくつか供給します.これらは,索引のソート,プリンタキューを見ること, 書式化ジョブの停止と,オペレーションが発生させているバッファの表示の更新の コマンドを含みます.
texi2dvi
を実行します.
texinfo-tex-region
で書式化されたTexinfoファイルの索引をソートします.
texinfo-tex-region
やtexinfo-tex-buffer
で作成されたDVIファ
イルを印刷します.
texinfo-show-tex-print-queue
)で調べたジョブ番号の入力を促されます.
texinfo-tex-region
やtexinfo-tex-buffer
で開
始されたTeXジョブや,Texinfoシェルバッファで実行している他のあらゆるプ
ロセスを停止します.
.log
ファイルに維持します.
このように,バッファを書式化するコマンドの通常の順序は,以下のようになり ます(右はコメントです).
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-command
,
texinfo-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
グ
ループで見つかります.
TeX書式化コマンドをTexinfoファイルに適用するための,更にもう1つの方法は,
Texinfoファイルの終りで,ローカル変数リストにそれらのコマンドを置く
方法です.tex
やtexi2dvi
コマンドをcompile-command
のコ
マンドとして指定し,M-x compileの入力でEmacsに実行させることができま
す.これで*compilation*
バッファと呼ばれる特別なシェルを作成し,その
中でEmacsはコンパイルコマンドを実行します.例えば,gdb.texinfo
ファ
イルの終りに,@bye
の後で,以下を置くことができます.
Local Variables: compile-command: "texi2dvi gdb.texinfo" End:
この手法は,この方法でプログラムをコンパイルするプログラマが,最もよく使 用します.Compilation,を参照して ください.
TeXに入力される,全てのTexinfoファイルは,\input
コマンドで始まり,
@setfilename
コマンドを含む必要があります.
\input texinfo @setfilename arg-not-used-by-TeX
最初のコマンドは,TeXにTexinfoファイルの処理に必要なマクロをロードする よう指示し,2番目のコマンドは補助ファイルを開きます.
全てのTexinfoファイルは,TeXの処理を終了し,未完成のページを強制排出す る行で終る必要があります.
@bye
厳密にいうと,これらの行は全てのTexinfoファイルを,TeXで成功裏に処理す るため必要な全てです.
しかし通常は,最初に印刷されたマニュアルのタイトルを定義する
@settitle
コマンド,@setchapternewpage
コマンド,タイトルペー
ジ,著作権ページと,許可を含みます.@bye
の他に,ファイルの終りは通
常,索引と目次を含みます.(そして,もちろんほとんどのマニュアルは本文も同
様に含みます.)
詳細は,以下を参照してください.
@settitle
.
@setchapternewpage
.
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.tex
をtexinfo.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.tex
と
texinfo.cnf
(とその他のTeXが読み込むもの)の両方を働かせるもう1つ
の方法は,TEXINPUTS
環境変数を.cshrc
や.profile
ファイル
でセットすることです.
.cshrc
または.profile
のどちらを使用するかは,Bourneシェル互換
(sh
,bash
,ksh
,...),またはCシェル互換
(csh
,tcsh
)のコマンドインタプリタのどちらを使用しているかに
依存します.後者は,.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
です.
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
デフォルトで,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,を参
照してください.
ヨーロッパサイズの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
もあります.
@pagesizes
[width][, height]:カスタムページサイズページの主なテキストの領域の高さと(オプションで)幅を,@pagesizes
コ
マンドで明示的に指定できます.Texinfoの最初付近で,タイトルページの前に,
単独行で書いてください.最初が高さで,要求があれば幅を,カンマで区切って書
きます.以下が例です.
@pagesizes 200mm,150mm
そして,
@pagesizes 11.5in
これは,B5サイズの用紙への印刷に対し妥当です.強調しますが,このコマンドは テキストエリアを指定するコマンドで,用紙サイズを指定しません (250mmx177mmはB5で,14inx8.5inはleagalです).
ページのマージンを変更するような,より精密な変更のため,
texinfo.tex
(または,texinfo.cnf
see Preparing for TeX)で新しいコマンドを定義する必要があります.
ソースファイルを変更せず@pagesizes
を指定する方法は,See Format with texi2dvi. またPreparing for TeX,を参
照してください.
@pagesizes
はmakeinfo
では無視されます.
@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ファイルは,印刷でき
なかったり,特定の拡大率でしか印刷できなかったりします.試してみたください.
普通の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サポートはかなり基本的です.
この章は,Infoファイルの作成とインストール方法を述べます.ファイルの書式 自身の一般的な情報は,See Info Files.
makeinfo
は,TexinfoファイルをInfoファイル,HTMLファイルや,プレーン
テキストに変換するプログラムです.texinfo-format-region
と,
texinfo-format-buffer
は,TexinfoをInfoに変換する,GNU Emacsの関数で
す.
InfoファイルをInfoシステムにインストールする情報は,see Install an Info File.
makeinfo
provides better error checking.
makeinfo
from a shell.
makeinfo
from Emacs.
makeinfo
.
makeinfo
の利点makeinfo
ユーティリティは,Emacs書式化コマンドより速く,Texinfoソー
スファイルからInfoファイルを作成し,より良いエラーメッセージを供給します.
我々はそれを勧めます.makeinfo
はEmacsと独立したCプログラムです.
makeinfo
を使うためEmacsを実行する必要はなく,それは,Emacsを実行す
るには余りに小さいマシンで,makeinfo
を実行できることを意味します.
makeinfo
は,3つの内の1つの方法で実行できます.それらは,オペレーティ
ングシステムのシェルから,Emacsのシェルからや,EmacsのTexinfoモードで,
C-c C-m C-rやC-c C-m C-bコマンドを入力する方法です.
texinfo-format-region
とtexinfo-format-buffer
コマンドは,
makeinfo
を実行できないとき役に立ちます.また,状況によって,短い領
域やバッファを,makeinfo
より速く書式化します.
makeinfo
を実行するTexinfoファイルからInfoファイルを作成するため,makeinfo
に続けて,
Texinfoファイルの名前を入力してください.このように,BisonのInfoファイルを
作成するため,シェルで,以下のように入力します.
makeinfo bison.texinfo
(M-x shellの入力で,Emacs内部でシェルを実行できます.)
makeinfo
のオプションmakeinfo
コマンドは,いくつかのオプションをとります.最も良く使われ
るオプションは,一行の文字数の値をセットするためと,脚注スタイルを指定する
ために使用するものです.それぞれのコマンド行のオプションは,--
を前
に置いた単語,または,-
を前に置いた文字です.長いオプション名は,唯
一に決まる程長い場合は省略可能です.
例えば以下のシェルコマンドで,それそれの行の文字列を68文字で補充します,
bison.texinfo
のためのInfoファイルを作ることができます.
makeinfo --fill-column=68 bison.texinfo
2つ以上のオプションを,以下のように続けて書くことができます.
makeinfo --no-split --fill-column=70 ...
これは,Infoファイルを,1つの,おそらく大変長いファイルにまとめ,一行の 文字数を70文字にセットします.
オプションは,以下のとおりです.
-D var
@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
--html
では無視されます.
--footnote-style=style
-s style
end
,または,ノードを分ける形式のseparate
のいずれかです.こ
のオプションでセットした値は,Texinfoファイルで,@footnotestyle
コ
マンド(see Footnotes)でセットした値に優先します.脚注形式が
separate
のとき,makeinfo
は,現在のノードで見つかった脚注を含
む新しいノードを作成します.脚注形式がend
のとき,makeinfo
は,
現在のノードの終りに脚注の参照を置きます.--html
では無視されます.
--force
-F
--help
-h
--html
-I dir
@include
コマンドを使ってインクルードしているファイルを見つけるため
のディレクトリ検索リストに,dirを追加します.デフォルトで,
makeinfo
は,カレントディレクトリのみを探します.dirが与えられ
ない場合,カレントディレクトリ.
が追加されます.dirでは,通常
のパスを分ける文字(Unixの:
,MS-DOS/MS-Windowsの;
)で分けられ
た,複数のディレクトリのリストを,実際に使うことができることに,注意してく
ださい.
--macro-expand=file
-E file
makeinfo
内部で使われ削除されます.こ
のオプションは,@macro
をサポートしていない,古いバージョンの
texinfo.tex
を使っている場合に,texi2dvi
で使われます.
--no-headers
--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
--number-sections
--no-number-footnotes
makeinfo
は,単一
ノード内のそれぞれの脚注に順番に番号付けを行い,それぞれのノードの開始時に,
現在の脚注番号を1にリセットします.
--output=file
-o file
@setfilename
コマンドで指定した
ファイル名ではなく,fileに指定します(see setfilename).
fileが-
の場合は出力は標準出力になり,--no-split
が暗
黙に指定されます.分けられたHTML出力で,fileはトップノードの出力ファ
イル名になります(see makeinfo html).
-P dir
@include
に対するディレクトリ検索リストの前に,dirを追加しま
す.dirが与えられない場合,カレントディレクトリ.
が前に追加さ
れます.詳細は-I
を参照してください.
--paragraph-indent=indent
-p indent
@paragraphindent
コマンドでセットした値に優先
します(see paragraphindent).indentの値は,以下のように解釈され
ます.
asis
0
or none
--reference-limit=limit
-r limit
makeinfo
が警告の報告無しで作成するノード参照の数字の値をセットしま
す.ノードがこの数字以上の参照がある場合,makeinfo
は参照を作成しま
すが警告を報告します.デフォルトは1000です.
-U var
@clear
var
と同じです(see set clear value).
--verbose
makeinfo
に,行っていることのメッセージを表示させます.通常
makeinfo
は,エラーや警告がある場合のみメッセージを出力します.
--version
-V
--no-validate
オプションや,ソースファイルでの@novalidate
コ
マンド(see Use TeX)で,ポインタの一貫性を抑制しない場合,
makeinfo
は,最終的なInfoファイルの一貫性を調べます.ほとんど,これ
は,参照したノードが本当に存在していることを確かめることを意味します.ここ
に調べるものの完全なリストがあります.
(dir)
のような外部での参照ではない場合,参照されるノードは存在するは
ずです.
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
は効
果がありません.
makeinfo
の実行makeinfo-region
やmakeinfo-buffer
コマンドを使うと,GNU
Emacs Texinfoモードでmakeinfo
を実行できます.Texinfoモードでは,コ
マンドはデフォルトで,C-c C-m C-rとC-c C-m C-bにバインドされて
います.
makeinfo-region
やmakeinfo-buffer
を呼び出すとき,Emacsはファ
イル名のためプロンプトを出し,デフォルトとして訪問されたファイルの名前を提
示します.希望があれば,makeinfo
処理を始める<RET>を押す前に,ミ
ニバッファのデフォルトファイル名を編集できます.
Emacsのmakeinfo-region
とmakeinfo-buffer
コマンドは,一時的な
シェルバッファで,makeinfo
プログラムを実行します.makeinfo
が
エラーを見つけた場合,Emacsはエラーメッセージを一時的なバッファに表示しま
す.
C-x `(next-error
)の入力で,エラーメッセージを解析できます.こ
れでEmacsは,makeinfo
がエラーとしたTexinfoソースの行にカーソルを移
動します.next-error
コマンドの使用の詳細は,See Compilation.
さらに,makeinfo
コマンドを実行しているシェルを殺したり,シェルバッ
ファに最新の出力を表示させたりできます.
makeinfo-region
やmakeinfo-buffer
から)makeinfo
を実行
している,現在のジョブを殺します.
makeinfo
シェルバッファを再表示します.
(TeXジョブを殺したり再表示したりする類似のコマンドが,C-c C-t C-kとC-c C-t C-lだと言うことに注意してください.See Texinfo Mode Printing.)
M-x edit-optionsやM-x set-variableコマンドで
makeinfo-options
変数をセットすることや,.emacs
初期化ファイル
で変数をセットすることで,makeinfo
に対するオプションを指定できます.
例えば,以下のように.emacs
ファイルに書きます.
(setq makeinfo-options "--paragraph-indent=0 --no-split --fill-column=70 --verbose")
texinfo-format...
コマンドGNU EmacsのTexinfoモードで,texinfo-format-region
コマンドを使って,
Texinfoファイルの一部または全体を書式化できます.これは,現在の領域を書式
化し,*Info Region*
と呼ばれる一時的なバッファに書式化されたテキスト
を表示します.
同様に,texinfo-format-buffer
コマンドでバッファを書式化します.この
コマンドは新しいバッファを作成し,その中にInfoファイルを生成します.
C-x C-sと入力すると,Texinfoの最初の方の@setfilename
行で指定
された名前でInfoファイルを保存します.
texinfo-format-region
texinfo-format-buffer
texinfo-format-region
とtexinfo-format-buffer
コマンドは,い
くつかのエラー調査を提供し,他の関数は,書式化のエラーを見つけるそれ以上
の助けとなるものを提供するはずです.これらの手続きは付録で記述されていま
す.Catching Mistakes,を参照してください.しかし,makeinfo
プログラムはより速い場合が多く,より多くのエラーチェックを提供します
(see makeinfo in Emacs).
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-region
や
texinfo-format-buffer
を実行するとき,コマンドが終了するまで他のこと
のためEmacsを使うことはできません.)
Texinfoファイルが30,000バイト以上の場合,texinfo-format-buffer
は
Infoファイルに対し自動的にタグ表を作成します.makeinfo
は,常にタグ
表を作成します.タグ表でInfoは,新しいノードへ他より速く移動できます.
さらに,Texinfoファイルが70,000バイト以上の場合,
texinfo-format-buffer
とmakeinfo
は,大きな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-1
,
test-texinfo-2
と,test-texinfo-3
は,このファイルの
Indirect:
以下の行でリストアップされます.タグ表は,Tag
table:
以下の行でリストアップされます.
間接的なファイルのリストでファイル名に続く番号は,前の間接的なファイルに累 積バイト数を記録し,ファイルリスト自身の数や,タグ表や,それぞれのファイル の許可テキストは記録しません.タグ表で,ノード名に続く数は,ノードの開始位 置を(分けられていない)出力の最初からのバイトを記録します.
Infoファイルを作成するため,texinfo-format-buffer
を使っている場合,
Info-validate
コマンドを実行したくなるかも知れません.
(makeinfo
コマンドは,それ自身良い仕事をし,Info-validate
は
不要です.)しかし,M-x Info-validateノードチェックコマンドを,間接
ファイルでは使用できません.ファイルを分けることを避ける方法や,ノードの
構造の有効化の方法の情報は,Using Info-validate,を参照してください.
通常の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
が@xref
Infoファイル名に追加されます.これは,
おそらく働かないことが多いでしょう.
Infoファイルは,通常info
ディレクトリに置かれます.Infoファイルを,
スタンドアローンのInfoプログラムや,Emacs組込みのInfoリーダーを使って読む
ことができます.(Infoの紹介は,see info.)
install-info
options.
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
の場合のみ特別です.
新しい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
だけを使うべきです.
Infoファイルがinfo
ディレクトリに無い場合,その場所を指定する3つの方
法があります.
dir
ファイルで,メニューの2番目の部分にパス名を書いてください.
dir
にファイル名を
リストアップしてください.そして,個人やサイトの初期化ファイルで,
Info-directory-list
変数にそのディレクトリ名の指定を加えてください.
この変数は,Emacsにdir
ファイルを探す場所を伝えます(ファイルは
dir
と名付ける必要があります).Emacsは,それぞれリストアップされたディ
レクトリからの,dir
と名付けられたファイルをマージします.(Emacsバー
ジョン18では,Info-directory
変数で,1つのディレクトリの名前しかセッ
トできません.)
.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に探す場所を伝えることができます.シェルコマンドインタプリタとして
sh
やbash
のようなBourne互換シェルを使う場合,
INFOPATH
環境変数を.profile
初期化ファイルでセットします.しか
し,csh
やtcsh
を使う場合,.cshrc
初期化ファイルで変数を
セットします.MS-DOS/MS-Windowsシステムでは,INFOPATH
を
autoexec.bat
ファイルかレジストリでセットする必要があります.それぞ
れのシェルで構文は異なります.
.cshrc
ファイルで,INFOPATH
変数を以下のようにしてセットします.
setenv INFOPATH .:~/info:/usr/local/emacs/info
.profile
ファイルに以下を書くことで,同じ効果を得ます.
INFOPATH=.:$HOME/info:/usr/local/emacs/info export INFOPATH
autoexec.bat
ファイルで,以下のコマンドを書きます.18
set INFOPATH=.;%HOME%/info;c:/usr/local/emacs/info
.
は,通常カレントディレクトリを示します.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-list
やINFOPATH
で利用する独自のdir
ファイ
ルを作るとき,既存のdir
ファイルをコピーから初め,* Menu:
以下
のテキストを必要な項目で置換するのがもっとも簡単な方法です.その方法では,
Infoが必要とする句読点と特別なCTRL-_文字は存在します.
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'ノードを含め,マニュアルの項目を全体
として適切な他のカテゴリーに含めます.
install-info
は,Infoファイルから,Infoシステムのトップレベルの
dir
ファイルにメニュー項目を挿入します(dir
ファイルの働きの説
明は,前のセクションを参照してください).それは,ソフトウェアのインストー
ルの一部として,また,システムのマニュアル全体に対し,dir
ファイルを
構築するときよく実行されます.以下が概要です.
install-info [option]... [info-file [dir-file]]
info-fileやdir-fileを指定しない場合,(以下で述べる)それらを定
義するオプションが必要です.コンパイル時のデフォルトは無く,標準入力は使い
ません.install-info
は,呼び出し毎に,1つのInfoファイルのみ読み込み,
1つのdir
にのみ書き込みます.
dir-file(が指定されていても)存在しない場合,可能なら
install-info
は(項目の無い)それを作成します.
入力ファイルが,gzip
で圧縮されている場合(see Invoking gzip),install-info
は自動的に読み込みのため解凍します.
そして,dir-fileが圧縮されている場合も,install-info
は自動的
に変更を書き込んだ後,圧縮された状態にします.dir-file自身が無い場合,
install-info
はdir-file.gz
を開こうとします.
オプションです.
--delete
.info
は例外です).新しい項目は挿入しません.
--dir-file=name
-d name
--entry=text
-e text
--help
-h
--info-file=file
-i file
--info-dir=dir
-D dir
dir
が位置するディレクトリを指定します.
--dir-file=dir/dir
と同じです.
--item=text
--entry=text
と同じです.Infoディレクトリ項目は,実際にはメニュー
項目です.
--quiet
--remove
-r
--delete
と同じです.
--section=sec
-s sec
--version
-V
以下にTexinfoのアルファベット順の@-コマンドリストがあります.角カッコ
[ ]はオプションの引数を示します.省略...
は,繰り返
しテキストを示します.
@whitespace
@
に続くスペース,タブや,改行は,通常の伸縮可能な単語を区切る空白
を生成します.See Multiple Spaces.
@!
@"
@'
@*
@refill
コマンドで,@*
を使う段落を終了させ
ないでください.See Line Breaks.
@,{c}
@-
@.
@:
@=
@?
@@
@
という印を意味します.See Inserting @ and braces.
@^
@`
@{
{
を意味します.See Inserting @ and braces.
@}
}
,@~
@AA{}
@aa{}
@acronym{abbrev}
acronym
.
@AE{}
@ae{}
@afourlatex
@afourpaper
@afourwide
@alias new=existing
@existing
のエイリアスとして,新しいコマンド
@new
を作成します.See alias.
@anchor{name}
@anchor
.
@appendix title
@unnumbered
and @appendix
Commands.
@appendixsec title
@appendixsection title
@appendixsection
は@appendixsec
コマンドの長い綴のものです.
See Section Commands.
@appendixsubsec title
@appendixsubsubsec title
@asis
@table
,
@ftable
と@vtable
に続けて使用します.See Making a Two-column Table.
@author author
@title
and @author
Commands.
@b{text}
@bullet{}
@bullet
.
@bye
@bye
コマンドに続くファイル
の内容を見ません.See Ending a File.
@c comment
@comment
の同義語です.See Comments.
@cartouche
@end cartouche
とペア
になります.Infoでは効果はありません.See Drawing Cartouches Around Examples.
@center line-of-text
@center
.
@centerchap line-of-text
@chapter
に似ていますが,章のタイトルをセンタリングします.
See @chapter
.
@chapheading title
@majorheading
and @chapheading
.
@chapter title
@chapter
.
@cindex entry
@cite{reference}
@cite
.
@clear flag
@ifset flag
と@end ifset
の組の
間のテキストの書式化するのを妨げるためと,@value{flag}
が
flagが設定した値の拡張するのを妨げるため,flagを解除します.
See @set
@clear
@value
.
@code{sample-code}
@code
.
@command{command-name}
ls
のような,コマンド名を示します.See @command
.
@comment comment
@c
と同義語です.See Comments.
@contents
@copyright{}
@copyright
.
@defcodeindex index-name
@code
フォントで項目を印刷し
ます.See Defining New Indices.
@defcv category class name
@defcvx category class name
@deffn category name arguments...
@deffnx category name arguments...
@deffn
は引数として,記述されるエンティティのカテゴリ,この特定のエ
ンティティの名前と,そのあらゆる引数を,引数とします.See Definition Commands.
@defindex index-name
@definfoenclose newcmd, before, after,
@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
は,カテゴリー,型名
(int
やfloat
のような単語)と,その型のオブジェクトの属性名を
引数とします.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
@deftypemethod class data-type method-name arguments...
@deftypemethodx class data-type method-name arguments...
@deftypeop category class data-type name arguments...
@deftypeopx category class data-type name arguments...
@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
@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}
@dfn
.
@dircategory dirpart
@direntry
@end
direntry
と組になります.See Installing Dir Entries.
@display
@example
に似ていますが(テキストを字下
げし,全体に広がらない)新しいフォントを選択しません.@end
display
と組になります.See @display
.
@dmn{dimension}
@dmn
.
@documentencoding enc
@documentencoding
.
@documentlanguage CC
@documentlanguage
.
@dotaccent{c}
@dots{}
...
を挿入します.See @dots
.
@email{address[, displayed-text]}
@email
.
@emph{text}
@end environment
@end example
のように終了します.
See @-commands.
@env{environment-variable}
PATH
のような環境変数名を示します.See @env
.
@enddots{}
@dots{}
.
@enumerate [number-or-letter]
@item
を使用するそれぞれの項目に対し,番号付のリストを開始します.
オプションでnumber-or-letterを用いたリストを開始します.
@end enumerate
と組になります.See @enumerate
.
@equiv{}
==
のように,2つ形式が正確に等しいことを読者に示
します.See Equivalence.
@error{}
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]
@example
@end example
と組になります.See @example
.
@exampleindent indent
@exclamdown{}
@exdent line-of-text
@expansion{}
==>
で,マクロ拡張の結果を読者に示します.
See ==> Indicating an Expansion.
@file{filename}
@file
.
@finalout
@findex entry
@flushleft
@flushright
@end flushleft
と組にします.@flushright
の同義語です.
See @flushleft
and @flushright
.
@footnote{text-of-footnote}
@footnotestyle style
end
は終りに置くノード形式で,
separate
は分割したノード形式です.See Footnotes.
@format
@display
に似ていますが,マージンは狭くなりませ
ん.@end format
と組にします.See @example
.
@ftable formatting-command
@item
を使用した2行の表を開始します.それぞれ
の項目は,関数の索引の最初の行に自動的に挿入されます.@end
ftable
と組にします.索引に対する以外,@table
と同じです.
See @ftable
and @vtable
.
@group
@end group
と組にします.Infoでは関係ありません.See @group
.
@H{c}
@heading title
@headings on-off-single-double
@headings
Command.
@html
@end html
と組にします.See Raw Formatter Commands.
@hyphenation{hy-phen-a-ted words}
@-
and @hyphenation
.
@i{text}
@ifclear flag
@ifclear
flag
とそれに続く@end ifclear
コマンドの間のテキストを書式化
します.See @set
@clear
@value
.
@ifhtml
@ifinfo
@end ifhtml
と組になり,対応して@end ifinfo
も同様です.
See Conditionals.
@ifnothtml
@ifnotinfo
@ifnottex
@end ifnothtml
と,対応
して,@end ifnotinfo
,@end ifnotinfo
と組になります.
See Conditionals.
@ifset flag
@ifset
flag
とそれに続く@end ifset
コマンドの間のテキストを書式化し
ます.See @set
@clear
@value
.
@iftex
@end iftex
と組になります.See Conditionally Visible Text.
@ignore
@end ignore
と組になります.See Comments and Ignored Text.
@image{filename, [width], [height]}
@include filename
@inforef{node-name, [entry-name], info-file-name}
@inforef
.
\input macro-definitions-file
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
@itemize
.
@itemx
@item
に似ていますが,項目のテキストの上に余分な縦方向の空白を生成
しません.See @itemx
.
@kbd{keyboard-characters}
@kbd
.
@kbdinputstyle style
@kbd
が@code
と異なるフォントを使用するとき指定します.
See @kbd
.
@key{key-name}
@key
.
@kindex entry
@L{}
@l{}
@lisp
@end lisp
と組になります.See @lisp
.
@lowersections
@raisesections
and @lowersections
.
@macro macroname {params}
@macroname{params}
を定義します.
makeinfo
とtexi2dvi
のみでサポートされています.
See Defining Macros.
@majorheading title
@chapheading
コマンドより大きな縦方向の空白を見出しの
前に生成します.Infoでは,章の見出し行はアスタリスクで下線が引かれます.
See @majorheading
and @chapheading
.
@math{mathematical-expression}
@math
: Inserting Mathematical Expressions.
@menu
@end menu
と組になります.See Menus.
@minus{}
@minus
.
@multitable column-width-spec
@end multitable
と組になります.
See Multitable Column Widths.
@need n
@need
.
@node name, next, previous, up
@node
.
@noindent
@noindent
.
@novalidate
@setfilename
の前で使用します.See Pointer Validation.
@O{}
@o{}
@oddfooting [left] @| [center] @| [right]
@oddheading [left] @| [center] @| [right]
@iftex
の中のみで使用できます.See How to Make Your Own Headings.
@OE{}
@oe{}
@option{option-name}
-l
や--help
のようなコマンドラインオプションを示します.
See @option
.
@page
@page
.
@pagesizes [width][, height]
@paragraphindent indent
asis
の場合,ソースファイルの字下げを保持します.
See Paragraph Indenting.
@pindex entry
@point{}
-!-
で示します.
See Indicating Point in a Buffer.
@pounds{}
@pounds{}
.
@print{}
-|
で印刷された出力を示します.See Print Glyph.
@printindex index-name
@pxref{node-name, [entry], [topic-or-title], [info-file], [manual]}
@pxref
.
@questiondown{}
@quotation
@end quotation
と組にな
ります.See @quotation
.
@r{text}
@raisesections
@raisesections
and @lowersections
.
@ref{node-name, [entry], [topic-or-title], [info-file], [manual]}
@ref
.
@refill
@result{}
=>
を用いて示します.See @result
.
@ringaccent{c}
@samp{text}
@samp
.
@sc{text}
@section title
@section
.
@set flag [string]
@ifset
flag
と@end ifset
コマンドの組の間のテキストを書式化します.
オプションで,flagの値をstringにセットします.See @set
@clear
@value
.
@setchapternewpage on-off-odd
@setchapternewpage
.
@setcontentsaftertitlepage
@contents
コマンドがない場合でも,目次を@end titlepage
の後
に置きます.See Contents.
@setfilename info-file-name
@setfilename
.
@setshortcontentsaftertitlepage
@end titlepage
コマンドの後に,そこに
@shortcontents
コマンドがない場合でも,生成します.
See Contents.
@settitle title
@settitle
.
@shortcontents
@summarycontents
の同義語です.See Generating a Table of Contents.
@shorttitlepage title
@titlepage
.
@smallbook
@smalldisplay
@smallexample
(テキストを字下げし,補充
しない)に似ていますが,等幅フォントを選択しません.@smallbook
書式
では,@display
より小さいフォントでテキストを印刷します.
@end smalldisplay
と組になります.See small.
@smallexample
@smallbook
書式では,@example
より小さいフォントを選択します.
@end smallexample
と組になります.See small.
@smallformat
@smalldisplay
に似ていますが,マージン
を狭くせず,等幅フォントを選択しません.@smallbook
書式では,
@format
より小さいフォントでテキストを印刷します.@end
smallformat
と組になります.See small.
@smalllisp
@smallbook
書式では,より小さいフォントでテキストを印刷し
ます.@end smalllisp
と組になります.See small.
@sp n
@sp
.
@ss{}
@strong {text}
@subheading title
@unnumberedsubsec
@appendixsubsec
@subheading
.
@subsection title
@subsection
.
@subsubheading title
@subsubsection title
@subtitle title
@title
@subtitle
and @author
Commands.
@summarycontents
@shortcontents
の同義語です.See Generating a Table of Contents.
@syncodeindex from-index into-index
@code
フォントで項目を印刷します.See Combining Indices.
@synindex from-index into-index
@t{text}
@tab
@table formatting-command
@item
を使用します.それぞれ
の最初の行の項目を@item
と同じ行に書いてください.最初の行の項目
は,formatting-commandの結果のフォントで印刷されます.@end
table
と組になります.See Making a Two-column Table. また,@ftable
and @vtable
,と@itemx
,を参照してください.
@TeX{}
@tex
@end tex
と組にします.See Raw Formatter Commands.
@thischapter
@thischaptername
@thisfile
@thispage
@thistitle
@tieaccent{cc}
@tindex entry
@title title
@title
@subtitle
and @author
Commands.
@titlefont{text}
@titlefont
@center
and @sp
Commands.
@titlepage
@titlepage
と@end titlepage
の間には何も現れません.
See @titlepage
.
@today{}
@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}
@unnumbered title
@unnumbered
and @appendix
.
@unnumberedsec title
@unnumberedsubsec title
@unnumberedsubsec
@appendixsubsec
@subheading
.
@unnumberedsubsubsec title
@uref{url[, displayed-text][, replacement}
@uref
.
@url{url}
@url
.
@v{c}
@value{flag}
@set flag
で設定された値で置換します.See @set
@clear
@value
.
@var{metasyntactic-variable}
@vindex entry
@vskip amount
0pt plus 1filll
のような引数を使用して,著作権の
ページの書式化に使用します.(filll
の綴に注意してください.
)@vskip
はInfoで無視される内容でのみ使用可能です.See The Copyright Page and Printed Permissions.
@vtable formatting-command
@item
を使用します.最初の行のそれ
ぞれの項目は変数の索引に自動的に入ります.@end vtable
と組になりま
す.索引化以外@table
と同じです.See @ftable
and @vtable
.
@w{text}
@refill
コマンドと供に
@w
を使用して,段落を終了しないでください.See @w
.
@xref{node-name, [entry], [topic-or-title], [info-file], [manual]}
@xref
.
ここに,Texinfoドキュメントを書くためのチップがあります.
異なる方法で多くの索引項目を書いてください.読者は索引が好きです.それら は役に立ち便利です.
テキストの本体に書くように索引項目を書くのが最も簡単ですが,項目を後で書 くのを好む人もいます.どちらの場合でも,現れる段落の前に項目を書いてくだ さい.こうして,索引項目はページに跨る段落の最初のページを示します.
ここに,我々が貴重だと分かったより多くのヒントがあります.
以下の例では,空白行が索引項目"Leaping"の後にあります.
@section The Dog and the Fox @cindex Jumping, in general @cindex Leaping @cindex Dog, lazy, jumped over @cindex Lazy dog jumped over @cindex Fox, jumps over dog @cindex Quick fox jumps over dog The quick brown fox jumps over the lazy dog.
(例で,同じ概念に対する項目を異なる方法で書いていることに注意し--
Lazy dog
とDog, lazy
--それで読者は,異なる方法で概念を見つ
けることができます.)
@table
コマンドの前とと@end table
コマンドの後に,空白行を
常に挿入してください.しかし,@table
コマンドの後と@end
table
コマンドの前には,空白行を決して挿入しないでください.
例えば,以下のようにします.
Types of fox: @table @samp @item Quick Jump over lazy dogs. @item Brown Also jump over lazy dogs. @end table @noindent On the other hand, ...
@itemize
... @end itemize
の前後と,同様に
@enumerate
... @end enumerate
の前後に空白行を挿入し
てください.
完全な文節は何よりも読み易く...
全てのマニュアルの3箇所に,エディションとバージョンの番号と日付を書いて ください.
@ifinfo
セクションに.
@titlepage
セクションに.
最初の@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
とその同
類で,単一の書式で記述を書くことを可能にします.
@table
... @end table
を関数の概要を含む付録に使用し,
@deffn
や他の定義コマンドを使用しないでください.
x
やi
を
大文字で書かないでください.
@TeX{}
コマンドを使用して書いてください.大文字の
T
とX
に注意してください.このコマンドは,TeXを書いた
Donald Knuthに希望に従って,フォーマッタに植字させます.
@example
... @end example
と類似のコマンド内部以外で,
Texinfoファイルの書式化のためにスペースを使用しないでください.
例えば,TeXは以下を補充します.
@kbd{C-x v} @kbd{M-x vc-next-action} 現在のバッファに対応する, バージョンで制御されたファイルで, 次の論理オペレーションを実行する.
そのため以下のように見えます.
この場合,テキストは,表を作成する@table
,@item
と
@itemx
で書式化されるべきです.
---
@code
を使用してください.
例えば,以下のようにします.
主な関数は,@code{vc-next-action}で,...
s
の様な文字を@code
の直後に置くことを避けてください.その
ような文字は醜くなります.
@var
を使用してください.それらの周りに,山カッコ
を書かないでください.
---
を示すため,並べて,3つのハイフンを使用してくださ
い.TeXは,これらを長いダッシュとして植字し,Infoフォーマッタは,3つ
のハイフンを2つに削減します.
句読点が引用の部分でない場合は,ピリオドとその他の句読点を引用の外 側に置いてください.この実行は,合州国の出版の慣習に反しますが,読者は 引用の内容と文節全体との区別が可能となります.
例えば,終りの引用符の外側にピリオドを文に続けて書くべきです.
Evidently, au
is an abbreviation for ``author''.
au
は,author.
(単語に続くピリオドと一緒)の省略として提供さ
れていません.
例えば,以下で用語"check in","register"と"delta"はすべて,初めて 現われます.例文は理解できるように書き換えるべきです.
The major function assists you in checking in a file to your version control system and registering successive sets of changes to it as deltas.
@dfn
コマンドを紹介している単
語の周りに使用してください.
設計された特別な文脈以外で,@pxref
を絶対に使用しないでください.
カッコの内部で,閉じ弓カッコの直後に閉じカッコを使用します.1つのフォー
マッタは自動的に句読点を挿入し,もう1つはそうしません.これは,印刷され
た出力とInfoファイルで出力は正しく見えますが,それはコマンドがカッコの中
で使用されるときだけだということを意味します.
Emacs,GCCと,gawk
のようなプログラムをシェルから呼び出せます.そ
れぞれのプログラムのドキュメントは,これを述べているセクションを含むべき
です.残念ながら,これらのセクションのノード名とタイトルは異なり,読者は
セクションを見つけることが困難だと分かります.
そのようなセクションは,`Invoking Emacs'のように,単語`Invoking ...'で始まる文節で名付けてください.この方法で,ユーザーはセクショ ンを簡単に見つけることができます.20
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.
X
をギリシャの`chi'のように,名前`Bach'の最後の発音のようにTeX
を発音してください.しかし,Texinfoは`speck'のように"teckinfo"と発音し
てください.
@bye
の後のTexinfoファイルの終りに,独自のメモを書いてください.
フォーマッタは@bye
の後のテキストを処理しません.それは,テキスト
が@ignore
... @end ignore
の内側にあるのと同じです.
ここに,コメントの無い完全な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
Texinfoファイルは,読者に,Texinfoファイル,Infoファイルと,印刷されたマ ニュアルのコピーと配布の権利があることを告げるセクションを含むべきです.
また,ソフトウェアに関するマニュアルを書いている場合,ソフトウエアがフリー であることを説明し,GNU General Public License (GPL),または,それへの参 照を含めるべきです.ドキュメントのソフトウェアの"配布","一般公有使用 許諾書"と,"無保証"のセクションで使用可能なテキストの例は, See Distrib. 与えられる 権利にコピーの条件を供給する短い説明の例は,See Texinfo Copying Conditions.
ifinfo
copying 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ファイルが一般公有使用許諾書のコピーをもたらさない場 合,それへの参照を削除し,残りの文を含めることを確認してください.
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.
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.
TeXInfo書式化コマンドが,Texinfoファイルの@include
コマンドを
見るとき,それはコマンドで名指しされたファイルの内容を処理し,作成されて
いるDVIやInfoファイルに組み入れます.インクルードファイルからの索引項目
は,出力ファイルの索引に組み入れられます.
インクルードファイルは,便利な小さい部分の収集物として,単一な大きなドキュ メントを保持させます.
@include
command.
texinfo-multiple-files-update
expects.
@include
command
has changed over time.
他のファイルを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
ファイルに対し設計されています.
texinfo-multiple-files-update
GNU Emacs Texinfoモードは,texinfo-multiple-files-update
コマンド
を供給します.このコマンドは,インクルードファイルの`Next',`Previous'と,
`Up' ポインタを,外部や全体的なTexinfoファイルに対するものと同様に作成更
新し,それは外部ファイルのメインメニューを作成更新します.オプションの引
数での呼び出しに依存して,コマンドはインクルードファイルやそれら全ての最
初の@node
行のポインタのみを更新します.
@node
行の,`Next',`Previous'と,`Up'ポインタの作成と更新.
@node
行のポインタの作成
と更新.
texinfo-master-menu
の呼び出しに似ています.
対話的な使用での前置引数の使用の注意:通常の前置引数C-uを伴う
場合,texinfo-multiple-files-update
コマンドはマスターメニューを挿
入します.C-u 8のような,数字の前置引数を伴う場合,コマンドは,
全てのファイルの全てのポインタとメニューを更新し,マス
ターメニューを更新します.
texinfo-multiple-files-update
コマンドの使用を計画している場合,そ
の中でインクルードファイルをリストアップしている外部のTexinfoファイルは,
Texinfoファイルの最初と最後の部分と,インクルードファイルをリストアップ
している@include
コマンド以外,何も含めるべきではありません.それ
は,索引さえ含めるべきではなく,それはインクルードファイル自身にリストアッ
プすべきです.
さらに,それぞれのインクルードファイルは,正確に1つの最上位のノード(慣習
的に,@chapter
またはそれと同等のもの)を含む必要があり,このノー
ドはインクルードファイルの最初のノードにする必要があります.さらに,それ
ぞれのインクルードファイルの中の,それぞれのこれらの最上位レベルのノード
は,ファイル構造で同じ階層レベルにする必要があります.通常,それぞれ
@chapter
,@appendix
または,@unnumbered
にします.
このように,それぞれのインクルードファイルは,1つのそして唯一の,章や同
等のレベルのノードを含みます.
外部ファイルは1つのノード,`Top'ノードのみを含みます.それは,単
一の`Top'ノードの他の,あらゆるノードを含むべきではありません.
texinfo-multiple-files-update
コマンドは,それらを処理しません.
@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
リストを含んでいます.
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ファイルを名指せず
に書くことができることを意味します.
ほとんどの印刷されたマニュアルは,タイトルと著作権のページ以外の全てのペー ジの上側に沿っている見出しを含みます.フッタを含むマニュアルもあります. (見出しとフッタはInfoでは意味がなく,それはページが付いていません.)
Texinfoは,それぞれの紙の片側に印刷されるマニュアルと,紙の両面に印刷さ れるマニュアルのための,標準的なページ見出し書式を提供します.通常はこれ らの書式を使用しますが,希望があれば独自の書式を指定できます.
更に,章を新しいページで始めるか,前の章と同じページに続けるかを指定でき ます.そして,章を新しいページで始める場合,奇数番号のページから始めるよ うに指定できます.
慣習では,本は紙の両面に印刷されます.本を開いたとき,右側のページが奇数 番号で,章は右側のページから始まります--前にある左側のページは必要な場 合は空白のままです.しかし,報告書は,片面に印刷され,章は前の章が終った 直後に改ページされて始まることが多いです.短い情報的な報告書では,章は新 しいページを開始することは全くありませんが,小量の空白をテキストの前に置 いて分けられます.
@setchapternewpage
コマンドは,章を新しいページで始めるかどうかと,
標準的な見出しの書式の1つを使用するかどうかを制御します.Texinfoは,独自
の見出しとフッタの書式を使用生成するために,使用可能な見出しとフッタコマ
ンドがいくつかあります.
Texinfoでは,見出しとフッタは,ページの上側と下側の単一行です.複数行の 見出しとフッタは作成できません.それぞれのヘッダとフッタ行は,3つの部分 に分けられます.左側の部分,真中の部分と,右側の部分です.あらゆる部分, または行全体は,空白のままにすることもできます.ヘッダとフッタ行の左の部 分に対するテキストは,左寄せになります.真中の部分のテキストはセンタリン グされます.そして,右の部分のテキストは右寄せになります.
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,章の番号と,コロンが前置されます.これは,マニュアルの現在 の場所の記録追跡をより簡単にします.
TeXは,@end titlepage
コマンドに至るまで,標準的なTexinfoファ
イルに対しページ見出しの生成を開始しません.このため,タイトルと著作権の
ページは番号が付きません.@end titlepage
コマンドは,
@titlepage
セクションの前にある@setchapternewpage
コマンド
で指定された標準的な書式によって,TeXにページ見出しの生成を開始させま
す.
可能性は4つあります.
@setchapternewpage
command
@setchapternewpage
コマンド無し
@setchapternewpage on
と同じです.
@setchapternewpage on
@setchapternewpage off
@headings double
コマンドでヘッダの書式を優先できます.
The @headings
Command,を参照してくださ
い.)
@setchapternewpage odd
Texinfoは@setchapternewpage even
コマンドはありません.
Texinfoで提供される標準的な見出しを使用したり,独自のものを指定したりで きます.デフォルトで,Texinfoはフッタが無く,そのため指定した場合,主な テキストのための利用可能なページサイズがわずかに減少します.
Texinfoは見出しとフッタを指定する6つのコマンドを提供します.
@everyheading
と@everyfooting
は,偶数と奇数の番号のページ
の両方に,同じページヘッダとフッタを生成します.
@evenheading
と@evenfooting
コマンドは,偶数番号(左側)のペー
ジにヘッダとフッタを生成します.
@oddheading
と@oddfooting
コマンドは,奇数番号(右側)のペー
ジにヘッダとフッタを生成します.
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
@evenheading left @| center @| right
@oddheading left @| center @| right
@evenfooting left @| center @| right
@oddfooting left @| center @| right
章とセクションの名前とページ番号を提供するため,@this...
シリー
ズの@-コマンドを使用してください.
ここに@this...
コマンドがあります.
@thispage
@thischaptername
@thischapter
@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
余りに長いタイトルへの注意: それらは他のヘッダやフッタの部分に重なり,隠 してしまう可能性があります.
ドキュメントの内容のミス以外に,Texinfoで犯す2種類のミスがあります: @- コマンドでミスを犯し,ノードと章の構造でミスを犯します.
Emacsは@-コマンドのミスを捕らえる2つのツールと,構造のミスを捕らえる2つ の方法があります.
@-コマンドの問題を見つけるため,問題の有る領域で,TeXや領域の書式化 コマンドを実行することができます.これらのコマンドを,書いているときにそ れぞれの領域で本当に実行できます.
ノードと章の構造の問題を見つけるため,C-c C-s
(texinfo-show-structure
)と関連するoccur
コマンドを使用する
ことができ,そして,M-x Info-validateを使用することができます.
makeinfo
finds errors.
texinfo-show-structure
.
makeinfo
プログラムはエラーを捕らえそれらを報告する優れた仕事を行
います--texinfo-format-region
やtexinfo-format-buffer
より
遥かに優れています.さらに,自動的にノードポインタとメニューを作成更新す
る様々な機能は,人間のエラーに対し多くの機会を取り除きます.
ポインタとメニューを作成したり挿入したりする更新コマンドを,できる限り使
用してください.そして,makeinfo
(または,Texinfoモードの表現の
makeinfo-region
とmakeinfo-buffer
)を,ファイルを書式化した
り他のエラーを調べるために使用してください.これは,Texinfoで仕事をする
ことに対する最善の方法です.しかし,makeinfo
を使用できない,また
は,問題が大変難問な場合,この付録で記述されているツールを使用したいと思
うかも知れません.
Texinfoファイルの部分を書いた後,領域の書式化が正確かどうかを見るために,
texinfo-format-region
やmakeinfo-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'に戻ることができます.)
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つのことを行うことができ ます.
?
プロンプトで<RET>を入力することで,実行を続け,このエラーを
無視するようTeXに伝えることができます.
?
プロンプトでr <RET>を入力することで,実行を続け,最善
の方法として全てのエラーを無視するようTeXに伝えることができます.
これは最善のことが多いです.しかし,用心してください.1つのエラーが更な るエラーメッセージのカスケードを生成し,その結果はファイルの残り全体だと 感じるかも知れません.そのようなエラーメッセージの雪崩を生成している時に TeXを止めるため,C-c(または,Emacsの内部シェルで実行している場 合はC-c C-c)を入力してください.
?
プロンプトで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で作業しています.)
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ファイルの構造を思
い出すことができます.そして,間違った名前のノードや飛ばしたセクションが
ある場合,ミスを修正可能です.
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.
あらゆる`Next',`Previous',`Up'やその他のノードポインタがノードを指し示
すことに失敗しているかどうかを調べるため,Info-validate
を使用する
ことができます.このコマンドは,全てのノードポインタが存在するノードを指
し示していることを調べます.Info-validate
コマンドは,Texinfoファ
イルではなく,Infoファイルでのみ働きます.
makeinfo
プログラムは,自動的にポインタの有効の調査を行い,そのた
めmakeinfo
を使用している場合,Info-validate
を使用する必要
はありません.makeinfo
を実行できず,その代わりに
texinfo-format-region
やtexinfo-format-buffer
を使用している
場合や,スクラッチからInfoファイルを書く場合のみ,Info-validate
を
使用する必要があります.
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
を実行する必
要があります.そして,分けられていないファイルのためタグ表を作成する必要
があります.
Info-validate
は,タグ表を持った単一のInfoファイルのでのみ実行可能
です.コマンドは,マスターファイルが分けられたとき生成されたサブファイル
で,間接的に働きません.(70,000バイトかそれくらい以上の)大きなファイルが
ある場合,間接的なサブファイルを生成しないような方法で,
texinfo-format-buffer
やmakeinfo-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はファイルを分けず,そのタグ表を生成しません.
分かれていない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
を再実
行し,そしてそれは,タグ表を構築しファイルを自動的に分ける,または手動で
タグ表と分けられたファイルを作成することができます.
大きなファイルを分けたり,texinfo-format-buffer
や
makeinfo-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
(Info
のI
が大文字であることに注意してください.)
Info-split
コマンドを使用するとき,バッファは,間接的なサブファイ
ルを列挙する(小さな)Infoファイルに修正されます.このファイルは,訪れた元
のファイルの場所に保存されます.間接的なサブファイルは,元ファイルがあっ
たのと同じディレクトリに書かれ,元ファイル名に-
と数字が追加された
ファイル名を持ちます.
主なファイルは,Infoファイルとして機能しますが,それはタグ表とサブファイ ルのディレクトリだけを含みます.
@refill
コマンドは補充し,オプションで段落の最初の行を字下げしま
す.22@refill
コマンドはもはや重要ではありませんが,かつ
て必要だったので,我々はそれをここで記述します.多くの古いTexinfoファイ
ルで見ることでしょう.
補充がない場合,長い@-構成物を含む段落は,フォーマッタが@-コマンドを削
除し,他の行より短くなるものもあるので,書式化後悪く見えます.以前は,
texinfo-format-region
コマンドやtexinfo-format-buffer
コマン
ドは,段落を自動的に補充しませんでした.@refill
コマンドを,全て
の段落の終りに,これらのフォーマッタがそれを補充するように書く必要があり
ました.(TeXとmakeinfo
の両方が,常に段落を自動的に補充していま
した.)現在は,全てのInfoフォーマッタは補充と字下げが必要なそれらの段落
を,自動的に補充し字下げします.
@refill
コマンドは,全ての他の処理が終了した後,
texinfo-format-region
とtexinfo-format-buffer
にInfoファイル
の段落を補充させます.このため,@*
や@w{ ... }
を含
む段落で,補充の動作がこれら2つのコマンドに優先されるので,
@refill
を使用することはできません.
現在,texinfo-format-region
とtexinfo-format-buffer
コマンド
は,自動的に@refill
を,補充が必要なそれぞれの段落に加えます.
@*
や@w{ ...}
を含む段落の終りに@refill
を加えないので,それらは,補充も字下げもされません.
文字@
は,特別なTexinfoコマンドを開始するために使用されます.(そ
れは,プレーンTeXに\
があるのと同じ意味です.)Texinfoは4つの形
式の@-コマンドがあります.
@.
,@:
,@*
,@SPACE
,
@TAB
,@NL
,@@
,@{
,と
@}
.
@dots{}
=> ...
,
@equiv{}
=> ==
,@TeX{}
=>
`TeX'と,@bullet{}
=>
です.
@dfn
は,用語の紹介や使用の定義を示します.そ
れは以下のように使用されます.Texinfoでは,@@-コマンドは
@dfn{mark-up}コマンドです.
@center
や@cindex
です.引数が必要
ない場合,単語は行の終りが続きます.引数がある場合,コマンド名とスペース
で分けられています.カッコは使用しません.
このように,アルファベットコマンドは,異なる引数の構文を持つクラスに分類 されます.その名前の外見からコマンドが属するクラスは分かりませんが,コマ ンドの意味は分かります.コマンドがglyphを意味する場合,それはクラス2で引 数はいりません.それが,段落の部分としての他のテキストと一緒に使用される コマンドを意味する場合,コマンドはクラス3で,カッコ内に引数が続きます. それ以外の場合,それはクラス4で,その引数として,行の残りを使用します.
クラス3と4のコマンドに対して異なる構文を持つ目的は,Texinfoファイルを読
み易くし,GNU Emacs段落と補充コマンドが正確に働く助けとするためです.こ
の規則に1つの例外があります.それは@refill
コマンドで,それは段落
の終りで,最後のピリオドや句読点文字の直後に常に使用されます.
@refill
は引数をとらず,カッコは要求されません.
@refill
は,行の最初に現われないので,Emacs 段落コマンドは決して
混乱しません.
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/を参照して ください.
これは,Emacs Lisp関数で分類された全ての@-コマンドと,いくつかの変数のリ
ストです.リストを使いやすくするために,コマンドは@
を取ってリスト
アップされています.
!
(end of sentence)
: Ending a Sentence
"
: Inserting Accents
'
: Inserting Accents
(newline)
: Multiple Spaces
(space)
: Multiple Spaces
(tab)
: Multiple Spaces
*
(force line break)
: Line Breaks
,
: Inserting Accents
-
: - and hyphenation
.
(end of sentence)
: Ending a Sentence
:
(suppress widening)
: Not Ending a Sentence
=
: Inserting Accents
?
(end of sentence)
: Ending a Sentence
@
(single @
)
: Inserting An Atsign
\emergencystretch
: Overfull hboxes
^
: Inserting Accents
`
: Inserting Accents
AA
: Inserting Accents
aa
: Inserting Accents
acronym
: acronym
AE
: Inserting Accents
ae
: Inserting Accents
afourlatex
: A4 Paper
afourpaper
: A4 Paper
alias
: alias
anchor
: anchor
appendix
: unnumbered & appendix
appendixsec
: unnumberedsec appendixsec heading
appendixsection
: unnumberedsec appendixsec heading
appendixsubsec
: unnumberedsubsec appendixsubsec subheading
appendixsubsubsec
: subsubsection
apply
: Sample Function Definition
asis
: table
author
: title subtitle author
b
(bold font)
: Fonts
buffer-end
: Def Cmd Template
bullet
: bullet
bye
: File End, Ending a File
c
(comment)
: Comments
cartouche
: cartouche
center
: titlefont center sp
centerchap
: chapter
chapheading
: majorheading & chapheading
chapter
: chapter
cindex
: Indexing Commands
cite
: cite
clear
: ifset ifclear
code
: code
columnfractions
: Multitable Column Widths
command
: command
comment
: Comments
contents
: Contents
copyright
: copyright symbol, Copyright & Permissions
cropmarks
: Cropmarks and Magnification
defcodeindex
: New Indices
defcv
: Abstract Objects
deffn
: Functions Commands
deffnx
: deffnx
defindex
: New Indices
definfoenclose
: definfoenclose
defivar
: Abstract Objects
defmac
: Functions Commands
defmethod
: Abstract Objects
defop
: Abstract Objects
defopt
: Variables Commands
defspec
: Functions Commands
deftp
: Data Types
deftypefn
: Typed Functions
deftypefun
: Typed Functions
deftypeivar
: Abstract Objects
deftypeop
: Abstract Objects
deftypevar
: Typed Variables
deftypevr
: Typed Variables
defun
: Functions Commands
defvar
: Variables Commands
defvr
: Variables Commands
Development/Docs/Texinfo Customize group
: Texinfo Mode Printing
dfn
: dfn
dircategory
: Installing Dir Entries
direntry
: Installing Dir Entries
display
: display
dmn
: dmn
documentencoding
: documentencoding
documentlanguage
: documentlanguage
dotaccent
: Inserting Accents
dotless
: Inserting Accents
dots
: dots
email
: email
emph
: emph & strong
end
: Introducing Lists, Quotations and Examples
end titlepage
: end titlepage
enddots
: dots
enumerate
: enumerate
env
: env
equiv
: Equivalence
error
: Error Glyph
evenfooting
: Custom Headings
evenheading
: Custom Headings
everyfooting
: Custom Headings
everyheading
: Custom Headings
example
: example
exampleindent
: exampleindent
exclamdown
: Inserting Accents
exdent
: exdent
expansion
: expansion
file
: file
filll
: Copyright & Permissions
finalout
: Overfull hboxes
findex
: Indexing Commands
flushleft
: flushleft & flushright
flushright
: flushleft & flushright
foobar
: Optional Arguments
footnote
: Footnotes
footnotestyle
: Footnote Styles
format
: format
forward-word
: Def Cmd Template
ftable
: ftable vtable
group
: group
H
: Inserting Accents
hbox
: Overfull hboxes
heading
: unnumberedsec appendixsec heading
headings
: headings on off
headword
: definfoenclose
html
: Raw Formatter Commands
hyphenation
: - and hyphenation
i
(italic font)
: Fonts
ifclear
: ifset ifclear
ifhtml
: Raw Formatter Commands, Conditional Commands
ifinfo
: Conditional Commands
ifnothtml
: Conditional Not Commands
ifnotinfo
: Conditional Not Commands
ifnottex
: Conditional Not Commands
ifset
: ifset ifclear
iftex
: Conditional Commands
ignore
: Comments
image
: Images
include
: Using Include Files
Info-validate
: Running Info-Validate
inforef
: inforef
input
(TeX command)
: Minimum
isearch-backward
: deffnx
isearch-forward
: deffnx
item
: Multitable Rows, table, itemize
itemize
: itemize
itemx
: itemx
kbd
: kbd
kbdinputstyle
: kbd
key
: key
kindex
: Indexing Commands
L
: Inserting Accents
l
: Inserting Accents
lisp
: lisp
lowersections
: Raise/lower sections
macro
: Defining Macros
mag
(TeX command)
: Cropmarks and Magnification
majorheading
: majorheading & chapheading
makeinfo-buffer
: makeinfo in Emacs
makeinfo-kill-job
: makeinfo in Emacs
makeinfo-recenter-output-buffer
: makeinfo in Emacs
makeinfo-region
: makeinfo in Emacs
math
: math
menu
: Menus
minus
: minus
multitable
: Multi-column Tables
need
: need
next-error
: makeinfo in Emacs
node
: node
noindent
: noindent
novalidate
: Format with tex/texindex
O
: Inserting Accents
o
: Inserting Accents
occur
: Using occur
occur-mode-goto-occurrence
: Showing the Structure
oddfooting
: Custom Headings
oddheading
: Custom Headings
OE
: Inserting Accents
oe
: Inserting Accents
option
: option
page
: page
page
, within @titlepage
: titlepage
pagesizes
: pagesizes
paragraphindent
: paragraphindent
phoo
: definfoenclose
pindex
: Indexing Commands
point
: Point Glyph
pounds
: pounds
print
: Print Glyph
printindex
: Printing Indices & Menus
pxref
: pxref
questiondown
: Inserting Accents
quotation
: quotation
r
(Roman font)
: Fonts
raisesections
: Raise/lower sections
ref
: ref
refill
: Refilling Paragraphs
result
: result
ringaccent
: Inserting Accents
rmacro
: Defining Macros
samp
: samp
sc
(small caps font)
: Smallcaps
section
: section
set
: ifset ifclear
setchapternewpage
: setchapternewpage
setcontentsaftertitlepage
: Contents
setfilename
: setfilename
setshortcontentsaftertitlepage
: Contents
settitle
: settitle
shortcontents
: Contents
shorttitlepage
: titlepage
smallbook
: smallbook
smalldisplay
: display, small
smallexample
: small
smallformat
: format, small
smalllisp
: small
sp
(line spacing)
: sp
sp
(titlepage line spacing)
: titlefont center sp
ss
: Inserting Accents
strong
: emph & strong
subheading
: unnumberedsubsec appendixsubsec subheading
subsection
: subsection
subsubheading
: subsubsection
subsubsection
: subsubsection
subtitle
: title subtitle author
summarycontents
: Contents
syncodeindex
: syncodeindex
synindex
: synindex
t
(typewriter font)
: Fonts
tab
: Multitable Rows
table
: Two-column Tables
tex
: Raw Formatter Commands
tex (command)
: tex
texinfo-all-menus-update
: Updating Commands
texinfo-every-node-update
: Updating Commands
texinfo-format-buffer
: texinfo-format commands, Info Formatting
texinfo-format-region
: texinfo-format commands, Info Formatting
texinfo-indent-menu-description
: Other Updating Commands
texinfo-insert-@code
: Inserting
texinfo-insert-@dfn
: Inserting
texinfo-insert-@end
: Inserting
texinfo-insert-@example
: Inserting
texinfo-insert-@item
: Inserting
texinfo-insert-@kbd
: Inserting
texinfo-insert-@node
: Inserting
texinfo-insert-@noindent
: Inserting
texinfo-insert-@samp
: Inserting
texinfo-insert-@table
: Inserting
texinfo-insert-@var
: Inserting
texinfo-insert-braces
: Inserting
texinfo-insert-node-lines
: Other Updating Commands
texinfo-make-menu
: Updating Commands
texinfo-master-menu
: Updating Commands
texinfo-multiple-files-update
: texinfo-multiple-files-update
texinfo-multiple-files-update
(in brief)
: Other Updating Commands
texinfo-sequential-node-update
: Other Updating Commands
texinfo-show-structure
: Using texinfo-show-structure, Showing the Structure
texinfo-start-menu-description
: Inserting
texinfo-tex-buffer
: Printing
texinfo-tex-print
: Printing
texinfo-tex-region
: Printing
texinfo-update-node
: Updating Commands
thischapter
: Custom Headings
thischaptername
: Custom Headings
thisfile
: Custom Headings
thispage
: Custom Headings
thistitle
: Custom Headings
tieaccent
: Inserting Accents
tindex
: Indexing Commands
title
: title subtitle author
titlefont
: titlefont center sp
titlepage
: titlepage
top
(@-command)
: makeinfo top command
u
: Inserting Accents
ubaraccent
: Inserting Accents
udotaccent
: Inserting Accents
unmacro
: Defining Macros
unnumbered
: unnumbered & appendix
unnumberedsec
: unnumberedsec appendixsec heading
unnumberedsubsec
: unnumberedsubsec appendixsubsec subheading
unnumberedsubsubsec
: subsubsection
up-list
: Inserting
uref
: uref
url
: url
v
: Inserting Accents
value
: set value
var
: var
vindex
: Indexing Commands
vskip
: Copyright & Permissions
vtable
: ftable vtable
w
(prevent line break)
: w
xref
: xref
{
(single {
)
: Inserting Braces
}
(single }
)
: Inserting Braces
~
: Inserting Accents
--commands-in-node-names
: makeinfo options
--delete
: Invoking install-info
--dir-file=name
: Invoking install-info
--entry=text
: Invoking install-info
--error-limit=limit
: makeinfo options
--fill-column=width
: makeinfo options
--footnote-style=style
: makeinfo options
--force
: makeinfo options
--help
: Invoking install-info, makeinfo options
--info-dir=dir
: Invoking install-info
--info-file=file
: Invoking install-info
--item=text
: Invoking install-info
--no-headers
: makeinfo options
--no-number-footnotes
: makeinfo options
--no-pointer-validate
: makeinfo options
--no-split
: makeinfo options
--no-validate
: makeinfo options
--no-warn
: makeinfo options
--number-sections
: makeinfo options
--output=file
: makeinfo options
--paragraph-indent=indent
: makeinfo options
--quiet
: Invoking install-info
--reference-limit=limit
: makeinfo options
--remove
: Invoking install-info
--section=sec
: Invoking install-info
--verbose
: makeinfo options
--version
: Invoking install-info, makeinfo options
-D dir
: Invoking install-info
-d name
: Invoking install-info
-D var
: makeinfo options
-e limit
: makeinfo options
-e text
: Invoking install-info
-F
: makeinfo options
-f width
: makeinfo options
-h
: Invoking install-info, makeinfo options
-I dir
: makeinfo options
-i file
: Invoking install-info
-o file
: makeinfo options
-P dir
: makeinfo options
-p indent
: makeinfo options
-r
: Invoking install-info
-r limit
: makeinfo options
-s sec
: Invoking install-info
-s style
: makeinfo options
-V
: Invoking install-info, makeinfo options
:
last in INFOPATH
: Other Info Directories
@include
file sample: Sample Include File
@menu
parts: Menu Parts
@node
line writing: Writing a Node
@w
, for blank items: itemize
\input
source line ignored: setfilename
autoexec.bat
: Other Info Directories
makeinfo
: makeinfo Pointer Creation
@code
: code
code
, arg to @kbdinputstyle
: kbd
makeinfo
: makeinfo Pointer Creation
@inforef
: inforef
@pxref
: pxref
@ref
: ref
@xref
: xref
dir
directory for Info installation: Install an Info File
dir
file listing: New Info File
dir
file, creating your own: Other Info Directories
dir
files and Info directories: Other Info Directories
dir
, created by install-info
: Invoking install-info
distinct
, arg to @kbdinputstyle
: kbd
End
node footnote style: Footnote Styles
epsf.tex
: Images
epsf.tex
, installing
: Preparing for TeX
example
, arg to @kbdinputstyle
: kbd
tex
and texindex
: Format with tex/texindex
hboxes
, overfull: Overfull hboxes
help2man
: Using Texinfo
href
, producing HTML: uref
ifinfo
permissions: ifinfo Permissions
@setfilename
: setfilename
@setfilename
: setfilename
Info-directory-list
: Other Info Directories
INFOPATH
: Other Info Directories
INSTALL
file, generating: makeinfo options
install-info
: Invoking install-info
lpr
(DVI print command)
: Print with lpr
lpr
-d, replacements on MS-DOS/MS-Windows
: Print with lpr
makeinfo
: Using Texinfo
makeinfo
inside Emacs: makeinfo in Emacs
makeinfo
options: makeinfo options
dir
file: New Info File
@occur
: Using occur
makeinfo
: makeinfo options
hboxes
: Overfull hboxes
page-delimiter
: Showing the Structure
pdftex
: PDF Output
pdftex
, and images
: Images
makeinfo
: makeinfo Pointer Creation
makeinfo
: Pointer Validation
@inforef
: inforef
@pxref
: pxref
@ref
: ref
@xref
: xref
ridt.eps
: Images
Info-validate
: Using Info-validate
makeinfo
in Emacs: makeinfo in Emacs
@include
file: Sample Include File
Separate
footnote style: Footnote Styles
tex
and texindex
: Format with tex/texindex
makeinfo
in: makeinfo in Emacs
@kbd
: kbd
texi2dvi
: Format with tex/texindex
texi2dvi
(shell script)
: Format with texi2dvi
texindex
: Format with tex/texindex, Hardcopy
texinfo.cnf
: setfilename
texinfo.cnf
installation
: Preparing for TeX
texinfo.tex
, installing
: Preparing for TeX
TEXINPUTS
: Preparing for TeX
TEXINPUTS
environment variable: Preparing for TeX
Top
node: The Top Node
Top
node naming for references: Top Node Naming
Top
node summary: Top Node Summary
@deffn
: deffnx
@table
: itemx
txi-cc.tex
: documentlanguage
vskip
): Copyright & Permissions
@node
line: Writing a Node
"Texinfo"の最初の音節は,"hex"ではなく,
"speck"のように発音されます.この奇妙な発音は,同じではありませんが,
TeXの発音から得られています.単語TeXで,X
は実際,英文字
"ex"というよりはギリシャ文字"chi"となります.TeXを,X
は名
前の`Bach'の最後の音のように発音してください.しかし,Texinfoはx
を`k'のように発音してください."Texinfo"を大文字"T"とそれ以外は小文
字で綴ってください.
ドキュメントには,最初の子に`Previous'ポインタが無い ものもあります.時々,最後の子が`Next'ポインタとして次の上のレベルのノー ド名を持つものもあります.
TeXを持っていない場合,
texi2roff
プログラムを使う
こともできます.TexinfoはTeXで使うように設計されているので,
texi2roff
はここでは述べません.texi2roff
は,標準のGNU配布
物ではなく,このマニュアルで述べているすべてのTexinfoの特徴を管理したり
更新したりしていません.
単語argumentは数学での使用 法から来ていて,二人の論争には関連しません.それは,コマンドに与えた情報 を参照します.オックスフォード英語辞典によると,単語は明らか にする,証明するというラテン語から生じました.このように,`証明として提 出された証拠'と言う意味から来ていて,それは`提出された情報'と言われてい て,数学的な意味から導かれました.由来の他の筋では,単語は,`他人がした 反対の断言に,反対する方法で断言すること'と言う意味から来ていて, `argument'の意味を論争に導きました.
訳注:原文は,"housekeeping"
訳注:原文は,look more intimidating
我々は,マニュアルのバージョンを`edition'として,プ ログラムのバージョンを`version'として参照することが便利だと分かりました. そうしない場合,慣習的にドキュメントとソフトウェアの両方を同じ単語で言及 すると,お互いに混乱しやすいことが我々は分かりました.
メニュー では,階層構造にかかわらずあらゆるノードへ行くことができます.異なるInfoファ イルのノードへ行くことすら可能です.しかし,GNU Emacs Texinfoモードの更新 コマンドは,従属的なノードのメニューしか作成しません.慣習で,相互参照は他 のノードへの参照のために使用します.
訳注:txi-??.texにより 変更可能です,以下の`see'や`See'も変更されます.しかし,基本的に前置に使 用されるため,日本語ではtexinfo.texも変更が必要です.
訳注:日本語では句読点はカンマやピリオドではありま せん.このマニュアルでは,全角のカンマとピリオドを使用しています.
頭文字を組み合わせて作った語
C,Fortranや他の言語 に対し,類似の流儀で働くようTexinfoを拡張することは簡単です.
訳注:あいうえ お順には,現在対応していません.
脚注は主要なテキストを補完する,または詳細に述べるべきですが,読 者が主要なテキストを理解するために脚注を読む必要があるべきではありません. 脚注の徹底的な論議のため,シカゴ大学出版によって出版されたThe Chicago Manual of Styleを参照してください.
これは見本の脚注です.
これらのシステムで,ディ
レクトリセパレータは,:
の代わりに;
文字を使用することに注意し
てください.
MS-DOS/MS-Windowsシステムでは,Infoは同様に,.inf
拡張子も
試します.
ディ
レクトリの区切りとして;
を使うことと,他の環境変数の値の使用に対し,
構文が違うことに注意してください.
MS-DOS/MS-Windowsシステムは,代わりにセミコロンを使います.
訳注:日本語ではどうするべき かは知りません.
訳注:これはtxi-??.tex
で変更
可能です.
おそらくコマンドは,@refillandindent
コマンドと呼ば
れるべきですが,@refill
はより短く,名前は字下げが可能になる前に
選ばれました.