| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Texinfoファイルは,どんなテキストエディタを選んで編集してもかまいません. Texinfoファイルは,他のASCIIファイルと差がありません.しかし,GNU EmacsにはTexinfoモードと呼ばれる特別なモードがあり,仕事が楽になるよう Emacsコマンドとツールを提供しています.
この章では,GNU EmacsのTexinfoモードの機能について述べ,Texinfo書式化言 語の特徴は述べません.そのため,このマニュアルを始めからそのまま読んでい る場合,この章は軽く流し,詳細にTexinfoフォーマット言語を述べている章を 読み終えた後,ここに戻りたくなるかもしれません.
Texinfoモードは,Texinfoファイルで作業するための特別な機能を提供していま す.以下のようなことが可能です.
@node行の自動生成.
恐らく,最も役に立つ機能の二つは,よく使用する@-コマンドの挿入とノードポ インタとメニューの作成です.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
ほとんどの状況で,通常のテキストモードのコマンドは,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' in
Texinfoファイルには望みの名前を付けてもかまいませんが,慣習で,
`.texinfo',`.texi',`.txi',または`.tex'といった拡
張子の一つで終ります.長い拡張子は明示的なので好まれますが,短い拡張子は
ファイル名の長さに制限があるオペレーティングシステムに必要です.GNU
Emacsは,`.texinfo',`.texi',または`.txi'の拡張子を持つ
ファイルのとき,自動的にTexinfoモードに入ります.また,
`-*-texinfo-*-'を最初の行に持つファイルのときも,Texinfoモードに切
り替わります.他のモードからTexinfoモードに切替えたい場合は,M-x
texinfo-modeと入力してください.
他のEmacsの機能のように,望みのままにTexinfoモードをカスタマイズしたり拡 張したりすることが可能です.特にキーバインドは非常に簡単に変更できます. 以下で,デフォルトと標準的なキーバインドを述べます.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
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',2単語の場合は`2'
等のように,カッコの間に含めるそれ以降の単語の数をEmacsに伝えます.前の
単語を囲むために負の引数を使用してください.プレフィクス引数を指定しない
場合,Emacsは@-コマンド文字列を挿入し,カーソルをカッコの間に配置します.
この機能は,@kbdと@varのような,一つの単語や一行内の単語
を操作する@-コマンドに対してのみ動作します.
この挿入コマンドの組は,
C-c C-c C-d(texinfo-start-menu-description)は,他の挿入コマ
ンドとは異なる挿入コマンドです.それは,メニュー項目行の記述のためのスペー
スに,ノードのセクションや章のタイトルを挿入します.(メニュー項目は三つ
の部品があり,それは項目名,ノード名,そして記述です.ノード名のみ要求さ
れますが,記述はノードが関係するものの説明を補助します.See 節 The Parts of a Menu.)
texinfo-start-menu-descriptionを使用するため,メニュー項目行にポ
イントをおき,C-c C-c C-dを入力してください.コマンドはノード名に
付属するタイトルを探してコピーし,タイトルを記述として挿入します.編集可
能なように,それは挿入されたテキストの始めにポイントを配置します.メニュー
項目行に記述が含まれている場合,この機能はタイトルを挿入しません.
このコマンドは記述を書くためだけに役立ちます.それは仕事を全部しません. タイトルはノード名と同じ単語を使いたがるものですが,役に立つ記述にするに は,異なる単語を使用すべきなので,挿入されたテキストを編集する必要があり ます.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
C-c C-sコマンド(texinfo-show-structure)を使用して,Texinfo
ファイルのセクションの構造を表示することが可能です.このコマンドは,
@chapterや@sectionのような,@-コマンドで始まる行をリス
トアップし,Texinfoファイルのセクションの構造を表示します.それは,結果
として目次を構成します.これらの行は,`*Occur*'と呼ばれる別のバッファ
に表示されます.そのバッファでTexinfoファイルの関連する場所に移動するた
め,行の一つにカーソルを配置しC-c C-cコマンド
(occur-mode-goto-occurrence)を使用することが可能です.
@chapter,@section,そしてそれに類似し
た行を表示します.
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' in
texinfo-show-structureコマンドの提供に加えて,Texinfoモードは,章
レベルの@-コマンドに一致するページ分離変数の値を設定します.これで,
C-x ](forward-page)とC-x [ (backward-page)コマ
ンドを前後の章に移動するために使用したり,C-x p
(narrow-to-page)コマンドを章を小さくするために使用したりすること
が可能です.ページコマンドの詳細は,See 節 `Pages' in
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Texinfoモードは,自動的にメニューとノードポインタを作成し更新するコマン
ドを提供しています.コマンドは"更新"コマンドと呼ばれ,その理由は,作業
後にTexinfoファイルを更新するため最もよく使用されているためです.しかし,
`Next',`Previous',そして`Up'ポインタを,何も持たない@node行に
挿入したり,何も持たないファイルでメニューを作成したりするために使用する
ことが可能です.
更新コマンドを使用しない場合,メニューとノードポインタを手で書く必要があ り,それは退屈な仕事です.
更新コマンド Five major updating commands. 2.4.1 更新の必要条件 How to structure a Texinfo file for using the updating command. 2.4.2 その他の更新コマンド How to indent descriptions, insert missing nodes lines, and update nodes in sequence.
以下を行なうために,更新コマンドを使用することが可能です.
Texinfoの一部や全体の,全てのノードとメニューを更新するためにそのコマン ドを使用することも可能です.
更新コマンドは慣習に従っているTexinfoファイルでしか動作せず,それは本に
似た階層構造をしているものです.そのようなファイルでの構造的なコマンド行
は,`Top'@node行以外のそれぞれの@node行に続ける必要があ
ります.(構造的なコマンド行(structuring command line)は,
@chapter,@section や,他の似たコマンドで始まる行です.)
@node行の直後に続く行や,単一の@comment行や,単一の
@ifinfo行の後に続く行に,構造的なコマンド行を書くことが可能です.
@node行と構造的なコマンド行の間には,一行以上挿入できません.
@comment行や@ifinfo行のみ挿入できます.
バッファ全体で動作するコマンドには,@chapterや,同等のレベルコマ
ンドを用いているノードが続く`Top'ノードが必要です.メニュー更新コマンド
は,@chapterレベルのノードしか持たないTexinfoファイルに対して,
メインやマスターメニューを作成しません!メニュー更新コマンドは,低レベル
のノードのの中にメニューを作成するだけです.章のメニューを作成す
vるために`Top'ノードを提供する必要があります.
メニュー更新コマンドは現在のバッファ内のノードを参照しないので,他のInfo ファイルを参照するメニュー項目を削除します.これは欠陥です.メニュー項目 を使用するのではなく,他のInfoファイルを参照する相互参照を使用することが 可能です.更新コマンドは相互参照に影響しません.
Texinfoモードは,よく使用される五つの更新コマンドがあります.二つは,単一
ノード(や領域)のノードポインタやメニューを更新します.二つは,ファイルの
全てのノードポインタとメニューを更新します.もう一つは,
texinfo-master-menuコマンドで,完全なファイルのマスターメニューを
作成し,さらにTexinfoファイル全体の全てのノードとメニューを更新します.
texinfo-master-menuコマンドは,主要なコマンドです.
引数(対話的な場合は,プレフィクス引数,C-u,)を用いることで,マスター メニューを構築する前に,バッファの全ての通常のメニューを最初に作成更新し ます.(マスターメニューについては,See 節 The Top Node and Master Menu.)
texinfo-master-menuを動作させるため,Texinfoファイルは,`Top'ノー
ドと,少なくとも一つのサブシーケンスノードがある必要があります.
広範囲で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 節 `Editing Variable Values' in
また,texinfo-indent-menu-descriptionを既存のメニューでの記述の字
下げの列の指定に使用することも可能です.終りに,希望があれば
texinfo-insert-node-linesコマンドを,ファイルに足りない
@node行を挿入するために使用することが可能です.(詳細は
See 節 2.4.2 その他の更新コマンド.)
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
更新コマンドを使用するためには,章,セクション,サブセクション,そしてそ れに類するものを用いて,Texinfoファイルを階層的に組織化する必要がありま す.マニュアルの階層構造を構築するとき,一度に一階層以上`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 |
または,(明示的なノードポインタが無ければ)以下のようになります.
@node Comments @section Comments |
この例では,`Comments'はノードとセクションの名前です.次のノードは
`Minimum'と呼ばれ,前のノードは`Conventions'と呼ばれます.`Comments'セク
ションは`Overview'ノードにあり,`Up'ポインタで指定されています.
(@comment行の代わりに,@ifinfo行を書いてもかまいません.)
ファイルに`Top'ノードがある場合,それは,`top'や`Top'と呼ばれ, ファイルの最初のノードにする必要があります.
メニュー更新コマンドは,章のセクションメニュー,セクションのサブセクショ ンメニュー等を作成します.これは,章のメニューが欲しい場合,`Top'ノード が必要だということを意味します.
ところで,makeinfoコマンドは,`Next',`Previous',そして`Up'ポイ
ンタが無い階層的に組織化されたTexinfoファイルに対し,Infoファイルを作成
します.このため,Texinfoファイルがmakeinfoで書式化されることが確
実な場合,ノード更新コマンドは不要です(makeinfoの詳細は,
see 節 20.1 Infoファイルの作成).しかし,makeinfoと
texinfo-format-...コマンドでは,どちらもファイルにメニューを
挿入する必要があります.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
五つの主な更新コマンドに加え,Texinfoモードには,余り使用されていない更新 コマンドもあります.
@nodeが無い場所では,
@chapter,@section,そしてその他のセクションコマンドの前
に@node行を挿入します.
引数(対話的な場合は,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.
texinfo-indent-menu-description コマンドは,領域の全てのメニュー
の記述をを字下げします.しかし,このコマンドは複数行の記述行の二番目と次
に続く行を字下げしません.
texinfo-sequential-node-updateコマンドは領域の全てのノードを更新
します.| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
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 節 20.1 Infoファイルの作成.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Texinfoファイルの植字と印刷は,最初に印刷するための(DVIと呼ばれる)ファイ
ルを作成しその後でファイルを印刷するという,複数のステップによる処理にな
ります.オプションで索引を作成することも可能です.こうするため,最初に
tex植字コマンドを実行した後,texindexコマンドを実行する必
要があります.そして,もう一度texコマンドを実行する必要があります.
また別の方法として,必要な索引を自動的に作成する,texi2dviコマン
ドを実行します(see 節 19.3 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 節 19. 書式化とハードコピーの出力.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
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-l |
TeXの植字と印刷コマンドは,C-c C-tと入力してから,もう一つ制御コ
マンドを入力して呼び出します.texinfo-tex-regionに対するC-r,
texinfo-tex-bufferに対するC-b等です.
C-c C-t C-r TeXを領域で実行. C-c C-t C-b |
残りの更新コマンドは滅多に使用されないのでキーバインドはありません.
M-x texinfo-insert-node-lines
領域に足りない |
| [ << ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |