Frequently Asked Questions and Answers list for Mule
****************************************************

1995年 4月 25日版

この FAQ の目的は、Mule に関してよく出される質問とその答を参照しやすい
ようにまとめることにあります。 内容はできるだけ確認をとるようにしていま
すが、 間違いを見つけられた方はお知らせいただけると幸いです。 また、新
しい追加項目なども歓迎いたします。

最新の FAQ を入手する方法は、 質問の A-11 に書かれています。

この FAQ の作成にあたり、大変多くの方々から助言を頂きました。ご協力を
いただいた方々に感謝いたします。

Takahiro Maebashi <maebashi@iij.ad.jp>


この FAQ の構成
===============

Mule FAQ は大きく分けて以下のような Part 1 と Part 2 から構成されています。 

   Part 1: 各国語に共通した質問 
   Part 2: 特定の言語に固有の質問 

各 Part は、さらにいくつかのセクションに分かれています。 Part 1 は質問の分
野別に、Part 2 は言語別になっています。 Part 1 と Part 2 のそれぞれに ほとんど
同じ内容の質問が含まれていることもありますが、 これは読み手が必要な情報
にたどり着きやすいようにするためです。 


目次
====

この FAQ の構成
===============

この FAQ に新たに付け加わったことは? 

Mule FAQ Part 1: 各国語共通の質問
=================================

一般的な情報
============

A-1: Mule とはなんですか? 
A-2: Mule はどこから入手できますか? 
A-3: Mule の最新バージョンはいくつですか? 
A-4: Mule は将来 GNU Emacs に統合されるのですか? 
A-5: Mule は PC の OS の上(MS-DOS, Windows, OS/2)で動きますか? 
A-6: Mule Ver.1 と比べて Mule Ver.2 を使うと何がうれしいですか? 
A-7: Mule のメーリングリストがありますか? 
A-8: Mule のバグレポートは、どこにすればいいでしょうか? 
A-9: Mule には日本語(英語/韓国語/中国語)のマニュアルがついていますか? 
A-10: Mule という名前の由来は? 
A-11: このドキュメント(Mule FAQ list)の最新版はどこから入手できますか? 
A-12: Mule 2.2 で未対応の機能を教えて下さい。 

構築およびインストール
======================

B-1: configure のオプションにはどんなものがありますか? 
B-2: SunOS 4.1.x のマシンで、X Window System で動く Mule を 作るにはどうす
ればいいですか? 
B-3: Wnn や Canna を Mule で使えるようにするには どうしたらいいのですか? 
B-4: "Pure Lisp storage exhausted" というメッセージが出て コンパイルが止まっ
てしまうのですが。 
B-5: "Undefined Symbol: __des_crypt" というメッセージが出てコン
パイルが止まってしまうのですが。 
B-6: Mule で shell mode を使うと、行の最後に ^M がついてしまうのですがどう
してでしょうか? 
B-7: Mule のコンパイルは正常にできたのですが、 英語以外の言語がうまく入
力できません。 
B-8: 他のマシンでコンパイルするために、 configure した結果を保存しておきた
いのですが。 
B-9: 他のマシンでコンパイルした後、再度、元のマシンで make したいのです
が、もう1回 configure を実行しなければいけないのですか? 
B-10: ソースのあるディレクトリとは異なるディレクトリで コンパイルするに
はどうしたらいいのでしょうか? 
B-11: とある事情で再度 configure を実行しなくてはいけなくなりました。 もう
1度 configure のオプションをコマンドラインからすべて 入力しなくてはいけな
いのですか? 
B-12: configure を実行してみたのですがオプションが全く認識されません。 
B-13: BSD オペレーティングシステムで Mule がうまく make できません。 
B-14: Solaris 2.4 + X11R6 の上で Mule を使うと、 C-x d で dired したり、 M-x
shell-command を実行するとハングアップしてしまいます。 

多国語の扱いについて
====================

C-1: Mule でサポートされている言語は? 
C-2: 世の中には文を右から左に書く言語もありますが、 Mule はそのような言
語に対応できますか? 
C-3: Mule と関連しているコード系はどんなものがありますか? どんなときにそ
れと関連しますか? 
C-4: *Buffer List* に表示されるバッファのサイズと、 セーブした時にできるフ
ァイルのサイズが大幅に違うのですが、どうしてですか? 
C-5: (setq keyboard-coding-system *euc-japan*) と設定したので
すが、どうもうまく動いてくれないのですが? 
C-6: set-keyboard-coding-system で *autoconv*, *big5-hku*,
*big5-eten*, *internal* の設定ができないのですが? 
C-7: EUC で日本、中国、韓国、EC など 各国語を同時表示できるようにしたい
のですが? 
C-8: Muleで使用しているコード系のドキュメントはありますか? 
C-9: インクリメンタルサーチ中に ASCII 文字以外を入力するには? 
C-10: Mule で使えるいろいろな言語用のフォントはどこで手に入るのでしょう
か? 
C-11: quail-help で表示される文字と実際に入力される文字が 違っているのです
が、これはバグですか? 
C-12: Mule で作ったテキストを印刷するには? 
C-13: 日本語・中国語・ハングルなどの2バイトコードを含んだファイル名が
うまく扱えないのですが。 
C-14: ファイルを読み込んだ時に、eol-type がファイル本来のものと異なった
ものに自動判別されてしまうのですが。 

個人環境設定
============

D-1: バッファの最後で next-line を実行しても、 新しい行が挿入されないよう
にして欲しいのですが。 
D-2: buffer の先頭で previous-line を実行すると、 beginning-of-buffer といってピ
ィピィ鳴るのがうるさいのですが。 
D-3: メニューバーやスクロールバーが欝陶しいのですが。 
D-4: (setq xxx-hook yyyy) とやってもうまく hook が設定されないのです
が。 
D-5: Mule-1.x と Mule-2.x とで .emacs を共有できますか? 
D-6: X Window System 上で使うと BS キーを押したときに DEL キーにバインド
したコマンドが実行されてしまいますが、何故ですか? また、ターミナルで実
行したときと同じようにするにはどうしたらいい のでしょうか? 
D-7: カーソルが行頭にあるときに、C-k を1回打つだけで その行全体が削除さ
れるようにするにはどうしたらいいのでしょうか? 
D-8: カーソルの位置が何行目かを表示するにはどうしたらいいのでしょうか? 
D-9: メニューバーに新しいメニューを追加したり変更したりするには どうし
たらいいのでしょうか? 
D-10: indent 時に、自動的に前の行と同じインデントになるようにするには、
どうしたらいいのでしょうか? 
D-11: Mule 2.2 の c++-mode で compile 関数にキーを設定するのはどうしたらい
いですか? 
D-12: minibuffer だけ独立した frame を作るには どうしたらいいのでしょうか? 

メール & ニュース
=================

E-1: メイルやニュースを書いているときに C-c C-y とすると引用マークが空
白になってしまいます。 これを "> " に変えるにはどうすればよいのですか? 
E-2: Supercite を使って、引用符に名前などを含めるには どうすればよいので
すか? 
E-3: Supercite を使って、引用符が自動的に "> " となるように設定するにはどう
すればよいのですか? 
E-4: Supercite で、デフォルトで用意されている引用符以外のものを デフォル
トとして使えるようにするにはどうすればよいのですか。 
E-5: Supercite 2.3 から付属の 3.1 に乗り換えたら、 sc-yank-original のときに勝
手に fill-paragraph されるようになってしまいました。 
E-6: RMAIL がうまく動きません。 
E-7: GNUS を使っていると、例えば fj.test に投稿する場合に distribution のデフォ
ルト値が fj とはならないですが。 
E-8: mail を送信すると文字化けしてしまうのですが。 
E-9: 受信したメールが文字化けして読めないのですが。 
E-10: メールやニュースを RMAIL 形式で保存すると保存したファイルに EUC
と junet-code が混在してしまいます。 また、fj.editor.mule を RMAIL 形式で保存
すると ファイルが読めなくなってしまいます。 

画面表示
========

F-1: X Window System の Mule で日本語(中国語、韓国語) が表示できないのです
が。 
F-2: X 上で Mule を使っていると、フォントの一部が欠けて表示されたり、 フ
ォントがくずれて汚くなったりするのですが。 
F-3: X 版 Mule の起動時のデフォルトのフォントのサイズを 14 ドットフォント
にするには? 
F-4: (setq visible-bell t) として visible-bell にしたところ、 画
面フラッシュの起こる位置が画面中央、 範囲が画面の大きさ約 1/4 に限られる
ようですが、これは仕様でしょうか? 
F-5: face とは何ですか? 
F-6: terminal face とは何ですか? また、terminal face を使うにはどうしたらいい
のでしょうか? 
F-7: Mule を X で使ったときに行間が空いていますが、 これを縮めるにはどう
したらいいでしょうか? 

Emacs Lisp パッケージ
=====================

G-1: Mule 1.x では動いていた xxx という lisp プログラムが動かなくなりました
。 どうすればいいのでしょうか? 
G-2: C 言語の予約語やコメントなどに 色を付けるにはどうしたらいいのでし
ょうか? 
G-3: hilit19.el を使うにはどうしたらいいのでしょうか? 
G-4: font-lock.el はどのように使うのでしょうか? 
G-5: c-mode をもっと使い易くできないのでしょうか? 
G-6: 自動的に RCS を使うようにするパッケージはないのですか? 
G-7: キーボードから直接 'ESC $ B $ "' のようなコード入力を行なうにはど
うしたらいいのでしょうか? 
G-8: 愛すべき ange-ftp をロードすると M-! (shell-command) が働かないの
は何故ですか? 
G-9: sj3 を使って日本語入力を行いたいんですが、変換をしようとすると、
"EGG: Network service (sj3) がみつかりません。"と、失敗してしまいます。 

Emacs lisp プログラミング
=========================

H-1: Mule は、Emacs の上位互換ではないのですか? 
H-2: Mule 1.x 用のプログラムを Mule 2.x 用にするときの注意点を教えて下さい
。 

Mule FAQ Part 2: 特定の言語に固有の質問
=======================================

中国語について
==============

CN-1: Mule のコンパイルは正常にできたのですが、 中国語がうまく扱えませ
ん。 
CN-2: 中国語を入力するには? 
CN-3: EUC で日本、中国、韓国、EC など各国語を同時表示できるようにした
いのですが? 
CN-4: インクリメンタルサーチ中に漢字を入力するには? 
CN-5: 中国語を含んだファイル名がうまく扱えないのですが。 
CN-6: ニュースグループ alt.chinese.text[.big5] を中国語で読むことはできますか?

日本語について
==============

JP-1: Nemacs (Nihongo Emacs) と比べて Mule を使うと何がうれしいですか? あ
るいは Nemacs を使用したほうがいいケースはありますか? あるとしたら、ど
んな場合ですか? 
JP-2: Nemacs はなくなるの? 
JP-3: 日本語で議論が行なわれている Mule のメーリングリストがありますか? 
JP-4: Mule には日本語のマニュアルがついていますか? 
JP-5: Mule のコンパイルは正常にできたのですが、 日本語がうまく扱えません
。 
JP-6: X Window System の Mule で日本語が表示できないのですが。 
JP-7: 日本語はどうやったら入力できますか? 
JP-8: 「たまご」って何ですか? 
JP-9: 「たかな」って何ですか? 
JP-10: sj3-egg って何ですか? 
JP-11: かんな(Canna) って何ですか? 
JP-12: 「SKK」って何ですか? 
JP-13: 漢字の入力で、字の形はわかっているが、 読みがわからないときどうや
って入力するのですか? 
JP-14: kterm で、マウスによる cut & paste ができないのですが? 
JP-15: kinput2 から漢字を入力できますか? 
JP-16: (setq keyboard-coding-system *euc-japan*) と設定したの
ですが、どうもうまく動いてくれないのですが? 
JP-17: EUC で日本、中国、韓国、EC など各国語を同時表示できるようにした
いのですが? 
JP-18: インクリメンタルサーチ中に漢字を入力するには? 
JP-19: 半角カタカナ(JIS X0201カタカナ) を入力するには? 
JP-20: 「たまご」を使っているとき「nn」で「ん」 が入力されるようにするに
はどうしたらよいのでしょうか。 
JP-21: 日本語を含んだファイル名がうまく扱えないのですが。 
JP-22: Wnn と Canna を同時に使うにはどうしたらいいのですか? 
JP-23: Mule は、Nemacs の上位互換ではないのですか? 
JP-24: Nemacs と Mule で .emacs を共有できますか? 
JP-25: Nemacs ではちゃんと動いていたのに、Mule だと "Symbol's function
definition is void: define-program-kanji-code" とメッセージが出てうまく動きませ
ん。どうすれば良いでしょう? 
JP-26: Supercite を日本語対応で使うには? 
JP-27: dired がちゃんと動かないんですけど? 
JP-28: $MULE/doc/demo ファイルの、 日本語のデモの半角の「こんにちは」の
後の文字列がチャンと読めないのですが、 これはどうしてなのでしょう。 
JP-29: JIS X0212 (JIS 補助漢字) のフォントでフリーのものはありますか? 

Latin 文字の扱いについて
========================

LT-1: ISO 8859 文字を入力するには? 
LT-2: Latin-1 文字をキャラクタ端末に表示するには? 



この FAQ に新たに付け加わったことは?
------------------------------------

   前版(1995年3月10日版)からの変更点 
    o 質問 A-4 (Mule と GNU Emacs の統合について) の内容を修正しま
      した。 
    o 質問 A-5 (PC 上の OS で動く Mule について) の内容を修正しました
      。 
    o 質問 B-14 (Solaris 2.4 + X11R6 でのコンパイルの注意) を追加しまし
      た。 



Mule FAQ Part 1: 各国語共通の質問
=================================

一般的な情報
============

