\input texinfo  @c -*-texinfo-*-
@c %**start of header
@setfilename elisp-jp
@smallbook
@clear jp-draft
@settitle GNU Emacs Lispリファレンス・マニュアル
@c %**end of header

@ifinfo
This is the first DRAFT of GNU Emacs Lisp Reference Manual, Japanese Edition.
It is translated from original edition 2.4, which corresponds Emacs
Version 19.29.
@c Please REMEMBER to update edition number in *six* places in this file
@c                                           (**nine** places in draft)
@c                 and also in *one* place in intro-jp.texi

これはGNU Emacs Lispリファレンス・マニュアル日本語版ドラフトです。
Emacsのバージョン19.29対応の原作2.4版を翻訳したものです。
@c このファイルの＊六＊箇所（ドラフトでは＊＊九＊＊箇所）と intro-jp.texi
@c の＊一＊箇所に版数があるので＊＊忘れずに＊＊更新してください。

Original English language edition
published by the Free Software Foundation, Inc.
59 Temple Place, Suite 330
Boston, MA 02111-1307 USA
@c

Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. 

著作権表示とこの許可告知がすべての写しに載せられている場合に、
本マニュアルをそのまま写した複写を作り配布することを許可します。

@ignore
印刷した文書に、
この段落を欠落させていることを除き
これと同一の複写許可告知が載せられている場合に、
このファイルを TeX で処理し結果を印刷することを許可します
(この段落は印刷したマニュアルについては関係ありません)。

@end ignore
本マニュアルの修正版の複写および配布に関しても、
そのまま複写する場合と同様ですが、この場合には
本許可告知と同一の許可告知のもとにその修正版全体が配布されることが条件です。

本マニュアルの外国語への翻訳版の複写および配布に関しては、修正版の場合に
準じますが、この場合の許可告知は Free Software Foundation の許可を得た
翻訳でもかまいません。

本マニュアルの修正版の複写および配布に関しても、そのまま複写する場合と同
様ですが、この場合には「GNU 一般公有使用許諾書(GNU General Public
License)」の節が元本のとおりに盛り込まれており、かつ本許可告知と同一の内
容の許可告知のもとにその修正版全体が配布されることが条件です。

本マニュアルの外国語への翻訳版の複写および配布に関しては、修正版の場合に
準じますが、この場合の「GNU 一般公有使用許諾書(GNU General Public
License)」の節は元本の英語のとおりではなく Free Software Foundation の
許可を得た翻訳でもかまいません。
@end ifinfo

@c Combine indices.
@synindex cp fn
@syncodeindex vr fn
@syncodeindex ky fn
@syncodeindex pg fn
@syncodeindex tp fn

@iftex
@cropmarks
@c if you have a dviware that's support tpicspecial
@set tpicspecial
@end iftex
@setchapternewpage odd
@c WARNING!!! 最終版ではコメントを外すこと。
@finalout

@titlepage
@title GNU Emacs Lispリファレンス・マニュアル
@subtitle Unixユーザ向け
@subtitle GNU Emacsバージョン19
@c The edition number appears in several places in this file
@c and also in the file intro.texi.
@c 版数はこのファイルのほか intro-jp.texi にもあります。
@subtitle 原作2.4版、1995年6月
@subtitle 日本語ドラフト2.0版、1996年9月

@author by Bil Lewis, Dan LaLiberte, Richard Stallman
@author and the GNU Manual Group
@page
@vskip 0pt plus 1filll
Copyright @copyright{} 1990, 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. 

@sp 2
Japanese DRAFT Revision 2.0, Jan 1996@*
for original
Edition 2.4 @*
Revised for Emacs Version 19.29,@*
June, 1995.@*
@sp 2
@c FSF's ISBN
@c ISBN1-882114-48-5
@c Tohdo-sha's ISBN
@c ISBN4-924828-40-8 C3055 P7000E

@sp 2
著作権表示とこの許可告知がすべての写しに載せられている場合に、
本マニュアルをそのまま写した複写を作り配布することを許可します。

本マニュアルの修正版の複写および配布に関しても、そのまま複写する場合と同
様ですが、この場合には「GNU 一般公有使用許諾書(GNU General Public
License)」の節が元本のとおりに盛り込まれており、かつ本許可告知と同一の内
容の許可告知のもとにその修正版全体が配布されることが条件です。

本マニュアルの外国語への翻訳版の複写および配布に関しては、修正版の場合に
準じますが、この場合の「GNU 一般公有使用許諾書(GNU General Public
License)」の節は元本の英語のとおりではなく Free Software Foundation の
許可を得た翻訳でもかまいません。

Cover art by Etienne Suvasa.
@end titlepage
@page

@node Top, Copying, (dir), (dir)

@ifinfo
This Info file contains DRAFT revision 2.0 of the GNU Emacs Lisp
Reference Manual, Japanese Edition.
It is translated from original edition 2.4, which corresponds Emacs
Version 19.29.
この Info ファイルは GNU Emacs Lisp リファレンス・マニュアルの
日本語訳ドラフト 2.0 版です。
Emacs のバージョン 19.29 対応の原作 2.4 版を翻訳したものです。
@end ifinfo

@menu
* Copying::                 GNU Emacs を複写、変更する条件。
* Introduction::            イントロダクション、そして用いる慣習。