A-1: Mule とはなんですか?
-------------------------

   Mule は GNU Emacs を複数の言語に対応できるように強化した エディタ
   です。 GNU Emacs Ver.18 をベースにした Mule Ver.1 と、GNU Emacs
   Ver.19 をベー スにした Mule Ver.2 があります。今後は Mule Ver.2 のみ開
   発が続けられ ていきます。

   Mule には以下のような特徴があります。 
    o Mule は ASCII 文字(7ビット)や ISO Latin-1 の文字(8ビット)ばかり
      でなく、 日本語、中国語、韓国語などの文字コード(16ビット)も
      扱うことができます。 さらに Mule のテキストバッファはこれらの
      言語の文を一つのバッファに混在 して保持することができます。 
    o ファイル入出力、スクリーン表示、キーボード入力、プロセス間
      通信の それぞれについて独立に文字のコード系を設定できます。 
    o 多国語モードでない場合には、オリジナルの GNU Emacs とほぼ同
      様に使えます。 
   $MULE/README.Mule も参考にして下さい。

A-2: Mule はどこから入手できますか?
-----------------------------------

   Mule は、以下のところから anonymous ftp で入手できます。 

      ftp://etlport.etl.go.jp/pub/mule 
      ftp://ftp.mei.co.jp/archive/free/gnu/emacs/Mule 
      ftp://ftp.iij.ad.jp/pub/misc/mule 
      ftp://sh.wide.ad.jp/JAPAN/mule 
      ftp://ftp.funet.fi/pub/gnu/emacs/mule 
      ftp://cs.huji.ac.il/pub/gnu/mule 
      ftp://ftp.cs.buffalo.edu/pub/mule 

   日本国外からアクセスする場合は、最後の 4 つのうちどれかを 使ってく
   ださい。ヨーロッパからアクセスする場合は、 ftp.funet.fi を使うのがたぶ
   ん一番よいでしょう。

   ここには Mule 配布キットの完全な形の tar ファイル (
   mule-2.2.tar.gz)と、 GNU Emacs 19.28 に対する差分ファイル (
   diff-19.28-2.2.gz) の 2 種類が置かれています。 GNU Emacs をお
   持ちの方はなるべく差分ファイルのほうを利用してください。 もしパッ
   チファイル (patch-2.2-*.gz) も見つけたら、 それも入手してパッチ
   を当ててください。 その他にも各種フォント、 elisp ライブラリなどが置
   かれています。

   より詳しいことは $MULE/README.Mule に書かれているので 参考にし
   て下さい。

A-3: Mule の最新バージョンはいくつですか?
-----------------------------------------

   Mule の現在のバージョンは 2.2 (若紫) で、GNU Emacs 19.28 をベースに
   しています。 なお、$MULE/etc/VERSIONS に、 今後のバージョン名
   のリストが書かれています。

A-4: Mule は将来 GNU Emacs に統合されるのですか?
------------------------------------------------

   現在、Mule と GNU Emacs を統合するべく作業中です。 ただし、第一段
   階としては、 マルチリンガルに直接関係しない Mule の機能 (trex,
   terminal-face, alpha のサポート, canna や sj3 による入力、PC 関連のサポー
   ト) はとりあえずつけない方針ですので、 現在の Mule は Mule として、
   さらにいろいろな機能をサポートしながら配布を続けます。 もちろん将
   来は現在の Mule の機能はすべて GNU Emacs に統合する予定です。 

A-5: Mule は PC の OS の上(MS-DOS, Windows, OS/2)で動きますか?
--------------------------------------------------------------

   MS-DOS 
      Mule Ver.1.x および Mule Ver.2.2以降には Demacs が含まれています
      。 インストールマニュアル INSTALL.dos を参照してください。 
   Windows 
      正式に対応したものはありません。 Windows の上で動く BSD カー
      ネル 「BOW」 をインストールすれば、 ほぼフルセットの Mule を
      動かすことができます。 
   OS/2 
      現在試験中です。 次のバージョンの Mule には、おそらく含まれる
      ものと思われます。 

A-6: Mule Ver.1 と比べて Mule Ver.2 を使うと何がうれしいですか?
---------------------------------------------------------------

   一言で言うと、「GNU Emacs 19 で追加された機能が使える」ことに尽
   きる でしょう。 追加された機能はここには書ききれませんが、 大きな
   機能追加としては、Epoch 風のマルチフレームや face 機能 (質問 F-5参照
   )などがあります。 詳しくは GNU Bulletin で紹介されていますし、Emacs
   18.59 に付属する Emacs の info にも Emacs 19 Antenews として説明されて
   いますのでそちらを参照して下さい。

   (日本語版注) GNU Bulletin は、GNU ダイジェストとして SRA の引地夫妻
   によって日本語に翻訳されています。 これは、
   ftp://ftp.sra.co.jp/pub/gnu/local-fix/Bull-j の下から入手できます。
   Emacs 19 Antenews は、東芝 CAE システムズの亀井さんによって日本語
   に訳され、 antenews-jp.texi というファイル名で Mule 2.1 以降には
   付属しています。

A-7: Mule のメーリングリストがありますか?
-----------------------------------------

   現在、英語での議論のためには以下の二つのメーリングリストがありま
   す。 

   mule@etl.go.jp
      通常の使用言語は英語 
   mule-vn@etl.go.jp
      ベトナム語の扱いに関するメーリングリスト、通常の使用言語は
      英語 

   その他、各プラットフォームでのテスト用に以下があります。 

   mule-jp@etl.go.jp
      通常の使用言語は日本語 

   日本語での通常の議論にはニュース (fj.editor.mule) を使ってください。 こ
   れらのメーリングリストに参加を希望される方は、 

      mule-request@etl.go.jp

   にメールを出して連絡をとってください。ちなみに、 mule-jp-request な
   どはありません。 

A-8: Mule のバグレポートは、どこにすればいいでしょうか?
-------------------------------------------------------

   日本語での Mule のバグレポートあるいは修正の提案などは、 ニュース (
   fj.editor.mule) で行なってください。 このニュースが読めない方のみ 
   mule@etl.go.jp に 英語で送ってください。

A-9: Mule には日本語(英語/韓国語/中国語)のマニュアルがついていますか?
---------------------------------------------------------------------

   Mule に関するマニュアル、ドキュメント類は、大きく分けると 
    o オンラインマニュアル 
    o texinfo マニュアル 
    o FAQ 
    o チュートリアル 
    o doc ディレクトリ下の文書 
   のような種類があります。現在の Mule のバージョンは 2.x ですが、 ドキ
   ュメントの中にはバージョン 1 のころから更新されていないものもあり
   ます。

   オンラインマニュアル 
      man 形式のオンラインマニュアルは、英語のものがあります。 通
      常はシステム管理者が、 man コマンドで参照できるように用意し
      ていると思われますが、 もし用意されていない場合は 
      $MULE/etc/mule.1 にあるので、これをマニュアルのディレク
      トリにコピーして利用してください。 
   texinfo マニュアル 
      Mule の機能別の説明や用語説明などが texinfo マニュアルとして用
      意されて います。 $MULE/man に texinfo 形式のソースが、 
      $MULE/info にテキストとして整形されたファイルがあります。 
   FAQ 
      今あなたが読んでいるものです。以下のものが $MULE/etc にあ
      ります。 

        FAQ-Mule          英語版
        FAQ-Mule.jp       日本語版
        FAQ-Mule.kr       韓国語版
        FAQ-Mule.cn       中国語版
        FAQ-Mule.th       タイ語版

   チュートリアル 
      チュートリアルは日本語と韓国語のものがあります。 Mule の上か
      ら C-h T (M-x help-with-tutorial-for-mule) とすると言
      語を聞いてきますので、 読みたい言語を指定して下さい (スペース
      キーを押すと選択できる言語の一覧が出てきます)。 
   doc ディレクトリ下の文書 
      $MULE/doc には、 Mule の機能別の説明やサンプル文書がありま
      す。 Mule Ver.1 の頃ここにあったドキュメントの多くは texinfo 化
      されました。 $MULE/doc/viet にはベトナム語で書かれた文書
      が まとめられています。 

A-10: Mule という名前の由来は?
------------------------------

   UNIX用語 由来/読み方辞書より引用:-) 

   Mule (UNIXコマンド) [みゅーる] 
      "MUltiLingual Enhancement to GNU Emacs" の略。 MULE とはラバの
      ことで、がんこもの、片意地ものという意味もあり、 GNU の動物
      シリーズに対応しているし、 gawk のように反対の意味を付けると
      いうのにも対応している。 (参照: Demacs, Emacs, gawk, Nemacs) 

   この名前は、Hironobu Suzuki <hironobu@sra.co.jp> さんの発案によってい
   ます。

A-11: このドキュメント(Mule FAQ list)の最新版はどこから入手できますか?
----------------------------------------------------------------------

   Mule FAQ には英語版、日本語版、韓国語版、中国語版があります。 フ
   ァイルとして配布される場合には、それぞれ 

                   FAQ-Mule          英語版
                   FAQ-Mule.jp       日本語版
                   FAQ-Mule.kr       韓国語版
                   FAQ-Mule.cn       中国語版
                   FAQ-Mule.th       タイ語版

   というファイル名になっています。 このうち、日本語版がオリジナルで
   あり、 その他のものは更新が遅れることもあります。 現在、FAQ の日
   本語版は HTML で記述されており、 そこから通常のテキスト形式に機械
   的に変換しています。

   Mule FAQ は、以下の方法によって入手できます。 
    o WWW を通じて。 Mule FAQ の最新版は、 
      http://www.meitetsu.co.jp/docs/mule/FAQ-Mule-jp.html から入手でき
      ます。 (現状では、日本語版のみ) 
    o ネットワークニュースから。 ニュースグループ fj.editor.mule には、
      不定期に Mule FAQ が流されています。 
    o anonymouns FTP で入手する。 以下のところから anonymouns FTP
      で入手できます。 

         ftp://etlport.etl.go.jp/pub/mule/READMEDIR 
         ftp://sh.wide.ad.jp/JAPAN/mule/READMEDIR 

    o Mule の配布用ファイルの中。 その Mule がリリースされた時の最新
      の FAQ が、 $MULE/etc/FAQ-Mule.* として Mule の配布セッ
      トの中に含まれています。 

A-12: Mule 2.2 で未対応の機能を教えて下さい。
---------------------------------------------

   Mule 1.1 の機能のうち以下は Mule 2.2 では未対応です。 今後のバージョ
   ンを待って下さい。

    o lisp/picture.el, lisp/rect.el の多国語対応 
    o Sun の console での表示 

構築およびインストール
======================

B-1: configure のオプションにはどんなものがありますか?
------------------------------------------------------

   configure --help を実行すれば見ることができます。 

B-2: SunOS 4.1.x のマシンで、X Window System で動く Mule を 作るにはどう
------------------------------------------------------------------------
すればいいですか?
-----------------

   従来、Mule はスタティックリンクで作る必要があったのですが、 SunOS
   4.x 用の X Window System は、そのままでは共有ライブラリしか作られま
   せん。 そのため、SunOS 4.x で Mule を作るには、 スタティックリンク用
   の Xlib を用意する必要がありました。 しかし、Mule-2.2 以降では、共有
   ライブラリをリンクして Mule を make することもできます。

   以下に、それぞれの場合について方法を述べます。

    1. スタティックリンク用の Xlib を用意し、スタティックリンクの
      Mule を作る
      X を構築するさいに

          #define  ForceNormalLib YES
          #define  SeparateSharedCompile YES

      を site.def(#ifdef AfterVendorCF の後) に追加して、スタ
      ティックリンク用の libX11.a を作ります。 そして、通常通り
      configure を指定して Mule を作ります。 
    2. 共有ライブラリをリンクするように指定
      Mule-2.2 以降では、configure で OS 名に sunos4shr を指定すると、
      共有ライブラリの Xlib を使用する Mule ができます。 

   詳しくは、$MULE/etc/MACHINES を参照して下さい。

B-3: Wnn や Canna を Mule で使えるようにするには どうしたらいいのですか?
------------------------------------------------------------------------

   configure のオプションに --wnn, --canna を 指定して下さい。 ライブ
   ラリ等がインストールされているディレクトリによっては 
   --wnn-include=XXXX などのオプションも 指定する必要があるでし
   ょう。

B-4: "Pure Lisp storage exhausted" というメッセージが出て コンパイルが止ま
--------------------------------------------------------------------------
ってしまうのですが。
--------------------

   Ken'ichi Handa <handa@etl.go.jp> さんは次のように書いています。

      これは puresize.h の中の PURESIZE の値が小さ過ぎるからで
      す。 システムによってはこの値を増やす必要があるようです。 取
      り敢えず倍ぐらいにして、それでうまくいったら、 temacs が 
      site-init.el をロードした後に表示する Pure Bytes Used
      XXXXX の値、 あるいは出来上がった Mule を起動して C-h v で表
      示される pure-bytes-used の値を参考に それより少し大きな値ぐ
      らいに設定し直し再メイク、 という手段が必要です。 

   puresize を増やすには、 次のような手順で実行して下さい。 

   % make pureclean
   % make CFLAGS="-DPURESIZE=XXXXX"

B-5: "Undefined Symbol: __des_crypt" というメッセージが出てコン
---------------------------------------------------------------
パイルが止まってしまうのですが。
--------------------------------

   Masato Minda <minmin@astec.co.jp> さんは次のように語っています。

      これは、SunOS の JLE1.1.1 で static リンクするとでるんじゃなかっ
      たかな。 

      解決法 
         JLE のパッチをあてる (patch ID は忘れました) 
         JLE1.1.1 rev B 以降にする。 
         JLE をやめる :-) 

      ためしたことはないですけど、空の _des_crypt 関数を作って、
      一緒にリンクしてもうまくいくんじゃないかなぁ。 