* Lisp Data Types::         Emacs Lisp のオブジェクトのデータ型。
* Numbers::                 数と算術関数。
* Strings and Characters::  文字列とそれを扱う関数。
* Lists::                   リスト、コンス・セルと関連する関数。
* Sequences Arrays Vectors::  シーケンスというリスト、文字列、ベクタ。
                                それに作用する関数。ベクタの説明もここ。
* Symbols::                 一意な名前を表現するシンボル。

* Evaluation::              Lisp 式の評価方法。
* Control Structures::      条件、ループ、非局所脱出。
* Variables::               プログラムで値の代わりにシンボルを使う。
* Functions::               関数とはほかの関数から起動されるLisp
                              プログラム。
* Macros::                  マクロとは Lisp 言語を展開する手段。

* Loading::                 Lisp コードのファイルを読みこむ。
* Byte Compilation::        プログラムを速くするコンパイル。
* Debugging::               Lisp プログラムをデバッグするツールと秘訣。

* Read and Print::          Lisp オブジェクトをテキストに変換したり
                              戻したり。
* Minibuffers::             入力の読込みにミニバッファを使う。
* Command Loop::            エディタ・コマンド・ループのはたらき、
                              それにまつわるサブルーチンの呼出しかた。
* Keymaps::                 キーとコマンドのバインド定義。
* Modes::                   主モード副モードの定義。
* Documentation::           説明文字列の書き方使い方。

* Files::                   ファイルのアクセス。
* Backups and Auto-Saving:: バックアップと自動セーブのファイル
                              のつくり方を制御する。
* Buffers::                 バッファ・オブジェクトのつくり方使い方。
* Windows::                 バッファの表示とウィンドウの操作。
* Frames::                  Xのマルチプル・ウィンドウをつくる。
* Positions::               バッファ位置、移動の関数。
* Markers::                 位置を示し、テキストの変更で
                              自動的に更新されるマーカ。

* Text::                    バッファのテキストの検査、変更。
* Searching and Matching::  バッファから文字列や regexp を検索する。
* Syntax Tables::           語やリストの解析を制御する構文テーブル。
* Abbrevs::                 Abbrev モードの働き、データ構造。

* Processes::               サブプロセスの起動と通信。
* System Interface::        ユーザーid、システム・タイプ、環境変数、
                              そのほか。
* Display::                 画面を制御するパラメータ。ベル。入力待ち。
* Calendar::                暦と日記のカスタマイズ。

付録

* Tips::                    Lisp プログラムを書くときの注意。
* GNU Emacs Internals::     Emacs の構築とダンプ、内部構造。
* Standard Errors::         エラー・シンボルのリスト。
* Standard Buffer-Local Variables::  バッファでローカルな変数のリスト。
* Standard Keymaps::        標準キーマップのリスト。
* Standard Hooks::          標準フック変数のリスト。

* Antinews::                Emacs 18 についての情報。

* Index::                   概念、関数、変数、そのほか術語の目次。

      --- 詳細 Node リスト ---

上記の node 内にある node。
ここから直接たどることができます。

序文

* Caveats::                 欠陥、および手助けの求めかた。
* Lisp History::            Emacs Lisp は Maclisp からきた。
* Conventions::             マニュアルの書式。
* Acknowledgements::        このマニュアルの原作者、編集者、スポンサー。

慣習

* Some Terms::              このマニュアルで使う術語の説明。
* nil and t::               シンボルの@code{nil}と@code{t}の使い方。
* Evaluation Notation::     評価の例で使う書式。
* Printing Notation::       印字出力の例で使う書式。
* Error Messages::          エラーの例で使う書式。
* Buffer Text Notation::    例でのバッファ内容の書式。
* Format of Descriptions::  関数、変数などの説明文の書式。

説明文の書式

* A Sample Function Description::       架空の関数@code{foo}の説明。
* A Sample Variable Description::       架空の変数
                                          @code{electric-future-map}の
                                          説明。

Lisp のデータ型

* Printed Representation::  Lisp オブジェクトがテキストとして
                              表わされる方法。
* Comments::                コメントと、その形式の規定。
* Programming Types::       全ての Lisp システムにある型。
* Editing Types::           Emacs 特有の型。
* Type Predicates::         型に関連するテスト。
* Equality Predicates::     二つのオブジェクトの等価性のテスト。

プログラム型

* Integer Type::        小数部のない数。
* Floating Point Type:: 小数部があり、大きな範囲をもつ数。
* Character Type::      文字、数、制御文字の表現。
* Sequence Type::       シーケンスとして分類されるリストと配列。
* Cons Cell Type::      コンス・セルと(コンス・セルから作られる)リスト。
* Array Type::          文字列とベクタを含む配列。
* String Type::         文字(に特化した)配列。
* Vector Type::         一次元配列。
* Symbol Type::         関数、変数、属性リストを参照し、一意な独自性を
                        もつ多目的のオブジェクト。
* Function Type::       ほかから呼出すことのできる実行コードの一つ。
* Macro Type::          ほかの式の中に式を展開する手法であり、より
                          基本的であるが、きれいではない。
* Primitive Function Type::     C で記述された関数で、
                                Lisp から呼出すことのできるもの。
* Byte-Code Type::      Lisp で記述された関数で、コンパイルされたもの。
* Autoload Type::       関数を使用するときに自動的にロードするように
                        するのに使用する型。

リスト型

* Dotted Pair Notation::    リストのための代替の構文。
* Association List Type::   特別に構成されたリスト。

編集型

* Buffer Type::             編集用の基本オブジェクト。
* Window Type::             バッファを表示するもの。
* Frame Type::              ウィンドウはフレームに分割される。
* Window Configuration Type::   フレームが分割された方法の保存。
* Marker Type::             バッファ内の位置。
* Process Type::            OS の下で動作するプロセス。
* Stream Type::             文字の受信と送信。
* Keymap Type::             キー・ストロークが何の関数を起動するか。
* Syntax Table Type::       文字が何を意味するか。
* Display Table Type::      表示テーブルを表現する方法。
* Overlay Type::            オーバレイを表現する方法。

数

* Integer Basics::            整数の表現と範囲。
* Float Basics::              浮動小数点の表現と範囲。
* Predicates on Numbers::     数の検査。
* Comparison of Numbers::     等価と不等価の述語。
* Arithmetic Operations::     加減乗除の方法。
* Rounding Operations::       浮動小数点数のあからさまな丸め。
* Bitwise Operations::        論理積、和、否定、けた送り。
* Numeric Conversions::       浮動から整数への変換とその逆。
* Math Functions::            三角、指数、対数関数。
* Random Numbers::            整数乱数の求め方、予見性の有無。

文字列と文字

* String Basics::           文字列・文字の基本的な性質。
* Predicates for Strings::  文字列の述語。
* Creating Strings::        文字列の生成。
* Text Comparison::         文字・文字列の比較。
* String Conversion::       文字・文字列間の変換。
* Formatting Strings::      @code{format}: 書式変換。
* Character Case::          大文字小文字変換。
* Case Table::              大文字小文字変換のカスタマイズ。

リスト

* Cons Cells::              どのようにリストがコンス・セルから
                              構成されるか。
* Lists as Boxes::          リストの図を用いた表現方法。
* List-related Predicates:: このオブジェクトはリストか? 二つのリストの比較。
* List Elements::           リストの一部を取り出す。
* Building Lists::          リスト構造をつくる。
* Modifying Lists::         すでにあるリストに新たな要素を加える。
* Sets And Lists::          リストによる有限数学的集合の表現。
* Association Lists::       リストによる有限関係もしくは写像の表現。

既存のリスト構造の修正

* Setcar::                  リストの中の一つの要素を置き換える。
* Setcdr::                  リストの中の一部分を置き換える。これは要素の
                              抹消、追加に用いることができます。
* Rearrangement::           リストの中の要素の順序を換える。リストを
                              組み合わせる。

シーケンス、配列、ベクタ

* Sequence Functions::      任意の種類のシーケンスを受けつける関数。
* Arrays::                  Emacs Lisp における配列の特性。
* Array Functions::         配列に特化した関数。
* Vectors::                 Emacs Lisp のベクタの特徴。
* Vector Functions::        ベクタに特化した関数。

シンボル

* Symbol Components::       シンボルは名前、値、関数定義と属性リストを
                              持っています。
* Definitions::             定義はシンボルがどのように使われるかを
                              示します。
* Creating Symbols::        どのようにしてシンボルが一意に保たれるか。
* Property Lists::          各シンボルは、種々の情報を記録するために、
                              属性リストを持っています。

評価

* Intro Eval::              評価とはどのようなものか。
* Eval::                    Lispインタプリタの明示的起動法。
* Forms::                   さまざまな種類のオブジェクトをどのように評価
                              するか。
* Quoting::                 評価の避け方(プログラムに定数を置く方法)。

形式の種類

* Self-Evaluating Forms::   自分自身に評価される形式。
* Symbol Forms::            変数として評価されるシンボル。
* Classifying Lists::       さまざまな種類のリスト形式の区別法。
* Function Indirection::    シンボルがリストのcarとして現れた時は、
                                実際の関数をそのシンボルから見つける。
* Function Forms::          関数を呼出す形式。
* Macro Forms::             マクロを呼出す形式。
* Special Forms::           「特殊形式」は独特なプリミティブであり、
                                そのほとんどが大変に重要。
* Autoloading::             実際の定義を含むファイルを
                                ロードするように設定する関数。

制御構造

* Sequencing::              テキストどおりの順序で評価。
* Conditionals::            @code{if},@code{cond}.
* Combining Conditions::    @code{and},@code{or},@code{not}.
* Iteration::               @code{while}ループ。
* Nonlocal Exits::          シーケンス外シャンプ。

非局所脱出

* Catch and Throw::         プログラム自身の目的のための非局所脱出。
* Examples of Catch::       そのような非局所脱出をどのように記述するかの
                              例。
* Errors::                  エラーはどのように伝えられ、ハンドルされるか。
* Cleanups::                エラーが起きた際の掃除形式を実行するため
                              の配置。

エラー

* Signaling Errors::        エラーを報告する方法。
* Processing of Errors::    エラーを報告したときに Emacs が行うこと。
* Handling Errors::         エラーの捕捉と実行の継続の方法。
* Error Symbols::           捕らえたエラーを分類する方法。

変数

* Global Variables::        恒久的に全域に存在する変数の値。
* Constant Variables::      値が変更されない「変数」。
* Local Variables::         一時的に存在する変数の値。
* Void Variables::          値のない記号。
* Defining Variables::      記号が変数として使用されるという定義。
* Accessing Variables::     実行時にしか名前のわからない変数の値を
                              調べる。
* Setting Variables::       変数に新しく値を格納する。
* Variable Scoping::        Lispがローカル/グローバル変数を選択する方法。
* Buffer-Local Variables::  1バッファ内でのみ有効な変数の値。