B-6: Mule で shell mode を使うと、行の最後に ^M がついてしまうのですがど
------------------------------------------------------------------------
うしてでしょうか?
-----------------

   Sakai Kiyotaka <ksakai@mtl.t.u-tokyo.ac.jp> さんは、以下のように書いて
   います。 

      Emacs FAQ (mule-2.2 では ${MULE}/etc/FAQ-NEW としてインス
      トールされます) には以下のような項目があります。

      62: How do I get rid of the ^M junk in my shell buffer? 

      要約すると、 
       1. shell-mode で、 M-x shell-strip-ctrl-m とタイプせ
         よ。 
       2. それで駄目なら、シェルとして tcsh を使っているのが悪い
         。 その場合、あなたの .cshrc あるいは .tcshrc ファイ
         ルに、 

         if ($?EMACS) then
             if ("$EMACS" == t) then
                 if ($?tcsh) unset edit
                 stty nl
             endif
         endif

         と書くか、.emacs_tcsh ファイルに 

         unset edit
         stty nl

         と書くと良い。 
       3. あるいは、シェルバッファの中では tcsh の代わりに csh を使
         うようにする。 

         (setq explicit-shell-file-name "/bin/csh") 

         を .emacs に入れるか、 

         setenv ESHELL /bin/csh

         とする。 

   なお SunOS 4.1.x + JLE で gcc を使って Mule を作った場合には、 以上のよ
   うな対処を行なっても、行末に ^M がついてしまうことがあります。
   Ishikawa Ichiro <ichiro@ccsr.u-tokyo.ac.jp> さんは以下のように書いていま
   す。 

      以前 emacs 19 で同様の症状が出たことがあります (mule は gcc で
      コンパイルすると全然動かなかった)が、 そのときは、gcc のイン
      ストールがうまくいっていなかったのが原因でした (JLE の sed を
      使ってインストールしていた)。 

   GCC を JLE でインストールすると、sed のバグによってヘッダファイル
   の インストール(fixincludes)がうまくいきません。かわりに GNU の sed を
   使って GCC をインストールしましょう。

   また、"Y.Fujii" <fujii@crl.kyocera.co.jp> さんから、 以下のような情報が寄
   せられています。 
    o Solaris 2.3J では、gcc を GNU sed を使ってインストールした場合で
      も、 行末に ^M がついてしまう。 
    o 上記の、 unset edit と stty nl をやると問題は解決した。 
    o シェルバッファで csh を使うようにする方法ではうまくいかなか
      った。 
    o M-x rlogin で、他のホストに rlogin したときには、 また ^M が
      ついてしまう。 

B-7: Mule のコンパイルは正常にできたのですが、 英語以外の言語がうまく入
-----------------------------------------------------------------------
力できません。
--------------

   Mule Ver.2.1 以降ではインストールの際にすべての言語用の基本的設定が
   なされるので、以前のバージョンのように lisp/site-init.el で 
   japanese.el や chinese.el をロードする必要はなく、 このような
   事態は起こらないはずです。 ただし、どの言語をメインに使うかは 
   site-init.el で 

       (set-primary-environment 'chinese)

   のようにして設定することができます。 デフォルトでは 'japanese が
   設定されています。

B-8: 他のマシンでコンパイルするために、 configure した結果を保存しておき
------------------------------------------------------------------------
たいのですが。
--------------

   config.status を別の名前に変えてとっておけばいいでしょう。 ある
   いは、コンパイルはソースのあるディレクトリとは別のディレクトリで
   コンパイルを行なうという方法もあります。

B-9: 他のマシンでコンパイルした後、再度、元のマシンで make したいのです
-----------------------------------------------------------------------
が、もう1回 configure を実行しなければいけないのですか?
-------------------------------------------------------

   configure のオプションを変更しないのであれば、保存しておいた 
   config.status を実行するだけで O.K. です。

B-10: ソースのあるディレクトリとは異なるディレクトリで コンパイルするに
-----------------------------------------------------------------------
はどうしたらいいのでしょうか?
-----------------------------

   configure のオプションに --srcdir=(ソースのあるディレクトリ) を
   指定するか、 /.../mule/configure あるいは 
   .../mule/configure と configure を絶対あるいは相対パスで指定し
   て起動して下さい。 このとき注意することとしては、ソースのあるディ
   レクトリで configure を実行したことのある場合は、そのディレクトリで
   あらかじめ 'make distclean' を実行しておく必要があるということ
   です。

   また、これを実行する場合には OS に付属の make ではできないかもしれ
   ません。 その場合には GNU make を使って下さい。

B-11: とある事情で再度 configure を実行しなくてはいけなくなりました。 も
------------------------------------------------------------------------
う1度 configure のオプションをコマンドラインからすべて 入力しなくてはいけ
-------------------------------------------------------------------------
ないのですか?
-------------

   ./config.status --recheck で O.K. です。 また、
   config.status は sh script ですので、 configure に与える引数を変更し
   たい場合には、 直接このファイルを編集するとか、ターミナルエミュレ
   ータの cut & paste 機能を利用して configure に引数を与えるとかといった
   芸当もできます。

B-12: configure を実行してみたのですがオプションが全く認識されません。 
-----------------------------------------------------------------------

   Sun で JLE 付きの OS を使っているのではないでしょうか。 JLE のコマン
   ドやライブラリは、仕様の違いやバグなどで問題が多いようです。 GCC
   のインストールも、JLE では失敗することがあるそうです。

   この場合、'tr - _' が正しく動作していません。 configure の中の tr -
   _ を tr \- _ に変更するか、 

           setenv LANG C

   または、 

           unsetenv LANG

   としてください。(csh の場合) 

B-13: BSD オペレーティングシステムで Mule がうまく make できません。
--------------------------------------------------------------------

   BSD/OS, 386BSD, NetBSD, FreeBSD などでは、 OS に付属の make ではうま
   く make できないようです。 かわりに GNU make を使って下さい。 
   $MULE/etc/MACHINES にも同様のことが書いてあります。

B-14: Solaris 2.4 + X11R6 の上で Mule を使うと、C-x d で dired したり、 M-x
---------------------------------------------------------------------------
shell-command を実行するとハングアップしてしまいます。
------------------------------------------------------

   Masafumi Higuchi <higuchi@slab.ntt.jp> さんは、以下のように書いていま
   す。

      X11R6 の TherededX の機能が Solaris2.4 ではうまく働かないそうで
      す。 そのため、ThreadedX を ON にして make World した X の
      library をリンクすると上記のような症状が出るそうです。 ですか
      ら、OpenWindows の library を用いて make した mule ではこの症状
      が出ないでしょう。 

   どうしても X11R6 を使いたければ、site.def に以下の行を入れて X11R6 を
   作り直し、mule を作れば OK です。 

       #define ThreadedX         NO

多国語の扱いについて
====================

C-1: Mule でサポートされている言語は?
-------------------------------------

   $MULE/README.Mule より抜粋: 

   0. 英語 
      たんにタイプするだけです。:-)

   1. 日本語 
      Wnn4.108 以降をインストールすることを強くお勧めします (マシ
      ンによっては Wnn4.108 ではなく Wnn4.109p1 にしないとうまく動
      かないものがあるそうです)。 Mule にバンドルされている「たま
      ご(EGG)」システムは Wnn の jserver と通信して大変便利な日本語
      入力法を提供します。 「たまご」の使い方は $MULE/info/egg
      を参照してください。

      Mule は X Window System のクライアントとして、あるいは日本語
      端末 (kterm や exterm などの端末エミュレータも含む) のもとで動か
      すこと ができます。 後者の場合は、端末でサポートされている入
      力システムが使えます。 他にも以下のような入力システムがあり
      ます。

       o sj3-egg, かんな(CANNA):
         Mule にバンドル 
       o SKK, boiled-egg:
         contrib ディレクトリに収録 

   2. 中国語 
      Wnn4.108 をインストールすることを強くお勧めします (マシンに
      よっては Wnn4.108 ではなく Wnn4.109p1 にしないとうまく動かな
      いものがあるそうです)。 Mule にバンドルされている「たまご
      (EGG)」システムは cWnn の cserver と通信して大変便利な中国語
      (GB)入力法を提供します。 「たまご」の使い方は 
      $MULE/info/egg を参照してください。

      Mule は X Window System のクライアントとして、あるいは中国語
      端末 (cxterm や exterm などの端末エミュレータも含む) のもとで動
      かすこと ができます。 後者の場合は、端末でサポートされている
      入力システムが使えます。

      QUAIL system (Mule にバンドルされている)も以下のようないくつ
      かの 入力方法を提供しています。

       o GB: PINYIN, PINYIN_with_TONE, CCDOSPY, SW 
       o Big5: PINYIN, ETZY, ZOZY 
      このシステムの使い方については $MULE/info/quail を参照し
      てください。

      ニュースグループ alt.chinese.text や alt.chinese.text を読んで いる人
      は、GNUS (emacs lisp でかかれたニュースリーダ) を 
      gnusutil.el (Mule Ver.2 から標準装備) とともに使うと大変便利
      です。 gnusutil は、Hz/zW エンコーディングや Big5 を Mule の内部
      コードに変換したり、逆の変換を自動的に行ないます。

   3. 韓国語 
      韓国語文字の入力用に、quail/hangul.el が提供されています
      。 このシステムの使い方は、'info/quail' を参照してください
      。 Mule は X Window System のクライアントとして、 あるいはハン
      グル端末(exterm などの端末エミュレータも含む) のもとで動かす
      ことができます。 KSC5601 の hanja を入力するにためには 
      quail/hanja-ksc.el をお使い下さい。

   4. ヨーロッパの言語 
      QUIAL システムは、多くの種類のヨーロッパ系文字入力方法を提
      供しています。 現在のところ、QUAIL を使うと以下の文字が入力
      できます。 

              Latin1, Latin2,.. Latin5, Greek (ISO8859-7),
              Hebrew (ISO8859-8), Cyrillic (ISO8859-5)

      このシステムの使い方は $MULE/info/quail を参照してくださ
      い。 ヘブライ語のような、右から左に書く言語もサポートされて
      います。 $MULE/info/R2L を見て下さい。

   5. タイ語 
      タイ語は TIS620 文字セットをベースにサポートされています。
      QUIAL システム(Mule にバンドル)は、タイ語の入力方法も提供し
      ています。 このシステムの使い方は $MULE/info/quail を見て
      ください。 タイ語用の quail package の名前は 'thai' です。 TIS620
      のフリーのフォントは fonts/ETL.tar.gz の中にあります。 こ
      のフォントを ASCII フォントと一緒に使う場合は、 起動時のコマ
      ンドライン引数 -lsp で '5+' を指定して（24dots フォント使用時
      ）上の行間隔を増やすべきです。

   6. ベトナム語 
      ベトナム語のサポートは、two-table-VISCII methods をベースにし
      ています。 これは、VISCII のコード表を小文字と大文字に分割し
      ています。 Mule は VISCII, VIQR, VSCII のいずれも読み書きできま
      す。 ベトナム語の入力には、QUAIL システム (Mule にバンドル)
      を使用します。 このシステムの使い方には $MULE/info/quail
      を参照してください。 ベトナム語用の quail package の名前は 'viet'
      です。 X Window System では、VISCII と VSCII の両方のフォントを
      使うことができます。 VISCII のフリーなフォントも 
      fonts/ETL.tar.gz の中にあります。 これは他の ETL フォント
      と合うようにデザインされています。

C-2: 世の中には文を右から左に書く言語もありますが、 Mule はそのような言
-----------------------------------------------------------------------
語に対応できますか?
-------------------

   現在のところヘブライ語、アラビア語、ペルシャ語がサポートされてい
   ます。 ヘブライ語の入力方法としては quail/hebrew.el が使用可能です。
   また highlight-reverse-direction, r2l-double-cursor な
   どのドキュメントを参照してください。

C-3: Mule と関連しているコード系はどんなものがありますか? どんなときに
----------------------------------------------------------------------
それと関連しますか?
-------------------

   Mule は以下に示すコード系をサポートしています。 
    o Mule のバッファで使われている内部コード 
    o MS 漢字コード/シフト JIS (日本語のみ) 
    o ISO2022 に基づくもの(JIS [JUNET], EUC, CTEXT を含む) 
    o Big5(中国語のみ) 
   Mule ではこれらのコード系を、ファイル入出力、キー入力、画面表示、
   プロセス間通信のそれぞれについて独立に指定することができます。 

C-4: *Buffer List* に表示されるバッファのサイズと、 セーブした時にできる
------------------------------------------------------------------------
ファイルのサイズが大幅に違うのですが、どうしてですか?
-----------------------------------------------------

   Mule では、文字の内部表現として各文字セットごとに リーディングキャ
   ラクタというものを割り付け、 ASCII 以外の文字はすべてリーディング
   キャラクタを 頭につけたものを内部コードとしています。 したがって
   Latin-1 などの 8ビット文字は内部では 2バイトになりますし、 漢字など
   の 16ビット文字は内部では 3バイトになります。 内部表現のままセーブ
   すればバッファの サイズとファイルのサイズは一致しますが、 他のエン
   コーディング法でセーブすると両者は食い違う場合があります。

C-5: (setq keyboard-coding-system *euc-japan*) と設定したので
-------------------------------------------------------------
すが、どうもうまく動いてくれないのですが?
-----------------------------------------

   setq で、直接 keyboard-coding-system に値を バインドしてはいけ
   ません。 必ず set-keyboard-coding-system 関数を使うようにし
   てください。 他の display-coding-system や 
   file-coding-system なども同様です。

C-6: set-keyboard-coding-system で *autoconv*, *big5-hku*,
*big5-eten*, *internal* の設定ができないのですが?
-------------------------------------------------

   Mule Ver.2.1 からは *big5* の指定はできるようになりました。 

C-7: EUC で日本、中国、韓国、EC など 各国語を同時表示できるようにした
---------------------------------------------------------------------
いのですが?
-----------

   各国語の EUC は、それぞれ全く同じコード系ですから 混在させること
   は不可能です。 多国語を同時表示させる必要があるなら、Mule での 
   *junet* もしくは *ctext* のコードを使用するようにしてください。

C-8: Muleで使用しているコード系のドキュメントはありますか?
----------------------------------------------------------

   ドキュメントは、ISO 2022 です。JIS なら JIS X0202です。 Mule の texinfo
   マニュアルや $MULE/info/ISO2022 にも簡単な説明があります。

C-9: インクリメンタルサーチ中に ASCII 文字以外を入力するには?
-------------------------------------------------------------

   Mule Ver.2.1 からはインクリメンタルサーチ(isearch)の中で ASCII 以外の
   文字列を入力できるようになります。 isearch 中に C-\ で「たまご」を
   起動したり、 C-] で quail を起動して各国語を入力できます。