変数束縛のスコープに関する規則

* Scope::                   スコープとはプログラムの変数が可視になる箇所。
                              ほかの言語との比較。
* Extent::                  エクステントとは変数が存在する期間。
* Impl of Scope::           動的スコープを実現する2種類の方法。
* Using Scoping::           動的スコープの使用に注意して問題を避ける方法。

バッファに対してローカルな変数

* Intro to Buffer-Local::   紹介と基本概念。
* Creating Buffer-Local::   バッファに対してローカルな束縛の作成と破棄。
* Default Value::           独自のローカル値をもたないバッファの
                              デフォルト値。

関数

* What Is a Function::      Lisp関数とプリミティブ (用語)。
* Lambda Expressions::      Lispオブジェクトとしての関数の表現方法。
* Function Names::          関数の名前として使えるシンボル。
* Defining Functions::      関数を定義するためのLisp式。
* Calling Functions::       既存の関数の使い方。
* Mapping Functions::       リストの各要素への関数の適用。
* Anonymous Functions::     名前をもたない関数 - ラムダ式。
* Function Cells::          シンボルの関数定義へのアクセスと設定。
* Inline Functions::        コンパイラがコードを埋め込む関数の定義。
* Related Topics::          関数の動作に特別な影響がある特定のLisp
                              プリミティブへの相互参照。

ラムダ式

* Lambda Components::       ラムダ式の各部分。
* Simple Lambda::           簡単な例。
* Argument List::           引数リストの詳細と特殊機能。
* Function Documentation::  関数内にドキュメントを記述する方法。

マクロ

* Simple Macro::            簡単な例。
* Expansion::               どうして、いつ、どのようにマクロを展開するか。
* Compiling Macros::        コンパイラは、どのようにマクロを展開するか。
* Defining Macros::         マクロ定義の書き方。
* Backquote::               リスト構造の簡単な構築。
* Problems with Macros::    マクロの引数を何度も評価してはいけない。
                              ユーザの変数を隠してはいけない。

ロード

* How Programs Do Loading::     @code{load}関数、そのほか。
* Autoload::                    関数が自動ロードされるように設定します。
* Named Features::              ライブラリがまだロードされてないならば、
                                    ロードします。
* Repeated Loading::            ファイルを2度ロードする時の気配り。
* Unloading::                   ロードされたライブラリをアンロードするには。
* Hooks for Loading::           特定のライブラリがロードされた時に
                                    実行するコードを用意します。

バイトコンパイル

* Speed of Byte-Code::      バイトコンパイルによる速度向上の例。
* Compilation Functions::   バイトコンパイルを行なう関数。
* Docs and Compilation::    説明文字列の動的なロード。
* Dynamic Loading::         個々の関数の動的なロード。
* Eval During Compile::     コンパイル時に評価されるコード。
* Byte-Code Objects::       バイトコンパイルされた関数に使われる
                              データタイプ。
* Disassembly::             バイトコードの逆アセンブル; バイトコードの
                              読み方。

Lisp プログラムのデバッグ

* Debugger::                Emacs Lisp デバッガの実装方法。
* Syntax Errors::           構文エラーのさがしかた。
* Compilation Errors::      バイトコンパイルしてあらわれたエラーの
                              さがしかた。
* Edebug::                  ソースレベル Emacs Lisp デバッガ。
                                
Lisp デバッガ

* Error Debugging::         エラー発生時にデバッガにはいる。
* Infinite Loops::          脱出しないプログラムの停止とデバッグ。
* Function Debugging::      特定の関数の呼出しではいる。
* Explicit Debug::          プログラムの特定の場所ではいる。
* Using Debugger::          デバッガは何をするか、何が見えるか。
* Debugger Commands::       デバッガで使えるコマンド。
* Invoking the Debugger::   関数@code{debug}の呼出しかた。
* Internals of Debugger::   デバッガのサブルーチンとグローバル変数。

不正な Lisp 構文のデバッグ

* Excess Open::             余計な開き括弧や足りない閉じ括弧のみつけ方。
* Excess Close::            余計な閉じ括弧や足りない開き括弧のみつけ方。

Lisp オブジェクトの読込みと印字

* Streams Intro::           ストリーム、読込み、印字の概要。
* Input Streams::           入力ストリームとして使用可能な各種データ型。
* Input Functions::         テキストから Lisp オブジェクトを
                              読込むための関数。
* Output Streams::          出力ストリームとして使用可能な各種データ型。
* Output Functions::        Lisp オブジェクトをテキストとして
                              印字するための関数。
* Output Variables::        印字関数群の動作を制御するための変数。

ミニバッファ

* Intro to Minibuffers::    ミニバッファに関する基本的なことがら。
* Text from Minibuffer::    テキスト文字列を直接読む方法。
* Object from Minibuffer::  Lisp式やオブジェクトを読込む方法。
* Minibuffer History::      ユーザが再使用できるように、
                              以前のミニバッファ入力を記録している。
* Completion::              補完の起動、カスタマイズの方法。
* Yes-or-No Queries::       単純な答えになる質問をする。
* Multiple Queries::        似通った一連の質問をする。
* Minibuffer Misc::         さまざまなカスタマイズ用フックと変数。

補完

* Basic Completion::        文字列を補完する低水準関数。
                              (ミニバッファで使うには低水準すぎる。)
* Minibuffer Completion::   ミニバッファを補完つきで起動する。
* Completion Commands::     補完を行なうミニバッファ・コマンド。
* High-Level Completion::   便利な補完の特例。
                              (バッファ名、ファイル名などの読込み。)
* Reading File Names::      補完をファイル名読み取りに使う。
* Programmed Completion::   与えられたファイル名のための補完を見つける。

コマンド・ループ

* Command Overview::    コマンド・ループがコマンドを読む方法。
* Defining Commands::   関数がどのように引数を読むかを指定する。
* Interactive Call::    引数を読込むように、コマンドを呼出す。
* Command Loop Info::   コマンド・ループが設定する、自分で調べられる変数。
* Input Events::        入力を読み込んだ時にどのように見えるか。
* Reading Input::       キーボードやマウスから入力イベントを読込む方法。
* Waiting::             時間の経過あるいは入力を待つ。
* Quitting::            どのように@kbd{C-g}が働くか。
                        とりやめをcatchするあるいは延期する方法。
* Prefix Command Arguments::    コマンドが前置引数を使えるようにする方法。
* Recursive Editing::   再帰編集に入ることと、普通はそうすべきでない
                          理由。
* Disabling Commands::  禁止されたコマンドをコマンド・ループが
                          操作する方法。
* Command History::     コマンド履歴はどう設定されるかと、アクセスの方法。
* Keyboard Macros::     キーボード・マクロがどのように実装されているか。

コマンドの定義

* Using Interactive::       @code{interactive}についての一般規則。
* Interactive Codes::       さまざまな方法で引数を読込むための
                              標準文字コード。
* Interactive Examples::    対話的引数の読込み方の例。

キーマップ

* Keymap Terminology::          キーマップ関連用語の定義。
* Format of Keymaps::           キーマップをLispオブジェクトとしてみると。
* Creating Keymaps::            キーマップを作る/コピーする関数。
* Inheritance and Keymaps::     キーマップは別のキーマップからどのように
                                  してバインドを継承するか。
* Prefix Keys::                 キーの定義としてキーマップを定義する。
* Menu Keymaps::                キーマップはXウィンドウや端末で
                                  メニューを定義できる。
* Active Keymaps::              おのおののバッファは標準(グローバル)バインド
                                  を上書きするローカル・キーマップをもつ。
                                  各副モードもそれを上書きできる。
* Key Lookup::                  どのようにしてキーマップの要素を
                                  抽出するか。
* Functions for Key Lookup::    キー検索の要求の仕方。
* Changing Key Bindings::       キーマップのキーの定義し直し。
* Key Binding Commands::        キーを定義し直す対話的インタフェース。
* Scanning Keymaps::            ヘルプを表示するために全キーマップを
                                  調べる。

主モード、副モード

* Major Modes::             主モードの定義。
* Minor Modes::             副モードの定義。
* Mode Line Format::        モード行の表示の変更。
* Hooks::                   フックの使い方、フックを実行するコードの
                              書き方。

主モード

* Major Mode Conventions::  キーマップやそのほかに関する慣例。
* Example Major Modes::     主モードの例: Text モードと Lisp 諸モード。
* Auto Major Mode::         主モードの自動選択の仕組み。
* Mode Help::               モードの使い方をユーザに説明する。
* Derived Modes::           別の主モードをベースに新しいモードを
                              作る。

副モード

* Minor Mode Conventions::  副モードの記述方法についての慣例。
* Keymaps and Minor Modes:: 副モードはいかにして独自のキーマップを
                              もつか。

モード行フォーマット

* Mode Line Data::          モード行を制御するデータ構造。
* Mode Line Variables::     そのデータ構造の中で使用されている変数。
* %-Constructs::            モード行に情報を入れる。

説明文字列

* Documentation Basics::    説明文字列のよいスタイル。
                              配置される場所。Emacs が格納する方法。
* Accessing Documentation:: Lisp プログラムから説明文字列を使用する方法。
* Keys in Documentation::   現在のキー割り当ての変更。
* Describing Characters::   印字されない文字やキー・シーケンスを
                              印字文字で記述する方法。
* Help Functions::          Emacs のヘルプ機能で使われるサブルーチン。

ファイル

* Visiting Files::          編集のためにEmacsのバッファにファイルを
                              読込む。
* Saving Buffers::          変更されたバッファをファイルに書き込む。
* Reading from Files::      ほかのバッファにファイルを読込む。
* Writing to Files::        バッファの一部分を新しいファイルに書き込む。
* File Locks::              同時に2人の人間が同一ファイルを修正するのを
                              防ぐためにファイルをロック、アンロックする。
* Information about Files:: ファイルの存在、アクセス可能性、
                              サイズの検査。
* Contents of Directories:: あるディレクトリの中にあるファイルのリストを
                              得る。
* Changing File Attributes::ファイル名の変更、 プロテクション変更、など。
* File Names::              ファイル名の分解、展開。
* Create/Delete Dirs::      ディレクトリの作成、消去。
* Magic File Names::        あるファイル名に対して"マジックな"特別の
                              扱い方を定義する。
* Format Conversion::       さまざまなファイル・フォーマット
                              へ/からの変換。
* Files and MS-DOS::        MS-DOS上のテキストとバイナリ・ファイルの区別。

ファイルを visit する

* Visiting Functions::      visit するための通常のインタフェース関数。
* Subroutines of Visiting:: そのインタフェース関数が使用する、
                              低レベル関数。

ファイル情報