C-10: Mule で使えるいろいろな言語用のフォントはどこで手に入るのでしょ
---------------------------------------------------------------------
うか? 
------

   以下のところから anonymous FTP で入手できます。 

      ftp://etlport.etl.go.jp/pub/mule/fonts 
      sh.wide.ad.jp: /JAPAN/mule/fonts 

   ここには、以下のようなフォントファイルが含まれています。

     ./Chinese/ or Chinese.tar.gz
           gb16fs.bdf      -- 16x16 dots GB font
           gb24st.bdf      -- 24x24 dots GB font
           taipei16.bdf    -- 16x16 dots BIG5 (ETen) font
           taipei24.bdf    -- 24x24 dots BIG5 (ETen) font

     ./Japanese/ or Japanese.tar.gz
           k14.bdf         -- 14x14 dots JISX0208.1983 font
           k16.bdf         -- 16x16 dots JISX0208.1990 font
           jiskan16.bdf    -- 16x16 dots JISX0208.1983 font
           jiskan24.bdf    -- 24x24 dots JISX0208.1983 font
           min-1-16.bdf    -- 16x16 dots JISX0212.1990 (HojoKanji) font
           min-1-24.bdf    -- 24x24 dots JISX0212.1990 (HojoKanji) font
           8x16rk.bdf      -- 8x16 dots JISX0201.1976 (Kana) font
           12x24rk.bdf     -- 12x24 dots JISX0201.1976 (Kana) font

     ./Korean/ or Korean.tar.gz
           hanglm16.bdf    -- 16x16 dots KSC5601.1987 font
           hanglm24.bdf    -- 24x24 dots KSC5601.1987 font

     ./ETL/ or ETL.tar.gz
           etl{14,16,24}-latin1.bdf        -- ISO8859-1 (Latin-1) font
           etl{14,16,24}-latin2.bdf        -- ISO8859-2 (Latin-2) font
           etl{14,16,24}-latin3.bdf        -- ISO8859-3 (Latin-3) font
           etl{14,16,24}-latin4.bdf        -- ISO8859-4 (Latin-4) font
           etl{14,16,24}-cyrillic.bdf      -- ISO8859-5 (Cyrillic) font
           etl{14,16,24}-greek.bdf         -- ISO8859-7 (Greek) font
           etl{14,16,24}-hebrew.bdf        -- ISO8859-8 (Hebrew) font
           etl{14,16,24}-latin5.bdf        -- ISO8859-9 (Latin-5) font
           etl{14,16,24}-swedish.bdf       -- SEN850200 (Swedish) font
           etl{14,16,24}-ipa.bdf           -- IPA font
           etl{14,16,24}-sisheng.bdf       -- SiSheng (Chinese Radical) font
           etl{16,24}-viscii.bdf           -- VISCII 1.1 (Vietnamese) font
           etl{14,24}-koi.bdf              -- KOI (Cyrillic) font
           etl{16,24}-arabic{0,1,2}.bdf    -- Arabic font
           etl{14,16,24}-thai.bdf          -- TIS620 (Thai) font

   また、JIS, KSC, GB のフォントの多くは、X11R6 にも含まれています。

   JIS 補助漢字のフォントは上記の Japanese.tar.gz にも含まれていますが、
   それとは別のものが fj.sources に投稿されています。

     From: yasuoka@kudpc.kyoto-u.ac.jp (Koichi Yasuoka)
     Newsgroups: fj.sources
     Subject: 16x16 JIS Supplementary Kanji Font Version 0.2 (1/6)
     Date: 14 Sep 1994 16:00:11 +0900
     Organization: Data Processing Center, Kyoto University, Kyoto, Japan.
     Message-ID: <35671r$91p@kudpc.kudpc.kyoto-u.ac.jp>
     References: <315t54$et5@kudpc.kudpc.kyoto-u.ac.jp>
     Reply-To: yasuoka@kudpc.kudpc.kyoto-u.ac.jp (Koichi Yasuoka)

   その後さらにパッチが出ていますので、それをあてたほうがいいでしょ
   う。 なお、最新版は ftp://ftp.kuis.kyoto-u.ac.jp/misc/fonts/jisksp-fonts から入
   手できます。

C-11: quail-help で表示される文字と実際に入力される文字が 違っているので
------------------------------------------------------------------------
すが、これはバグですか?
-----------------------

   変数 *quail-keyboard-translate-table* が正しくセットされて
   いるかどうか確認してください。 この変数がデフォルトのままだと、
   vt100 と同じ配列のキーボードが使われているものと仮定して それ用の
   配列表示を行います。 特に JIS キーボードを使っている場合は .emacs
   の中に 

           (setq *quail-keyboard-translate-table*
                 *quail-keyboard-translate-table-jis*)

   を入れておく必要があります。 詳しくは info/kbd-trans を見てくだ
   さい。

C-12: Mule で作ったテキストを印刷するには?
------------------------------------------

   Mule の lib-src ディレクトリに含まれている any2ps というプログラムを
   使えば、 多国語を含むファイルをポストスクリプトプリンタで印刷でき
   る形式に 変換することができます。

   any2ps は、X の BDF ファイルをフォントとして使い、 文字の部分をビッ
   トマップに展開してプリンタに送ります。 よってプリンタにフォントが
   なくても多国語テキストを印刷することができます。 any2ps にはオンラ
   インマニュアル(any2ps.1)が付いていますので、 詳しくはそちらを参照し
   てください。