* Testing Accessibility::   与えられたファイルは可読か? 書き込み可能か?
* Kinds of Files::          ディレクトリか? リンクか?
* Truenames::               ファイル名からシンボリック・リンク部分を
                              除去する。
* File Attributes::         ファイルのサイズは?  別名は?  など。

ファイル名

* File Name Components::    ファイル名のディレクトリ部分とその残り部分。
* Directory Names::         ディレクトリとしてのディレクトリの名前は、
                              ファイルとしての名前とは異なります。
* Relative File Names::     ファイル名には、現在のディレクトリからの
                              相対的な名前である場合があります。
* File Name Expansion::     相対ファイル名から絶対ファイル名への変換。
* Unique File Names::       テンポラリ・ファイルの名前の生成。
* File Name Completion::    与えられたファイル名に対する補完候補の発見。

バックアップと自動セーブ

* Backup Files::            バックアップ・ファイルはどのように作られるか。
                              名前はどのように選ばれるのか。
* Auto-Saving::             自動セーブ・ファイルはどのように作られるか。
                              名前はどのように選ばれるのか。
* Reverting::               @code{revert-buffer}とそのカスタマイズ方法。

バックアップ・ファイル

* Making Backups::          Emacsはいつ、どのように
                              バックアップ・ファイルを作るか。
* Rename or Copy::          二つの選択肢。古いファイルの名前を変えるか、
                              コピーするか。
* Numbered Backups::        おのおののソース・ファイルの複数の
                              バックアップをとっておく。
* Backup Names::            バックアップ・ファイルの名前のつけ方、
                              カスタマイズ。

バッファ

* Buffer Basics::           バッファとは何か?
* Buffer Names::            バッファの名前へのアクセスおよびその変更。
* Buffer File Name::        バッファ・ファイル名は対応づけられている
                              ファイルを示す。
* Buffer Modification::     セーブする必要のあるバッファは
                              @dfn{修正済み(modified)}となる。
* Modification Time::       対応するファイルが ``Emacs の裏'' で変更
                              されたことの検出。
* Read Only Buffers::       読出し専用バッファは変更ができない。
* The Buffer List::         全てのバッファの一覧。
* Creating Buffers::        バッファを生成する関数。
* Killing Buffers::         バッファは明示的にkillするまで存在する。
* Indirect Buffers::        間接バッファはほかのバッファとテキストを
                              共有する。
* Current Buffer::          あるバッファをカレント・バッファにする。
                              これによりプリミティブがそのバッファの
                              内容を処理できるようになる。

ウィンドウ

* Basic Windows::           ウィンドウを使用するうえでの基本的な知識。
* Splitting Windows::       一つのウィンドウを二つに分割する。
* Deleting Windows::        ウィンドウの消去は別のウィンドウに
                              その場所を譲る。
* Selecting Windows::       選択されたウィンドウが編集の対象となる。
* Cyclic Window Ordering::  既存のウィンドウ間の移動。
* Buffers and Windows::     各ウィンドウはバッファの内容を表示する。
* Displaying Buffers::      あるバッファを表示して、そのウィンドウを選択
                              するための高水準関数。
* Choosing Window::         あるバッファを表示しているウィンドウを
                              選択する方法。
* Window Point::            各ウィンドウはそれ自身のポイント位置をもつ。
* Window Start::            表示開始位置は、そのウィンドウ内でどの
                              テキストが表示されるかを制御する。
* Vertical Scrolling::      ウィンドウ内でのテキストの上下移動。
* Horizontal Scrolling::    ウィンドウ内でのテキストの横移動。
* Size of Window::          ウィンドウ・サイズの入手。
* Resizing Windows::        ウィンドウ・サイズの変更。
* Coordinates and Windows:: 座標からウィンドウへの変換。
* Window Configurations::   画面状態の保存と復元。

フレーム

* Creating Frames::         追加のフレームの作成。
* Multiple Displays::       別のX表示上のフレームの作成。
* Frame Parameters::        フレームのサイズや位置、フォントなどの制御。
* Frame Titles::            フレームタイトルの自動更新。
* Deleting Frames::         フレームは明示的に消去するまでなくならない。
* Finding All Frames::      存在する全てのフレームの調べ方。
* Frames and Windows::      フレームにはウインドウが入っている。
                              テキストは常にウインドウを通して表示される。
* Minibuffers and Frames::  フレームはどのようにして使うミニバッファ
                              を見つけるか。
* Input Focus::             選択されたフレームの指定。
* Visibility of Frames::    フレームは可視か不可視かアイコン化のどれか。
* Raising and Lowering::    フレームを上昇させるとほかのXのウインドウ
                              は隠される。下降させるとほかのに隠される。
* Frame Configurations::    全てのフレームの状態の保存。
* Mouse Tracking::          マウスが動いたときにイベントを得る。
* Mouse Position::          マウスがどこにいるかを知る、または動かす。
* Pop-Up Menus::            ユーザに選択させるためにメニューを表示する。
* Dialog Boxes::              yesかnoを聞くための箱を表示する。
* Pointer Shapes::          マウスポインタの形状の指定。
* X Selections::            ほかのXクライアントとテキストの
                              やりとりをする。
* Color Names::             色名の定義を得る。
* Resources::               サーバーからリソースの値を得る。
* Server Data::             Xサーバーに関する情報を得る。

位置

* Point::                   編集を行なう特別な位置。
* Motion::                  ポイントの変更。
* Excursions::              一時的な移動およびバッファの変更。
* Narrowing::               バッファの一部分に編集を制限する。

移動

* Character Motion::        文字単位での移動。
* Word Motion::             語単位での移動。
* Buffer End Motion::       バッファの先頭あるいは末尾への移動。
* Text Lines::              テキスト行単位での移動。
* Screen Lines::            画面行単位での移動。
* List Motion::             リストやS式を解析しながらの移動。
* Skipping Characters::     ある集合に属す文字を飛ばす。

マーカー

* Overview of Markers::     マーカの構成要素と再配置の手順。
* Predicates on Markers::   あるオブジェクトがマーカであるかどうか調べる。
* Creating Markers::        空のマーカや特定の場所にマーカを設定する。
* Information from Markers::  マーカの属するバッファやマーカの位置を調べる。
* Changing Markers::        マーカを別のバッファ、位置に移す。
* The Mark::                マーカでマークを作る。
* The Region::              リージョンの扱い方。

テキスト

* Near Point::             ポイント近くのテキストの調査。
* Buffer Contents::        一般的なテキストの調査。
* Comparing Text::         バッファの一部の文字列比較。
* Insertion::              バッファへの新しいテキストの追加。
* Commands for Insertion::  テキストを挿入するユーザ・レベル・コマンド。
* Deletion::               バッファからのテキストの消去。
* User-Level Deletion::     テキストを消去するユーザ・レベル・コマンド。
* The Kill Ring::          抹消されたテキストを後で使用するため保存する
                             場所。
* Undo::                   バッファのテキストの変更の取り消し。
* Maintaining Undo::       取り消し情報の許可と禁止の方法。
                             どれだけの情報を保存するのか制御する方法。
* Auto Filling::           行をわけるためのAuto Fillモードの実装方法。
* Filling::                あからさまなつめ込みの関数。
* Margins::                詰め込みコマンドのマージンを指定する方法。
* Sorting::                バッファの一部分を整列する関数。
* Indentation::            字下げの訂正と挿入の関数。
* Columns::                水平位置の計算と利用。
* Case Changes::           バッファの一部分の大文字/小文字の変換。
* Text Properties::        テキスト文字への Lisp 属性の割りあて。
* Substitution::           任意の文字の全置換え。
* Transposition::          バッファ内の二つの部分の交換。
* Registers::              レジスタの実装方法。レジスタに保管した
                             テキストや位置へのアクセス。
* Change Hooks::           テキストを変更したときに作動する補助関数。
                              
killリング

* Kill Ring Concepts::      killリングはどういうふうになっているか。
* Kill Functions::          テキストをkillする関数。
* Yank Commands::           killリングにアクセスするコマンド。
* Low-Level Kill Ring::     killリングにアクセスする関数と変数。
* Internals of Kill Ring::  killリングデータを保管する変数。

字下げ

* Primitive Indent::        字下げを数えたり挿入したりする関数。
* Mode-Specific Indent::    異なるモードでの字下げのカスタマイズ。
* Region Indent::           リージョン内の各行の字下げを行なう。
* Relative Indent::         前の行をもとに現在の行の字下げを行なう。
* Indent Tabs::             調節可能でタイプライターのようなタブ・ストップ。
* Motion by Indent::        空白でない最初の文字へ移動する。

検索と照合

* String Search::           厳密に照合する検索。
* Regular Expressions::     文字列集合の記述。
* Regexp Search::           正規表現の照合を行なう検索。
* POSIX Regexps::           POSIXふうの最長照合の検索。
* Search and Replace::      @code{query-replace}の内部構造。
* Match Data::              正規表現の検索の後で、テキストのどの部分が、
                              正規表現のどこと照合したか調べる。
* Saving Match Data::       照合データの保存と復帰。
* Standard Regexps::        文、ページなどを探すとき便利な正規表現。
* Searching and Case::      検索時の大文字小文字の区別の有無。

正規表現

* Syntax of Regexps::       正規表現を書くときの規則。
* Regexp Example::          正規表現の構文の説明。

構文テーブル

* Syntax Basics::           構文テーブルの基本的な考え方。
* Syntax Descriptors::      どのように文字は分類されるか。
* Syntax Table Functions::  構文テーブルはどのように作成され、検査され、
                              変更されるか。
* Motion and Syntax::       ある構文での文字の動き。
* Parsing Expressions::     構文テーブルを使った正しい表現。
* Standard Syntax Tables::  種々の主モードで使われる構文テーブル
* Syntax Table Internals::  構文テーブルの情報はどのように
                              格納されているか。

構文記述子

* Syntax Class Table::      構文クラスのテーブル。
* Syntax Flags::            おのおのの文字が持てる追加のフラグ。

省略とその展開

* Abbrev Mode::             Emacsで省略形が使えるように準備する。
* Tables: Abbrev Tables.    省略形テーブルの作成と使用方法。
* Defining Abbrevs::        省略形の定義とその展開。
* Abbrev Files::            省略形をファイルにセーブする。
* Abbrev Expansion::        展開の制御;展開サブルーチン。
* Standard Abbrev Tables::  さまざまな主モードで使用される省略形テーブル。

プロセス

* Subprocess Creation::     サブプロセスを起動する関数。
* Synchronous Processes::   同期サブプロセスの使い方の詳細。
* MS-DOS Subprocesses::     MS-DOSにおいては、サブプロセスとやりとりする
                              データがバイナリかテキストかを示さなければ
                              なりません。