C-13: 日本語・中国語・ハングルなどの2バイトコードを含んだファイル名が
---------------------------------------------------------------------
うまく扱えないのですが。
------------------------

   ASCII 以外の文字を含んだファイル名を正しく扱うためには、 configure
   で --mcpath を指定して Mule をコンパイルします。 また、使用するフ
   ァイル名のコード系を指定する必要があります。 site-init.el に、
   次のようなコードを追加するといいでしょう (*autoconv* は使えませ
   ん)。 

       ;;; 例: パス名に、韓国語 EUC を使う
       (if (fboundp 'set-pathname-coding-system)
           (set-pathname-coding-system *euc-korea*))

C-14: ファイルを読み込んだ時に、eol-type がファイル本来のものと異なった
-----------------------------------------------------------------------
ものに自動判別されてしまうのですが。
------------------------------------

   現在の Mule では最初に CR/LF/CR+LF を検出した時点で eol-type を自動
   的に決定するようにしています。 そのため、例えば eol-type が LF のフ
   ァイルの1行目が CR で終っていると ....*dos と自動判別されますし
   eol-type が CR+LF のファイルの1行目が CR で終っていると ....*mac
   と自動判別されてしまいます。 そのため、このようなファイルを読み込
   む時は、 C-u C-x C-f(C-u M-x find-file) としてファイル名を指
   定したあと、 *autoconv*{unix,dos,mac} のように明示的に
   eol-type を指定してファイルを読み込むようにして下さい。

   coding-system, 或いは eol-type の自動判別に於いて意図したように判別さ
   れない場合には、 原因として 
    1. 複数の coding-system 或いは eol-type が混在している. 
    2. 或る sequence が運惡く讀み込みの block の境界にかかってしまっ
      ている. 
    3. coding-system の priority が違う. 
   の三つが考えられます. 

個人環境設定
============

D-1: バッファの最後で next-line を実行しても、 新しい行が挿入されないよう
-------------------------------------------------------------------------
にして欲しいのですが。
----------------------

   (setq next-line-add-newlines nil) でできます。 

D-2: buffer の先頭で previous-line を実行すると、 beginning-of-buffer といっ
----------------------------------------------------------------------------
てピィピィ鳴るのがうるさいのですが。
------------------------------------

   次のコードを .emacs に入れてください。 

       (defun previous-line (arg)
         (interactive "p")
         (condition-case nil
             (line-move (- arg))
           (beginning-of-buffer)))

D-3: メニューバーやスクロールバーが欝陶しいのですが。
-----------------------------------------------------

   それぞれ、(menu-bar-mode 0), (scroll-bar-mode -1) で表
   示を消すことができます。 また、今開いているフレームだけスクロール
   バーを消すには、 (toggle-scroll-bar -1) を実行して下さい。

D-4: (setq xxx-hook yyyy) とやってもうまく hook が設定されないので
------------------------------------------------------------------
すが。
------

   きっと別の hook で上書きしてしまったのでしょう。 こういうトラブル
   を避けるために、 hook を設定するときは setq ではなくて add-hook を使
   うようにしましょう。 

     (例)
       (add-hook 'c-mode-hook '(lambda () (setq tab-width 4)))

   add-hook を使うと、デフォルトでは hook の最初に付け加わえられます
   が、 add-hook の第 3 引数に t を指定すると hook の最後に append されま
   す。

D-5: Mule-1.x と Mule-2.x とで .emacs を共有できますか? 
--------------------------------------------------------

   Mule-1.x と Mule-2.x とでは元の Emacs のバージョンの違いにより、 仕
   様が大きく変更されていますので、 そのまま使うとエラーになる場合が
   あります。 しかし、次のようにすれば、共有は可能です。 

       (if (string< emacs-version "19")
          (Mule-1.x の場合に実行する部分))
       (if (string< "19" emacs-version)
          (Mule-2.x の場合に実行する部分))

D-6: X Window System 上で使うと BS キーを押したときに DEL キーにバイン
----------------------------------------------------------------------
ドしたコマンドが実行されてしまいますが、何故ですか? また、ターミナルで
----------------------------------------------------------------------
実行したときと同じようにするにはどうしたらいい のでしょうか?
------------------------------------------------------------

   ターミナルだと BS キーは ^H、DEL キーは ^? というコードを発生する
   ので、BSと ^H, DEL と ^? の違いは区別できないのですが、X 上ではこ
   れらのキーの違いを区別することができます。 そこで、BS キーは DEL
   キーと同じような使われ方をされることが多いこと を考えてこのような
   仕様となっています。

   ターミナルで使う場合と同じようにするには .emacs に 

       (if (eq window-system 'x)
           (progn
             (define-key function-key-map [backspace] [8])
             (put 'backspace 'ascii-character 8)))

   を入れて下さい。また、BS キーと DEL キーを入れかえる場合、ターミ
   ナル 上だと通常 "term/bobcat" をロードしますが、 X 上ではこのファ
   イルをロードしても意味がないので、 上記のコードの代わりに次のコー
   ドを .emacs に 入れるのがいいでしょう。 

       (cond ((eq window-system 'x)
              (define-key function-key-map [delete] [8])
              (put 'delete 'ascii-character 8))
       ;       (load "term/keyswap")))  ;; if you want to swap ^H and ^?, too
             ((null window-system)
              (load "term/keyswap")))

D-7: カーソルが行頭にあるときに、C-k を1回打つだけで その行全体が削除さ
-----------------------------------------------------------------------
れるようにするにはどうしたらいいのでしょうか?
---------------------------------------------

   (setq kill-whole-line t) を .emacs に書いてください。

D-8: カーソルの位置が何行目かを表示するにはどうしたらいいのでしょうか? 
-----------------------------------------------------------------------

   (line-number-mode 1) を .emacs に書いてください。 現在何行目
   にカーソルがあるかがモードラインに表示されるようになります。

D-9: メニューバーに新しいメニューを追加したり変更したりするには どうし
----------------------------------------------------------------------
たらいいのでしょうか?
---------------------

   以下のような方法があります。

    1. あらかじめあるメニューによる機能を変更する。
      例えば、File メニューの Read Mail は rmail を呼び出しますが、
      mh-rmail にしたい場合は、 

         ; File メニューにある rmail を mh-rmail に置き換える。
         ; これは呼び出す関数指定を置き換えます。
         (substitute-key-definition 'rmail 'mh-rmail menu-bar-file-menu)

      とします。

      補足：あらかじめ設定されているグローバルなメニューに関して
      は 

         /usr/local/lib/mule/19.28/lisp/menu-bar.el

      に記述されています。

    2. グローバルメニューに新たな項目を追加する。
      例えば、Tool というメニューを作り、さらに、Mail というメニュ
      ーから Read と Send というメニューを設け、それぞれ、mh-rmail
      と mh-smail を呼び出すようにするには、 

      ; まず、サブメニューを作ります。
      ; Send というメニューで mh-smail を呼び出すようにします。
      ; Read というメニューで mh-rmail を呼び出すようにします。
      ; 後から定義した方がメニューで上になります。
      (setq menu-bar-mail-menu (make-sparse-keymap "Mail(mh-e)"))
      (define-key menu-bar-mail-menu [smail] '("Send" . mh-smail))
      (define-key menu-bar-mail-menu [rmail] '("Read" . mh-rmail))

      ; Tool というメニューを作り、グローバルメニューに追加します。
      ; この場合、 Buffers と File という間に Tool というメニューが
      ; 追加されます。
      (setq menu-bar-tool-menu (make-sparse-keymap "Tool"))
      (define-key global-map [menu-bar tool]
         (cons "Tool" menu-bar-tool-menu))
      ; Help の前にするにはこの設定を含めると良いでしょう。
      ; menu-bar-final-items に設定された順番でグローバルメニューの
      ; 最後にそれらメニューが置かれます。
      (setq menu-bar-final-items (cons 'tool menu-bar-final-items))

      ; Tool というメニューに、先ほどのサブメニューを追加します。
      (define-key menu-bar-tool-menu [mail]
         (cons "Mail(mh-e)" menu-bar-mail-menu))

    3. 特定のモードのみ利用できるメニューを設定(追加)する。
      例えば、mh-e の folder モードで使うメニューを設定するには、も
      ともと、 mh-folder-mode-map というキーが設定された変数があ
      るので、 これにメニューを付け加えます。 

      (define-key mh-folder-mode-map [menu-bar] (make-sparse-keymap))
      ; menu "Mail"
      (define-key mh-folder-mode-map [menu-bar mail]
          (cons "Mail" (make-sparse-keymap "Mail")))
      (define-key mh-folder-mode-map [menu-bar mail quit]
          '("Quit" . mh-quit))
      (define-key mh-folder-mode-map [menu-bar mail forward]
          '("Forward" . mh-forward))
      (define-key mh-folder-mode-map [menu-bar mail answer]
          '("Reply" . mh-reply))
      (define-key mh-folder-mode-map [menu-bar mail send]
          '("Send" . mh-send))

      ただし define-key でメニューを設定するとメニューに出て来る順
      番が、 定義した順序とは逆になってしまうので、 
       o 逆順にdefine-key する 
       o define-key-after を使う 
      のいずれかの方法を取る必要があるでしょう。

    4. easymenu.el を使う。
      easymeny.el を使うと、以下のような設定だけで簡単にメニューの
      作成を行なえます。 

      (load-library "easymenu")
      (easy-menu-define "dummy" global-map "dummy"
          (list "MyMenu"
              [ "GNUS" gnus t ]
              [ "Start Keyboard Macro"   start-kbd-macro     t ]
              [ "End Keyboard Macro"     end-kbd-macro       t ]
              [ "Execute Keyboard Macro" call-last-kbd-macro t ]
              [ "Copy Rectangle"         copy-rectangle-to-register t ]
              [ "Kill Rectangle"         kill-rectangle   t ]
              [ "Yank Rectangle"         yank-rectangle   t ]
              [ "String Rectangle"       string-rectangle t ]
          nil)
      )

D-10: indent 時に、自動的に前の行と同じインデントになるようにするには、
-----------------------------------------------------------------------
どうしたらいいのでしょうか?
---------------------------

   .emacs に 

       (define-key global-map "\C-m" 'newline-and-indent)
       (setq indent-line-function 'indent-relative-maybe)

   を入れて下さい。あるいは、 indented-text-mode という major mode を使
   う方法もあります。

D-11: Mule 2.2 の c++-mode で compile 関数にキーを設定するのはどうしたら
------------------------------------------------------------------------
いいですか?
-----------

   二つ、解決法があります。 
    1. cc-mode が古いので、cc-modeを、C, C++, Objective-C 各編集モー
      ドで共用できる cc-mode(4.85) に入れ換えて 

           (defun my-c-mode-common-hook ()
              (define-key cc-mode-map "\C-c\C-c" 'compile)
              (define-key c++-mode-map "\C-c\C-c" 'compile))
           (add-hook 'c-mode-common-hook 'my-c-mode-common-hook)

      と .emacs に書く方法です。

      cc-mode(4.85)は、例えば以下の場所にあります。 

          ftp://ftp.center.osaka-u.ac.jp/ohio-elisp/modes/cc-mode-4.85.tar.gz

    2. c++-mode のみに hook してやる方法があって 

         (setq c++-mode-hook '(lambda () (turn-on-auto-fill)
         ;;                  (codehide-mode 1)
                             (setq-default fill-column 72)
                             (define-key c++-mode-map "\C-c\C-c" 'compile)
                             (define-key c++-mode-map "\C-c\C-n" 'next-error)
          ))

      と .emacs に書く方法があります。 これだとそれ以外にやること
      はありません。 そのかわり、もちろん c-mode は関係がありませ
      んが。

      ちなみにここの codehide は、codehide.el があると名前の通り if 文の
      {} 内の文を隠してみたりできます。

D-12: minibuffer だけ独立した frame を作るには どうしたらいいのでしょうか?
--------------------------------------------------------------------------

   MORIOKA Tomohiko <morioka@jaist.ac.jp> さんは、 以下のように書いて
   います。 

      私はこういうのを入れています。 一般の frame は 16 dot の 80×46
      で minibuffer 無し、 そして、画面の一番下に 24 dot の 95×1 の
      minibuffer 専用の frame が出ます。

      ;;; @ default frame (Epoch like)
      ;;;
      (if (and (eq window-system 'x)
               (boundp 'MULE))
          (progn
            (setq default-minibuffer-frame
                  (make-frame '((name . "Minibuffer")
                                (minibuffer . only)
                                (font . "24") ; mule2
                                (width . 95)(height . 1)
                                (left . 0)(top . -1)
                                (auto-raise . t)
                                )))
            (setq initial-frame-alist
                  '((minibuffer . nil)
                    (font . "16") ; mule2
                    (width . 80)
                    (height . 46)
                    (auto-raise . t)
                    ))
            (setq default-frame-alist
                  '((minibuffer . nil)
                    (font . "16") ; mule2
                    (width . 80)
                    (height . 46)
                    (auto-raise . t)
                    ))
            ))

メール & ニュース
=================

E-1: メイルやニュースを書いているときに C-c C-y とすると引用マークが空
----------------------------------------------------------------------
白になってしまいます。 これを "> " に変えるにはどうすればよいのですか?
----------------------------------------------------------------------

   Supercite を使うと引用符が "> " となるように設定することができます。
   Supercite には多くの機能があり、引用マークをいろいろカスタマイズす
   る ことができます。 詳しくは 質問 E-2, E-3, E-4 を見てください。

E-2: Supercite を使って、引用符に名前などを含めるには どうすればよいので
------------------------------------------------------------------------
すか?
-----

   以下の設定で動くはずです。 この設定は ksakai@mtl.t.u-tokyo.ac.jp さん
   によります。 何を使うかによっていらない行は省けるでしょう。 また、
   一番下の 4行はお好みによって変えるといいでしょう (これについての詳
   細は Supercite のドキュメントを見てください)。 

     ;;  supercite 3.1
       (autoload 'sc-cite-original     "supercite" "Supercite 3.1" t)
       (autoload 'sc-submit-bug-report "supercite" "Supercite 3.1" t)
       (add-hook 'mail-citation-hook 'sc-cite-original)
       (add-hook 'mh-yank-hooks 'sc-cite-original)

       (setq sc-electric-references-p nil)
       (setq sc-preferred-header-style 1)
       (setq sc-citation-leader "")
       (setq sc-reference-tag-string ">> ")

E-3: Supercite を使って、引用符が自動的に "> " となるように設定するにはど
-------------------------------------------------------------------------
うすればよいのですか?
---------------------

   E-2 の設定に加えて、次の行を加えれば OK です。 

       (setq sc-nested-citation-p t)

   ただしこの設定を行なうと、 名前などを引用符に含めることができなく
   なりますので、 注意してください。

E-4: Supercite で、デフォルトで用意されている引用符以外のものを デフォル
------------------------------------------------------------------------
トとして使えるようにするにはどうすればよいのですか。
----------------------------------------------------

   この目的のために、Yoichi HIROSE (yoichi@s5g.ksp.fujixerox.co.jp) さんが作
   成した sc-register-2.3.1 があります。 使うには sc-register をインストー
   ルして次の設定を加えれば OK です。 

       (add-hook 'sc-load-hook '(lambda () (require 'sc-register)))
       (setq sc-preferred-attribution 'registeredname)

   日本語を引用符に含めたい場合など、 補完を用いて候補を選択するのが
   面倒な場合には、特に便利でしょう。

   ただし、付属の Supercite 3.1 では sc-register は使えません。 将来の
   Supercite には sc-register の機能が最初から組み込まれるそうですが、 必
   要であればそれまでは supercite-2.3 と sc-register-2.3.1 を自分でインスト
   ールして使って下さい。

E-5: Supercite 2.3 から付属の 3.1 に乗り換えたら、 sc-yank-original のときに
----------------------------------------------------------------------------
勝手に fill-paragraph されるようになってしまいました。
------------------------------------------------------

   Supercite の info によると、多くの人が SC を用いて引用を行なう際 fill を
   せず、結果として 72字を超えるニュース記事などが氾濫し 不満の声が広
   がったためこうしたということです。 それはともかく、 

       (setq sc-auto-fill-region-p nil)

   を .emacs に書けば fill-paragraph はされなくなります。 

E-6: RMAIL がうまく動きません。
-------------------------------

   Takeki Shigehara <takeki@nalgo.snet.or.jp> さんは以下のように書いていま
   す。 

      NEC EWS4800 EWX-UX/V(Rel 4.2) では、site-init.el に次の
      ことを記述してください。 (もしかすると SVR4 のマシンは全てこ
      うなのかもしれません) 

          (setq rmail-spool-directory "/var/mail/")
          (setq sendmail-program "/usr/ucblib/sendmail")
          (setq manual-program "/usr/ucb/man")

      さらに、/var/mailディレクトリを全てのユーザーが 読み書き
      できるようにします。 

          chmod 777 /var/mail

E-7: GNUS を使っていると、例えば fj.test に投稿する場合に distribution のデ
---------------------------------------------------------------------------
フォルト値が fj とはならないですが。
------------------------------------

   そのように仕様が変更になりました。 なお、distribution のデフォルト値
   gnus-local-distributions のリストの最初の値で、このリストの中の文字列
   が補完の対象となります。

E-8: mail を送信すると文字化けしてしまうのですが。
--------------------------------------------------

   mail モードまたは vm の場合は buffer の内容を /usr/lib/sendmail
   (sendmail-program を設定している場合はそこで指定しているプログラム)
   に直接送っています。 ですから、原因としてはこれらのプログラムに渡
   す漢字コードが *junet* なっていないためだと考えられます。
   sendmail ならば mule-init.el で 

       (define-program-coding-system nil ".*mail.*" *junet*)

   という設定を行なっていますので、 これを上書きしていないかどうか確
   認して下さい。 また、sendmail-program を指定している場合は、 このプ
   ログラムに渡す漢字コードが *junet* になっているかどうか確認して
   下さい。

   mh-e, mew の場合は draft をいったんファイルにセーブして、 それから
   mh の send コマンドを呼び出して mail を送信しています。 そのため、
   draft ファイルは *junet* コードでセーブする必要があります。 mh-e の
   場合は mule-init.el で 

       (setq mh-before-send-letter-hook
             '(lambda () (set-file-coding-system *junet*)))

   を実行していますが、この hook をオーバーライトすると 
   default-file-coding-system によっては draft が *junet* コード
   で保存されなくなってしまいます。 hook を書き換える場合は必ず setq の
   代わりに add-hook を用いるようにしましょう。 同様に、mew の場合は
   以下の設定が必要です。 

       (add-hook 'mew-draft-mode-hook
                 '(lambda ()
                    (set-file-coding-system *junet*)))

E-9: 受信したメールが文字化けして読めないのですが。
---------------------------------------------------

   メールがスプールに入るとき、 自動的にコード変換されたりするように
   なっていませんか? 組織内と外でメールに違う文字コード系を使ってい
   る場合 自動的にメールの文字コードを変換するように 設定している組織
   がありますが、 そのコード変換フィルタが多国語を想定していないのに
   多国語テキストのメールを受信する問題が発生することがあります。

E-10: メールやニュースを RMAIL 形式で保存すると保存したファイルに EUC
---------------------------------------------------------------------
と junet-code が混在してしまいます。 また、fj.editor.mule を RMAIL 形式で
-------------------------------------------------------------------------
保存すると ファイルが読めなくなってしまいます。
-----------------------------------------------

   Mule メーリングリストおよびニュースグループ fj.editor.mule では、
   ISO2022-JP だけでなく、 多国語を含んだメールや記事がやりとりされ
   ています。

   これらのメールやニュースを RMAIL 形式で保存する時、 もともと多国
   語を表現できないコード系 (EUC や SJISなど)を指定するとファイルの中
   身が おかしくなってしまします。

   RMAIL 形式で保存するときは *junet* コードを使って下さい。 以下の
   code を .emacs に追加すると、 RMAIL 形式で保存するときはいつも 
   *junet* コード系が指定されるようになります。 

       (defun hook-for-rmail-output (start end filename append visit)
         (if (or (string= (buffer-name) " rmail-output")
                 (string= (buffer-name) " *GNUS-output*"))
             *junet*
           (or coding-system output-coding-system file-coding-system)))

       (add-hook 'write-region-pre-hook 'hook-for-rmail-output)

画面表示
========

F-1: X Window System の Mule で日本語(中国語、韓国語) が表示できないので
------------------------------------------------------------------------
すが。
------

   Mule のデフォルトでは 16 ドットフォントを使用するようになっていま
   す。 具体的にどういうフォントをロードしようとするかは 
   x-default-fonts という変数に指定してあります。もしこれで構わ
   ない場合は X のリソースは何も設定する必要ありません。 もしそれ以外
   のサイズのフォントも使いたい場合は、 

       *FontSetList: 14,24
       *FontSet-14: -*-fixed-medium-r-*--14-*-iso8859-1
       *FontSet-24: -*-fixed-medium-r-*--24-*-iso8859-1

   などと X のリソースを設定して下さい。さらに、日本語(中国語・韓国語)
   フォントが標準的な XLFD 名でインストールされていない場合は、 
   ${HOME}/.emacs などで 

       (set-fontset-font "default-fontset" lc-jp "SOME_FONT_NAME")

   というように指定して下さい。 

F-2: X 上で Mule を使っていると、フォントの一部が欠けて表示されたり、 フ
------------------------------------------------------------------------
ォントがくずれて汚くなったりするのですが。
------------------------------------------

   TAKAHASHI Naoto <ntakahas@etl.go.jp> さんと Ken'ichi Handa 
   <handa@etl.go.jp> さんは次のように書いています。 

      Mule は ASCII フォントの幅に合わせてウィンドーを作ります。 フ
      ォントの一部が欠けるのは、そのフォントと ASCII フォントの幅
      が合っていないからです。 日本語・中国語・ハングルの場合は横
      幅が ASCII フォントの丁度 2 倍でなければなりません。 またそれ
      以外のフォントは横幅が ASCII フォントと同じでなければなりま
      せん。

      フォントがくずれて汚くなるのは X の自動スケーリング機能のた
      めでしょう。 指定されたフォントが XLFD 形式に従っており、 か
      つ実際には存在しなかった場合、 X のサーバは自分の知っている
      フォントを適宜拡大縮小して使用します。 たとえば、 

          "-*-fixed-medium-r-*--*-*-*-*-*-*-jisx0208.1983-*"

      という指定は XLFD に従っているので自動スケーリングされるよ
      うになるようです。 これに対し mule-init.el にある指定: 

          "-*-fixed-medium-r-*--*-*-jisx0208.1983-*"

      は XLFD に従っていないので(コラムの数が少ない) 自動スケーリ
      ングはされないはずです。 以上は単なる経験則です。

F-3: X 版 Mule の起動時のデフォルトのフォントのサイズを 14 ドットフォン
-----------------------------------------------------------------------
トにするには?
-------------

   X のリソースで、Emacs*FontSetList: の最初に書かれているフォン
   トセットがデフォルトになります。 従ってデフォルトを 14 ドットにし
   たければ、 FontSetList の最初に 14 を書き、それに対応する FontSet-14 を
   質問 F-1 の例にならって書けば OK です。

   なお、リソースの指定の時、emacs*FontSetList: や 
   Mule*FontSetList: などと書いてはいけません。 SANETO Takanori 
   <sanewo@cep.sony.co.jp> さんは以下のように書いています。 

      Emacs の方はクラス名、 mule の方はインスタンス名、とでも言い
      ましょうか…

      Emacs は、Emacs 系のプログラム一般で使う名前です。 mule も
      nemacs も、epoch も nepoch も、もちろん、オリジナルの GNU
      emacs もみんな Emacs です。

      インスタンス名の方は、もっと個別の実体を識別するもので、
      mule を hoge に rename した場合、 Emacs*... の指定は依然とし
      て効きますが、 mule*... のほうは無効になります。 インスタン
      ス名、クラス名の両方の指定があった場合は、 インスタンス名に
      対する指定の方が優先されます。

      インスタンス名は、-rn name というオプションで明示的に指定
      することもできます。あるいは、環境変数 WM_RES_NAME があれ
      ばこれの値が使われます。 オプションも環境変数もない場合には
      コマンド名が使われます。

F-4: (setq visible-bell t) として visible-bell にしたところ、 画
----------------------------------------------------------------
面フラッシュの起こる位置が画面中央、 範囲が画面の大きさ約 1/4 に限られる
------------------------------------------------------------------------
ようですが、これは仕様でしょうか? 
----------------------------------

   仕様です。GNU Emacs 18.58 から、このように変更されました。 

F-5: face とは何ですか?
-----------------------

   X Window System 上で、表示する文字のタイプごとに応じて、 色やフォ
   ントなどの属性を付ける機構です。 Mule 2.x では、モードラインの白黒
   反転も この機能を使って実現しています。 face をうまく使ったプログラ
   ムに hilit19.el や font-lock.el などがあります。

F-6: terminal face とは何ですか? また、terminal face を使うにはどうしたらい
---------------------------------------------------------------------------
いのでしょうか?
---------------

   元々の emacs では face は X Window System による描画のときにしか使え
   ない機能でした。これに対し、 Mule では termcap による描画の際にも
   face が使えるようになっています。これを指して terminal face と呼んでい
   ます (compile switch や configure の switch に使うためというのが、 名前を
   必要とした一番の理由です)。

   使うには configure で --terminal-face を指定してください。 

F-7: Mule を X で使ったときに行間が空いていますが、 これを縮めるにはどう
------------------------------------------------------------------------
したらいいでしょうか?
---------------------

   X のリソース指定で、 

     Emacs*lineSpace:              0+0

   と書いておくか、起動時のコマンドラインオプションで -lsp 0+0 を指
   定します。 Emacs Lisp で指定する場合には、以下のようにして 
   default-frame-alist に (line-space . "0+0") を追加して下
   さい。 

     (setq default-frame-alist
           (cons '(line-space . "0") default-frame-alist))

Emacs Lisp パッケージ
=====================

G-1: Mule 1.x では動いていた xxx という lisp プログラムが動かなくなりまし
-------------------------------------------------------------------------
た。 どうすればいいのでしょうか?
--------------------------------

   これは、Mule 1.x が GNU Emacs 18.59 ベースなのに対して、Mule 2.x が
   GNU Emacs 19 ベースとなり、大きく仕様が変更されたせいです。 とは
   いっても、今までに多くのプログラムが Emacs 19 対応になっていますの
   で、以下のことを確認して下さい。

    1. Mule 2.x では多くの lisp プログラムが標準で添付されるようになり
      ました。 それらのプログラムはすでに Mule 2.x 対応がなされてい
      ます。 ですから、最初に標準の lisp ディレクトリにそれらのプロ
      グラムがないか確かめてみて下さい。 もしあれば、手持ちのプロ
      グラムは捨てて、 こちらを使うようにしましょう。 
    2. 標準で配布されていなくても、 作者の努力によってすでに対応が
      なされている場合があります。 archie を使うなどして、最新版を
      手に入れるようにしてみて下さい。 
    3. 例えば shell mode では、これを拡張したパッケージはいろいろと作
      られていますが、 Mule 2.x になってかなり使い易くなりました。
      ですから、標準のモードで代用できるのであれば、 これを利用す
      るのも 1 つの手です。 
    4. さもなくば、自分でポーティングしましょう。 

G-2: C 言語の予約語やコメントなどに 色を付けるにはどうしたらいいのでし
----------------------------------------------------------------------
ょうか?
-------

   hilit19.el または font-lock.el を使いましょう。 

G-3: hilit19.el を使うにはどうしたらいいのでしょうか?
-----------------------------------------------------

   このファイルをロードするだけで O.K. です。特定のモードだけに hilit19
   を使いたい場合には hilit-mode-enable-list にそのモードを列記しておけ
   ばいいでしょう。 また、 

     (setq hilit-mode-enable-list
        '(not text-mode emacs-lisp-mode sgml-mode c-mode c++-mode)

   という風に書いて hilit19 を使いたくないモードだけを指定することもで
   きます。

   hilit19 は文字入力等した後 C-S-l を打たないと表示に反映されないのが
   欠点ですので、 これを利用して特定のモードだけ font-lock を利用するの
   も 1 つの手です。

G-4: font-lock.el はどのように使うのでしょうか?
-----------------------------------------------

   (add-hook 'emacs-lisp-mode-hook '(lambda ()
   (font-lock-mode 1))) というような行を font-lock を使いたいモー
   ドごとに .emacs に書いてやれば O.K. です。

   font-lock はデフォルトの設定ではカラーでは表示しませんが、 次のよう
   な感じで face の指定を行なえばカラーで表示させることができます。

     (add-hook 'font-lock-mode-hook
         '(lambda ()
            (make-face 'keyword-face)
            (set-face-foreground 'keyword-face "tomato")
            (setq font-lock-keyword-face 'keyword-face)

            (make-face 'comment-face)
            (set-face-foreground 'comment-face "violetred4")
            (setq font-lock-comment-face 'comment-face)

            (make-face 'string-face)
            (set-face-foreground 'string-face "darkgreen")
            (setq font-lock-string-face 'string-face)

            (make-face 'function-face)
            (set-face-foreground 'function-face "blueviolet")
            (setq font-lock-function-name-face 'function-face)

            (make-face 'c-type-face)
            (set-face-foreground 'c-type-face "darkolivegreen")
            (setq font-lock-type-face 'c-type-face)
     ))

   font-lock を拡張したものに、カラーやグレースケールも扱えるようにし
   た face-lock、速度の改善を行なった fast-lock というものもあり、
   anonymouse ftp site から入手できます。これらは、将来の emacs では
   font-lock に merge されるそうです。

G-5: c-mode をもっと使い易くできないのでしょうか?
-------------------------------------------------

   cc-mode を使いましょう。様々なスタイルのインデントのサポートや、
   C++ のサポートなど、いろいろと使い易くなっています。

G-6: 自動的に RCS を使うようにするパッケージはないのですか?
-----------------------------------------------------------

   vc.el というのがあり、 Mule 2.x ではあらかじめ使えるように設定されて
   います。 RCS で管理されているファイルを find-file すると自動的に vc モ
   ードとなって、 C-x C-q を実行すると状態に応じて ci -u, co -l
   をやってくれます。 これだけでも十分に実用的ですが、さらに詳しい使
   い方については info に載っていますので、これを参照して下さい。

G-7: キーボードから直接 'ESC $ B $ "' のようなコード入力を行なうにはど
----------------------------------------------------------------------
うしたらいいのでしょうか?
-------------------------

   これは keyboard.el を使うとできます。 
   set-keyboard-coding-system を *junet* にして、そのまま打ち
   込んで下さい。

G-8: 愛すべき ange-ftp をロードすると M-! (shell-command) が働かないの
----------------------------------------------------------------------
は何故ですか?
-------------

   Mule 2.x ではこのような問題は起こらないはずです。以下は Mule 1.x で
   の話です。

   ange-ftp をロードすると多くの関数が置き換えられますが、その中に
   Mule で引数の指定が変更されている write-region と 
   insert-file-contents が含まれています。

   コマンド shell-command は write-region と 
   insert-file-contents を Mule で追加された引数を使って呼び出し
   ていますが、 ange-ftp が置き換えた write-region はこの引数を解釈
   できないのでエラーが発生し、shell-command の実行が失敗している
   のです。

   解決法を Masayuki Kuwada <kuwada@soliton.ee.uec.ac.jp> さんは次のよう
   に書いています: 

      ange-ftp.el の ange-ftp-write-region と 
      ange-ftp-insert-file-contents の定義部分の引数の最後
      に &rest coding-system を追加し、以下の修正をすれば動作
      します (Emacs, Nemacs との共有もできます)。

      [注意] 以下の修正は ange-ftp のバージョン 

      RCS:          $Header: ange-ftp.el,v 4.20 92/08/14 17:04:34 ange Exp $

      に対するものです。 ange-ftp のバージョンによっては、引数が異
      なる場合がありますから、 以下の修正例を参考に修正してくださ
      い。

      関数 ange-ftp-write-region の内部で 
      ange-ftp-real-write-region が 2 箇所で使用されています
      が、それらをそれぞれ次のように変更します。 

        (ange-ftp-real-write-region start end temp nil visit)
                            ↓
        (apply 'ange-ftp-real-write-region start end temp nil
            visit coding-system)

        (ange-ftp-real-write-region start end filename append visit)
                            ↓
        (apply 'ange-ftp-real-write-region start end filename append
            visit coding-system)

      また、関数 ange-ftp-insert-file-contents の内部で 
      ange-ftp-real-insert-file-contents が2箇所で使用さ
      れていますが、それらをそれぞれ次のように変更します。 

        (ange-ftp-real-insert-file-contents temp visit)
                            ↓
        (apply 'ange-ftp-real-insert-file-contents
            temp visit
            coding-system)

        (ange-ftp-real-insert-file-contents filename visit)
                            ↓
        (apply 'ange-ftp-real-insert-file-contents
            filename visit coding-system)

G-9: sj3 を使って日本語入力を行いたいんですが、変換をしようとすると、
---------------------------------------------------------------------
"EGG: Network service (sj3) がみつかりません。"と、失敗してしまいます。
-----------------------------------------------------------------------

   /etc/service(NIS を使っている場合は NIS の map) に 

       sj3             3000/tcp        sj3serv         # sj3 server

   という記述を忘れているからでしょう。あるいは、.emacs に 

       (setq *sj3-service-name* 3000)

   と書く方法もあります。 

Emacs lisp プログラミング
=========================

H-1: Mule は、Emacs の上位互換ではないのですか?
-----------------------------------------------

   Mule は、GNU Emacs をベースに作られていますが、 emacs lisp のレベル
   でみるとわずかながら互換性がない部分もあります。また、 Mule の前身
   にあたる Nemacs (Nihongo Emacs) とはかなり違うものになっています。

   Mule と Nemacs/Emacs との emacs lisp の非互換性について、 Enami
   Tsugutomo <enami@sys.ptg.sony.co.jp> さんは次の点を指摘しています。

    o Nemacs, Mule にしか存在しない関数/変数に依る非互換性。 
    o Mule で Multilingual 化のために仕様が変更(引数の追加など) された
      ことによる非互換性。 
    o Nemacs と Mule で ascii 以外の文字の内部表現が違うことに起因す
      る、 byte compile 後の file の非互換性。 (ただし byte code の互換性
      はあります(よね?:)) 
    o Mule 1.x と Mule 2.x で、文字定数の表現がかわったために文字定数
      を含んだ compiled emacs lisp file の非互換性 
    o baseにしている emacs のバージョンの違いによる非互換性 

H-2: Mule 1.x 用のプログラムを Mule 2.x 用にするときの注意点を教えて下さ
------------------------------------------------------------------------
い。
----

   以下のようなことに注意すればいいでしょう。 
    o auto-fill-hook が auto-fill-function という名前に変更になった。 
    o keymap の構造がちょっと変った。 
    o obsolete な変数は変更した方がいいでしょう。
      unread-command-char → unread-command-event 
   などなど… 



Mule FAQ Part 2: 特定の言語に固有の質問
=======================================

中国語について
==============

CN-1: Mule のコンパイルは正常にできたのですが、 中国語がうまく扱えませ
----------------------------------------------------------------------
ん。
----

   Mule Ver.2.0 以前では、インストールの際に、 site-init.el で使用し
   たい言語の言語 specific ファイルを指定してロードするようになっていま
   す。デフォルトでは site-init.el は存在していないので、英語以外の言語は
   うまく扱えません。
   中国語を使いたいのならば、lisp/site-init.elに (load
   "chinese") という行を書いて Mule を作ってみてください。

   Mule Ver.2.1 以降ではインストールの際にすべての言語用の基本的設定が
   なされるので、このような事態は起こらないはずです。 ただし、どの言
   語をメインに使うかは site-init.el で 

       (set-primary-environment 'chinese)

   のようにして設定することができます。 デフォルトでは 'japanese が
   設定されています。

CN-2: 中国語を入力するには?
---------------------------

   中国語を入力するには、「たまご」システムを使います。「たまご」は
   cWnn の cserver と通信することによって、 便利な中国語(GB)入力方法を
   提供します。 C-x C-k m で PinYin モードを選択すると、 pinyin で入力
   できるようになります。

   また、Mule は quail-system も提供しています。このシステムは XV11R5
   の `cxterm/dict/tit' にあるすべての入力変換テーブルをサポートし
   ています。

CN-3: EUC で日本、中国、韓国、EC など各国語を同時表示できるようにした
---------------------------------------------------------------------
いのですが?
-----------

   各国語の EUC は、それぞれ全く同じコード系ですから混在させることは
   不可能です。 多国語を同時表示させる必要があるなら、Mule での 
   *junet* もしくは *ctext* のコードを使用するようにしてください。

CN-4: インクリメンタルサーチ中に漢字を入力するには?
---------------------------------------------------

   isearch 中に C-\ で「たまご」を起動したり、 C-] で quail を起動して各
   国語を入力できます。

CN-5: 中国語を含んだファイル名がうまく扱えないのですが。
--------------------------------------------------------

   ASCII 以外の文字を含んだファイル名に正しく扱うためには、 configure
   で --mcpath を指定して Mule をコンパイルします。 また、使用するフ
   ァイル名のコード系を指定する必要があります。 site-init.el に、
   次のようなコードを追加するといいでしょう (*autoconv* は使えませ
   ん)。 

       ;;; 例: パス名に、中国語 EUC を使う
       (if (fboundp 'set-pathname-coding-system)
           (set-pathname-coding-system *euc-japan*))

CN-6: ニュースグループ alt.chinese.text[.big5] を中国語で読むことはできます
---------------------------------------------------------------------------
か?
---

   alt.chinese.text では、 ~{ と ~} を 'ESC $ A' (中国語の G0 への designate)
   と 'ESC ( B' (ASCII の G0 への designate) の代わりに使っています。 こ
   れは Hz encoding と呼ばれています。Mule では、GNUS と gnusutil.el を用
   いることにより、このニュースグループを普通に中国語で 読むことが可
   能です。 GNUS を起動する前に gnusutil.el をロードしてください。
   gnusutil.el は、Mule Ver.2 からは標準で添付しています。

日本語について
==============

JP-1: Nemacs (Nihongo Emacs) と比べて Mule を使うと何がうれしいですか?
----------------------------------------------------------------------
あるいは Nemacs を使用したほうがいいケースはありますか? あるとしたら、
----------------------------------------------------------------------
どんな場合ですか?
-----------------

   Mule を使う利点はいくつかあります。

    o 英語や日本語ばかりでなく中国語・韓国語・その他多数の言語を
      扱うことができます。しかもこれらを混在して使うこともできま
      す。 
    o バッファ中の領域に、表示に関する属性を持たせることができま
      す。 Nemacs と違い、通常の端末でも(端末がサポートしていれば)
      表示属性の機能を使うことができます。 
    o Nemacs に付属する「たまご」よりも変換効率の良い日本語入力シ
      ステム 「たかな版たまご」を利用することができます。 
    o Nemacs は GNU Emacs 18.55 base ですが Mule Ver.2 は Emacs 19
      base です。 
    o 強力な regular expression compiler が付属しています。 

   逆に、Mule は Nemacs よりもかなり複雑で大きなプログラムですので、
   計算機資源の乏しい環境で、日本語しか使わないのならば Nemacs を使
   った方が良い場合もあります。

   また、Mule と Nemacs は互換性がありませんので、過去に Nemacs 用に開
   発されたアプリケーションは Mule ではうまく動かないものもあります。

JP-2: Nemacs はなくなるの?
--------------------------

   答はもちろんノー。と、言いたいところですが、今後はサポートされま
   せん。 Nemacs の最終バージョンは 3.3.2 ということになります。

JP-3: 日本語で議論が行なわれている Mule のメーリングリストがありますか?
-----------------------------------------------------------------------

   日本語での通常の議論にはニュース (fj.editor.mule) を使ってください。(質
   問 A-7 参照) 

JP-4: Mule には日本語のマニュアルがついていますか?
--------------------------------------------------

   質問 A-9 も参照してください。 Mule に関する日本語のマニュアル、ド
   キュメント類には以下のものがあります。 

   texinfo マニュアル 

        mule-jp.texi     Mule の texinfo マニュアル
        egg-jp.texi     「たまご」の texinfo マニュアル
        canna-jp.texi   「かんな」の texinfo マニュアル

      が、$MULE/man にあります。 
   FAQ 
      今あなたが読んでいるものです。 $MULE/etc/FAQ-Mule.jp に
      あります。 
   チュートリアル 
      Mule の上から C-h T (M-x help-with-tutorial-for-mule)
      として Japanese を選択すれば日本語のチュートリアルを起動でき
      ます。 
   doc ディレクトリ下の文書 
      $MULE/doc には、 Mule の機能別の説明やサンプル文書などがあ
      ります。 ファイル名が .jp でおわっているものは日本語で書かれ
      ています。 

JP-5: Mule のコンパイルは正常にできたのですが、 日本語がうまく扱えませ
----------------------------------------------------------------------
ん。
----

   Mule では、インストールの際に site-init.el でメインに使用したい
   言語環境を set-primary-environment で指定するようになってい
   ます。デフォルトでは 

       (set-primary-environment 'japanese)

   が実行されていますが、 サイトによっては異なる言語環境が指定されて
   いる可能性もあります。 そのような場合は ${HOME}/.emacs で上記を
   実行して下さい。

JP-6: X Window System の Mule で日本語が表示できないのですが。 
---------------------------------------------------------------

   Mule のデフォルトでは 16 ドットフォントを使用するようになっていま
   す。 具体的にどういうフォントをロードしようとするかは 
   x-default-fonts という変数に指定してあります。もしこれで構わ
   ない場合は X のリソースは何も設定する必要ありません。 もしそれ以外
   のサイズのフォントも使いたい場合は、 

       *FontSetList: 14,24
       *FontSet-14: -*-fixed-medium-r-*--14-*-iso8859-1
       *FontSet-24: -*-fixed-medium-r-*--24-*-iso8859-1

   などと X のリソースを設定して下さい。さらに、日本語フォントが標準
   的な XLFD 名でインストールされていない場合は、 ${HOME}/.emacs
   などで 

       (set-fontset-font "default-fontset" lc-jp "SOME_FONT_NAME")

   というように指定して下さい。

JP-7: 日本語はどうやったら入力できますか?
-----------------------------------------

   日本語入力システムとしては、以下のものが用意されています。

    o たまご(EGG)・たかなバージョン 
    o sj3-egg 
    o かんな(Canna) 

      いずれもネットワーク仮名漢字変換サーバを利用し ローマ字漢字
      変換方式の日本語入力を提供しています。 詳細については、各シ
      ステムのマニュアルを参照してください。 これらの日本語入力シ
      ステムは、 Mule を構築する際にそれぞれのシステムを使うように
      設定しなければなりません。 

    o quail による T-CODE 入力 

      これは仮名漢字変換サーバを使用しない入力法です。 
      lisp/quail/tcode.el をロードした後、 C-] で ASCII と
      T-CODE モードがトグルします。 (注:quail/tcode.el は間も
      なく削除され tc-mule.el に置き換えられます) 

    o SKK 

      「SKK」は Mule 構築のときに特別な設定は何もしないでも使うこ
      とができます。 「SKK」は Mule の中で完全に閉じた使い方も可能
      ですし、 辞書サーバを利用する使い方も可能です。 Mule Ver.2 で
      SKK を使う場合、skk7.18.1 以降を使用して下さい。 

JP-8: 「たまご」って何ですか?
-----------------------------

   「たまご」は、Wnn のネットワーク変換サーバ(jserver/cserver) を利用し
   て日本語あるいは中国語の入力環境を提供するシステムです。 「たまご
   」を英訳して EGG と呼ぶこともあります。

   「たまご」は大きく分けると入力文字変換系(ローマ字仮名変換部)、 仮
   名漢字 / pinyin → Hanzi変換部、 そして日本語編集機能から成り立ってい
   ます。 入力文字変換系は平仮名・カタカナ・pinyin だけでなく、 ハング
   ルや他の言語の入力にも利用されます。

JP-9: 「たかな」って何ですか?
-----------------------------

   Toshiaki SHINGU <shingu@cpr.canon.co.jp> さんは、次のように語ってい
   ます。 

      「たまご」の Wnn V4 ライブラリ版です。「たまごよ/かしこく/な
      ーーれ」 の頭文字から命名されました。従来の「たまご」に加え
      て、 

         大文節/小文節変換 
         逆変換(漢字 --> かな) 
         V4 jserver が持つ品詞(人名など)での辞書登録 
         単語を辞書から削除しないで有効/無効にできる 
         単語の頻度の設定 
         辞書にコメントを設定する 

      ができます。 

   「たかな」は「たまご」とは別個のものではなく、 「たまご」を強化し
   たものであると言えます。 今後、「たまご」は「たかなバージョン」に
   集約されて、以前の Wnn V3 および Wnn V4 の V3 互換ライブラリに対応
   したものはサポートされません。 

JP-10: sj3-egg って何ですか?
----------------------------

   X11R5/R6 の contrib に含まれている sj3serv と通信する「たまご」です。
   変換効率がとても良いという特徴を持っています。 

JP-11: かんな(Canna) って何ですか?
----------------------------------

   サーバ・クライアント方式の仮名漢字変換システムです。 Mule 上では、
   「たまご」とほぼ同様のユーザインターフェースで 「かんな」の変換サ
   ーバーを利用した仮名漢字変換システムが利用できます。 

JP-12: 「SKK」って何ですか?
---------------------------

   Masahiko Sato <masahiko@sato.riec.tohoku.ac.jp> さんは、次のようにかい
   ています。 

      「SKK」は Mule のために高速で効率的な日本語入力環境を提供す
      るシステムで、 とくにユーザの意図した文をそのままの形で容易
      に入力できるシステムです。 「SKK」は文法的な解析をまったく
      しないで変換を行うため高速な変換ができ、 ユーザが送り仮名の開
      始位置を指定することにより意図をシステムに 伝えるために効率
      的な変換が可能になっています。 また辞書登録のさいに品詞につ
      いての情報を与える必要もないので、 ユーザの辞書を簡単に強化
      できます。 「SKK」の使い方はチュートリアルプログラムにより
      短時間で修得することができます。

JP-13: 漢字の入力で、字の形はわかっているが、 読みがわからないときどう
----------------------------------------------------------------------
やって入力するのですか?
-----------------------

   「たまご」では部首入力(M-x busyu-input) と画数入力(M-x
   kakusuu-input)をサポートしています。 この機能を使うことにより
   、 ミニバッファのメニューから部首あるいは画数を指定して 漢字を入力
   することができます。

JP-14: kterm で、マウスによる cut & paste ができないのですが?
-------------------------------------------------------------

   Mule を kterm の上で起動している場合、 Mule の 
   keyboard-coding-systemが、 kterm の漢字モードと合っていない場
   合、paste できません。 kterm の漢字モードと Mule の 
   keyboard-coding-system を合わせて行なうようにしてください。

JP-15: kinput2 から漢字を入力できますか?
----------------------------------------

   kterm の上で Muleを動かすことで、kinput2 から入力することができます
   。 ただし、その時は、Mule の keyboard-coding-system を kterm の
   漢字モードと合うように設定する必要があります。

JP-16: (setq keyboard-coding-system *euc-japan*) と設定したの
-------------------------------------------------------------
ですが、どうもうまく動いてくれないのですが?
-------------------------------------------

   setq で、直接 keyboard-coding-system に値をバインドしてはいけ
   ません。 必ず set-keyboard-coding-system 関数を使うようにし
   てください。 他の display-coding-system や 
   file-coding-system なども同様です。

JP-17: EUC で日本、中国、韓国、EC など各国語を同時表示できるようにした
----------------------------------------------------------------------
いのですが?
-----------

   各国語の EUC は、それぞれ全く同じコード系ですから混在させることは
   不可能です。 多国語を同時表示させる必要があるなら、Mule での 
   *junet* もしくは *ctext* のコードを使用するようにしてください。

JP-18: インクリメンタルサーチ中に漢字を入力するには?
----------------------------------------------------

   isearch 中に C-\ で「たまご」を起動したり、 C-] で quail を起動して各
   国語を入力できます。

JP-19: 半角カタカナ(JIS X0201カタカナ) を入力するには?
------------------------------------------------------

   Ken Shibata <shibata@sgi.co.jp> さんは以下のように書いています。 

      Mule には、半角カタカナ(JIS X0201カタカナ)の入力のために 
      jisx0201.el, its/han-kata.el の 2つの emacs lisp が用意
      されています。 jisx0201.el ではフェンスモードで既に入力さ
      れた全角のカタカナ、 ひらがなを一括変換する 
      fence-hankaku-katakana (フェンスモードの中で M-x)が、 
      its/han-kata.el にはローマ字半角カタカナ変換を行なうため
      の its:select-hankaku-katakana(通常のモードで C-x
      C-k x、フェンスモードで M-C-x) が含まれています。

      さらに、jisx0201.el には一括変換である 
      hankaku-katakana-region,
      zenkaku-katakana-region (paragraph,sentence,word
      もあります)が含まれています。 its/han-kata.el は 
      jisx0201.el をロードしますので、必要に応じてどちらかを 
      .emacs でロードしてください。ただ、この lisp のロードにはかな
      りの時間がかかりますので、 頻繁に半角カタカナを入力する人は 
      site-init.el でロードするようにして再コンパイルをしておく
      と良いでしょう。

      入力のシーケンスをまとめます。

       1. フェンスモードで、既に入力したかなを半角にするには 
         M-x、 半角カタカナを全角ひらがな(カタカナ)に戻すのは 
         M-h (M-k) 
       2. 通常のモードでローマ字半角カタカナモードに切替えるの
         は C-x C-k x、ローマ字全角ひらがなモードに戻すのは 
         C-x C-k h 
       3. フェンスモードでローマ字半角カタカナモードに切替える
         のは M-C-x、 ローマ字全角ひらがなモードに戻すのは 
         M-C-h (蛇足ですが、bobcat.el や keyswap.el などで
         bs と del を交換していて Meta を ESC キーで入力している人
         は M-C-h は ESC DEL になります)。 

JP-20: 「たまご」を使っているとき「nn」で「ん」 が入力されるようにする
----------------------------------------------------------------------
にはどうしたらよいのでしょうか。
--------------------------------

   .emacs の中に 

       (setq enable-double-n-syntax t)

   という1行を入れれば OK です。 

JP-21: 日本語を含んだファイル名がうまく扱えないのですが。
---------------------------------------------------------

   ASCII 以外の文字を含んだファイル名に正しく扱うためには、 configure
   で --mcpath を指定して Mule をコンパイルします。 また、使用するフ
   ァイル名のコード系を指定する必要があります。 site-init.el に、
   次のようなコードを追加するといいでしょう (*autoconv* は使えませ
   ん)。 

       ;;; 例: パス名に、日本語 EUC を使う
       (if (fboundp 'set-pathname-coding-system)
           (set-pathname-coding-system *euc-japan*))

JP-22: Wnn と Canna を同時に使うにはどうしたらいいのですか?
-----------------------------------------------------------

   Sakai Kiyotaka <ksakai@mtl.t.u-tokyo.ac.jp> さんは、以下のように書いて
   います。 
    1. Mule のコンパイル時の設定
      configure に 

      --wnn --wnn-includes=DIR --wnn-libraries=DIR \
      --canna --canna-includes=DIR --canna-libraries=DIR

      の指定を追加します。ただし、 DIR の部分はサイトの状況に合わ
      せて指定して下さい。 
    2. .emacs の設定
      次に Canna の設定を行なっている人は .emacs に 

       (if (and (boundp 'CANNA) CANNA)
          (progn
           (load-library "canna")
           (canna)
           ... ))

      のような記述がありますが、これを以下のように書き換えます。 

       (if (and (boundp 'CANNA) CANNA)
          (progn
            (setq canna-server "mercury")
            (cond ((boundp 'egg-version)
                   (require 'can-n-egg)
                   (can-n-egg))
                  (t
                   (require 'canna)
                   (canna)))
            ... ))

      これで C-\ を押すと Wnn の、 \C-o を押すと Canna の入力モード
      に入ることができます。 

JP-23: Mule は、Nemacs の上位互換ではないのですか?
--------------------------------------------------

   Mule は、emacs lisp ベースでみると、 Nemacs とはかなり違うものになっ
   ています。

   Mule と Nemacs/Emacs との emacs lisp の非互換性について、 Enami
   Tsugutomo <enami@sys.ptg.sony.co.jp> さんは次の点を指摘しています。

    o Nemacs, Mule にしか存在しない関数/変数に依る非互換性。 
    o Mule で Multilingual 化のために仕様が変更(引数の追加など) された
      ことによる非互換性。 
    o Nemacs と Mule で ascii 以外の文字の内部表現が違うことに起因す
      る、 byte compile 後の file の非互換性。 (ただし byte code の互換性
      はあります(よね?:)) 
    o Mule 1.x と Mule 2.x で、 文字定数の表現がかわったために文字定
      数を含んだ compiled emacs lisp file の非互換性 
    o baseにしている emacs のバージョンの違いによる非互換性 

JP-24: Nemacs と Mule で .emacs を共有できますか?
-------------------------------------------------

   Mule は Nemacs と互換性がありません。それで Nemacs 用の .emacs を
   そのまま使うと Mule ではエラーになる場合があります。

   しかし以下のように Mule で実行する部分と Nemacs で実行する部分を切
   りわければ共有することが可能です。 

     (if (boundp 'MULE)
       (Mule の場合に実行する部分))
     (if (boundp 'NEMACS)
       (Nemacs の場合に実行する部分))

   Mule の texinfo マニュアルに、Mule と Nemacs で共有可能な .emacs の
   サンプルがあるので参考にしてください。

   ただし、byte-compile する場合は共有できないこともあります。 この点
   について Enami Tsugutomo <enami@sys.ptg.sony.co.jp> さんは次のように
   書いています。 

      ~/.emacs とかを Nemacs と Mule と共有できるようにしても、 も
      し byte compile するなら別の(byte compileされた) ファイルにしない
      といけません。

      つまり漢字の文字列とかはいってると、(Nemacs と Mule で ascii 以
      外の文字の内部表現が違うことに起因する、byte compile 後の file
      の非互換性により) byte compile はすくなくともしなおさないとだ
      めってことです:)。

JP-25: Nemacs ではちゃんと動いていたのに、Mule だと "Symbol's function
----------------------------------------------------------------------
definition is void: define-program-kanji-code" とメッセージが出てうまく動き
---------------------------------------------------------------------------
ません。どうすれば良いでしょう?
-------------------------------

   Atsushi Furuta <furuta@srarc2.sra.co.jp> さんは次のように書いています。 

      define-program-kanji-code は、Nemacs にだけある関数で
      す。 したがって、そのままでは Mule で動きません。 
      define-program-coding-system という関数が、代わりの役
      目をしてくれるでしょう。 たとえば、次のように書き換えます。 

        (define-program-kanji-code nil ".*inc.*" 2)
                |
                V
        (define-program-coding-system nil ".*inc.*" *junet*)

      同様に、"kanji-code" を含んだ変数/関数が見つからない場合、
      "kanji-code" を "coding-system" に置き換えた変数/関数が Mule に
      ある場合があります。また、"kanji-flag" という変数は、 "mc-flag"
      という変数が、代わりの役目をしています。

   さらに、Mule の上で Nemacs 用に書かれたコードを動くようにするため
   のパッケージもあります。 Ken'ichi Handa <handa@etl.go.jp> さんは次の
   ように書いています。 

      From: handa@etlken.etl.go.jp (Kenichi Handa)
      Newsgroups: fj.editor.mule,fj.editor.emacs
      Subject: nemacs -> mule
      Message-ID: <HANDA.93Oct15215300@etlken.etl.go.jp>
      Date: 15 Oct 93 21:53:00 GMT

      Nemacs から Mule への移行を容易にするために メイリングリスト
      の方々の協力のもと、 以下のような単純なパッケージを作りまし
      た。

      以下の二つの .el ファイルを、ロードパスのどこかに入れておけ
      ば、.emacs に Nemacs 用のコードを入れている方は、.emacs を
      以下のように修正することで、Nemacs 用の設定と同様のことを
      Mule で もできます。お試しください。 

          (load-library "nemacs-pre")
          ... もともとの .emacs のコード
          (load-library "nemacs-post")

      もちろんこう修正しても Nemacs の使用には支障ありません。

      まだまだ完全なものではありませんので、
      「私は Nemasc 用のこういう設定をしているが、Mule ではどうす
      ればよいのか?」 という御質問をお待ちしております。

   なお、nemacs-pre.el および nemacs-post.el は、 
   ftp://etlport.etl.go.jp/pub/mule/contrib/lisp から FTP で入手できます。 

JP-26: Supercite を日本語対応で使うには?
----------------------------------------

   英語しか使わないのであれば、 質問 E-2 で行なった設定だけで十分です
   が 日本語を使う場合、個人の設定(sc-cite-regexp の設定) を変える必要
   があります。

   Yoichi HIROSE <yoichi@esasd.ksp.fujixerox.co.jp> さんは次のように書いて
   います。 

      Nemacs で日本語を使っていた場合、日本語にマッチするために使
      っていたカテゴリが Mule で変ってしまっているため、動かなく
      (動く場合もある?) なってしまいます。 つまり、前からカテゴリを
      使って正規表現を指定していなかった場合は 関係ありません。

      下の正規表現を見ていただけるとわかると思いますが、 Nemacs
      ではやたらと長くなっていますが、 Mule ではかなり短いのです。
      詳しくは info の char-category のところを見てもらうとわかると思
      います。

      というわけで、Mule で sc を日本語に対応させて使いたければ
      sc-cite-regexp に以下のような変更が必要です。 

        sc-cite-regexp の設定例:
        (if (boundp 'MULE)
            (setq sc-cite-regexp "\\s *\\([a-zA-Z0-9_]\\|\\cj\\)*>+\\s *")
          (setq sc-cite-regexp "\\s *\\([a-zA-Z0-9_]\\|\\cc\\|\\cC\\|\\ch\\|\\cH\\|\\ck\\|\\cK\\|\\ca\\|\\cg\\|\\cr\\|\\cu\\)*>+\\s *"))

JP-27: dired がちゃんと動かないんですけど?
------------------------------------------

   dired は ls コマンドの結果をスキャンしていますが、その結果が日本語だ
   と (locale が日本語に設定されている場合など)動作がおかしくなります。
   Mule 起動前に環境変数 LC_TIME (もしくは LC_MESSAGES, LANG) を C
   に設定しておくか、 ${HOME}/.emacs で (setenv "LC_TIME"
   "C") を実行して下さい。

JP-28: $MULE/doc/demo ファイルの、 日本語のデモの半角の「こんにちは」
---------------------------------------------------------------------
の後の文字列がチャンと読めないのですが、 これはどうしてなのでしょう。
---------------------------------------------------------------------

   Azuma OKAMOTO <lfo@sayori.dais.is.tohoku.ac.jp> さんは以下のように書
   いています。 

      その部分は、ESC $ ( D とかいうのが入っているので、 表示す
      るには JISX0212 のフォントが必要なはずです。

      特に追加していなければ、正しく表示されないのが正常な動作で
      しょう。:-)

JP-29: JIS X0212 (JIS 補助漢字) のフォントでフリーのものはありますか?
---------------------------------------------------------------------

   フリーの JIS X0212 (JIS 補助漢字) のフォントは、 
   ftp://etlport.etl.go.jp/pub/mule/fonts/Japanese.tar.gz の中に含まれています。

   また、これとは別のものが fj.sources に投稿されています。 

     From: yasuoka@kudpc.kyoto-u.ac.jp (Koichi Yasuoka)
     Newsgroups: fj.sources
     Subject: 16x16 JIS Supplementary Kanji Font Version 0.2 (1/6)
     Date: 14 Sep 1994 16:00:11 +0900
     Organization: Data Processing Center, Kyoto University, Kyoto, Japan.
     Message-ID: <35671r$91p@kudpc.kudpc.kyoto-u.ac.jp>
     References: <315t54$et5@kudpc.kudpc.kyoto-u.ac.jp>
     Reply-To: yasuoka@kudpc.kudpc.kyoto-u.ac.jp (Koichi Yasuoka)

   その後さらにパッチが出ていますので、それをあてたほうがいいでしょ
   う。 なお、最新版は ftp://ftp.kuis.kyoto-u.ac.jp/misc/fonts/jisksp-fonts から入
   手できます。

Latin 文字の扱いについて
========================

LT-1: ISO 8859 文字を入力するには?
----------------------------------

   Mule では Latin-1 (ISO8859-1)から Latin-5 (ISO8859-9) までの文字セット
   もサポートしています。通常の ASCII キーボードからこれらの文字を入
   力するにはやはり quail-system を使います。

   ISO 8859 で定められている文字を入力するために、下に挙げた 5 つのフ
   ァイルが用意されています。 
    o quail/latin.el : ラテンアルファベットを使う諸言語

      大きく分けて、タイプの遅い人用と速い人用の２種類のパッケー
      ジがあります。

      前者は、大抵の記号付き文字は、2文字の合成で入力するようにな
      っています。 例えば accute accent 付きの e は e の後に ' (single
      quote) を打つことで入力できます。 以下がこの種のパッケージの
      リストです。 

          言語                パッケージ名
          ----------------------------------
          デンマーク語        danish
          エスペラント        esperanto
          フィンランド語      finnish
          フランス語          french
          ドイツ語            german
          アイスランド語      icelandic
          イタリア語          italian
          ノルウェー語        norwegian
          スペイン語          spanish
          スウェーデン語      swedish
          トルコ語            turkish
          英語 (≠米語)       british
          ISO 8859-1          latin-1
          ISO 8859-2          latin-2
          ISO 8859-3          latin-3
          ISO 8859-4          latin-4
          ISO 8859-9          latin-5

      上記の入力方法はかったるい、という人のために、 「打鍵数は少
      ないほど良い」 という哲学に基づいて作られたのが以下のパッケ
      ージです。 各言語に固有の文字のほとんどはどこかのキーに割り
      当てられていますので、 一度配列を覚えてしまえば高速なタイピ
      ングが可能です。 

          言語                パッケージ名
          ----------------------------------
          デンマーク語        dnsh
          フィンランド語      fnnsh
          フランス語          frnch, azerty
          ドイツ語            grmn
          アイスランド語      iclndc
          イタリア語          itln
          ノルウェー語        nrwgn
          スペイン語          spnsh
          スウェーデン語      swdsh

    o quail/cyrillic.el : キリル文字を使う諸言語 

          言語                パッケージ名    注釈
          -------------------------------------------------------
          ロシア語            jcuken          標準ロシア語配列
                              jis-russian     jcuken に同じ
                                              ただし JIS エンコーディング
          マケドニア語        macedonian      JUS.I.K1.004
          セルビア語          serbian         JUS.I.K1.005
          ベラルーシ語        byelorussian    JUS.I.K1 もどき
          ウクライナ語        ukrainian       JUS.I.K1 もどき
          ISO 8859-5          yawerty         ラテン文字への転写

    o quail/greek.el : ギリシア文字用 

          言語                パッケージ名    注釈
          -------------------------------------------------------
          ギリシア語          greek
                              jis-greek       greek に同じ
                                              ただし JIS エンコーディング

    o quail/hebrew.el : ヘブライ文字用 

          言語                パッケージ名
          --------------------------------
          ヘブライ語          hebrew

   目的のパッケージが含まれているファイルをロードした後、 C-] を打つ
   ことで quail-minor-mode と通常のモードの間を行ったり来たりできるよ
   うになります。 特定の言語用パッケージを選択するには、
   quail-minor-mode の中で M-s と打つか、 (quail-use-package "パッケージ
   名")を評価してください。また M-z で簡単なヘルプ画面が出ます。

   例:
    1. ドイツ語の初心者がドイツ語を入力しなくてはいけないとき 

        (load "quail/latin")
        (quail-use-package "german")

      上の2行を .emacs に入れてください。 
    2. フランス語用の azerty 配列が使いたいとき 

        (load "quail/ltn")
        (quail-use-package "azerty")

      を .emacs に入れてください。 

LT-2: Latin-1 文字をキャラクタ端末に表示するには?
-------------------------------------------------

   TAKAHASHI Naoto <ntakahas@etl.go.jp> さんは、次のように書いていま
   す。 

      キャラクタ端末上で使用している Mule に Latin-1 文字を表示させ
      るには display-coding-system に *ctext* をセットします。 これは、
      .emacs の中に 

        (setq display-coding-system *ctext*)

      と書いておくことで実現できます。あるいは Mule の起動後に M-x
      set-display-coding-system とタイプし、 
      Display-coding-system: というプロンプトに対して 
      *ctext* と答えるのでも構いません。

      また、X Window System を使用している場合でも、 Mule を -nw オ
      プション付きで起動した場合は同様の手続きが必要です。

      いずれの場合でも、使用しているキャラクタ端末、 あるいは端末
      エミュレータが Latin-1 キャラクタに対応しているものでなければ
      なりません。