* Asynchronous Processes::  非同期サブプロセスの起動。
* Deleting Processes::      非同期サブプロセスの切り離し。
* Process Information::     実行ステータスなどの属性へのアクセス。
* Input to Processes::      非同期サブプロセスへの入力の送信。
* Signals to Processes::    非同期サブプロセスの停止、続行、割り込み。
* Output from Processes::   非同期サブプロセスからの出力の収集。
* Sentinels::               プロセスの実行ステータスが変化した
                              ときに動作する監視関数。
* Transaction Queues::      サブプロセスとのトランザクション型通信。
* Network::                 ネットワーク接続の確立。

プロセス出力の受信

* Process Buffers::         フィルタがなければ、出力はバッファに挿入されます。
* Filter Functions::        フィルタ関数はプロセスからの出力を受け取ります。
* Accepting Output::        サブプロセスの出力を待つ方法。

OS インタフェース

* Starting Up::             Emacs開始処理のカスタマイズ。
* Getting Out::             (永続的または一時的な) 終了のしくみ。
* System Environment::      システムの名前と種類の特定について。
* User Identification::     ユーザの名前と識別子の検索。
* Time of Day::             現在時刻の取得。
* Time Conversion::         数値形式から文字列への時刻の変換、
                              暦データへの変換、そしてその逆。
* Timers::                  ある時刻にある関数を呼出すタイマーの設定。
* Terminal Input::          デバッグ用の端末入力記録。
* Terminal Output::         デバッグ用の端末出力記録。
* Special Keysyms::         Xウィンドウでのシステム特有の
                              キー・シンボルの定義。
* Flow Control::            出力フロー制御のオンオフの方法。
* Batch Mode::              Emacs を端末との対話ぬきで起動する。

Emacs を立ち上げる

* Start-up Summary::        Emacsが開始時に行なう一連の動作について。
* Init File::               初期化ファイル (@file{.emacs}) の読込みの詳細。
* Terminal-Specific::       端末特有のLispファイルの読込み方。
* Command Line Arguments::  コマンド行引数の処理のしかたとカスタマイズの方法。

Emacs から抜ける

* Killing Emacs::           Emacs を完全に抜ける。
* Suspending Emacs::        Emacs をサスペンドする。

Emacs の表示

* Refresh Screen::          画面を消去しすべてを再表示する。
* Screen Size::             Emacsの画面の大きさ。
* Truncation::              長いテキスト行の表示方法。
* The Echo Area::           メッセージの表示場所。
* Invisible Text::          バッファ・テキストの部分的非表示。
* Selective Display::       バッファ・テキストの部分的非表示 (旧式)。
* Overlay Arrow::           場所を示す矢印の表示。
* Temporary Displays::      自動的に消される表示。
* Overlays::                オーバレイを使ったテキストの部分的ハイライト。
* Faces::                   グラフィックスの見かけ(フォント、色など)を定義
                            するフェース。
* Blinking::                対応する括弧の示し方。
* Inverse Video::           スクリーンの見かけ。
* Usual Display::           制御文字の通常の表示方法。
* Display Tables::          ほかの表示方法の指定の仕方。
* Beeping::                 ユーザに音で知らせる。
* Window Systems::          使われているウィンドウ・システム。

GNU Emacs の内部構造

* Building Emacs::          EmacsにLispライブラリをプリロードさせる方法。
* Pure Storage::            プリロードしたLisp関数を共有する小細工。
* Garbage Collection::      使われないLispオブジェクトの空間を回収する。
* Object Internals::        バッファ、ウィンドウ、プロセスのデータ形式。
* Writing Emacs Primitives::  CでEmacsのコードを書く。

オブジェクトの内部構造

* Buffer Internals::        バッファの内部構造。
* Window Internals::        ウィンドウの内部構造。
* Process Internals::       プロセスの内部構造。
@end menu

@include intro-jp.texi
@include objects-jp.texi
@include numbers-jp.texi
@include strings-jp.texi

@include lists-jp.texi
@include sequences-jp.texi
@include symbols-jp.texi
@include eval-jp.texi

@include control-jp.texi
@include variables-jp.texi
@include functions-jp.texi
@include macros-jp.texi

@include loading-jp.texi
@include compile-jp.texi
@include debugging-jp.texi
@include streams-jp.texi

@include minibuf-jp.texi
@include commands-jp.texi
@include keymaps-jp.texi
@include modes-jp.texi

@include help-jp.texi
@include files-jp.texi
@include backups-jp.texi
@include buffers-jp.texi

@include windows-jp.texi
@include frames-jp.texi
@include positions-jp.texi
@include markers-jp.texi
@include text-jp.texi

@include searching-jp.texi
@include syntax-jp.texi
@include abbrevs-jp.texi

@include processes-jp.texi
@include os-jp.texi
@include display-jp.texi
@include calendar-jp.texi

@c MOVE to Emacs Manual:  include misc-modes.texi

@c appendices

@c  REMOVE this:  include non-hacker.texi

@include tips-jp.texi
@include internals-jp.texi
@include errors-jp.texi
@include locals-jp.texi
@include maps-jp.texi
@include hooks-jp.texi
@include anti-jp.texi

@include wordlist-jp.texi
@c あとがきじゃなく、intro-jp.texiの中に「訳者まえがき」を入れました。
@c @include postscript-jp.texi

@include index-jp.texi

@c Print the tables of contents
@summarycontents
@contents
@c That's all

@bye


These words prevent "local variables" above from confusing Emacs.
