-*- Indented-Text -*-

这一汉语版Mule.FAQ基本上是前桥(Maebashi)的日文版的翻译.我们尽可能地
忠于原文,但根Mule中汉语处理的特点作了一些修改.内容已尽可能地进行了确
认,若您发现错误,衷心地希望您能通知我们.

刘云辉(liu@etl.go.jp),孙醒寒(t91241ss@sfc.keio.ac.jp)
1993年1月22日
--------------------------------------------------------------------

1993年11月9日版
--------------------------------------------------------------
这份FAQ的目的在于,总结,归纳了有关于Mule的问题和解答,以便参照.

内容已尽可能地进行了确认,若您发现错误,衷心地希望您能通知我们.
也非常欢迎有新的追加项目.

在问题的A-14中,记载有怎样得到最新版FAQ的方法.

在制作这份FAQ时,得到众多人士的帮助.在此对予此援助的诸位表示衷心地感谢.
--
Takahiro Maebashi <maebashi@mcs.meitetsu.co.jp>
-------------------------------------------------------------------------
在Mule中读这份FAQ时,可输入"M-2 C-x $"只查阅问题.想看解答时输入"C-x $"
即可恢复原状.

若想根据问题号码X-XX进行检索时,请输入"M-C-s ^X-XX:".如找不到,请继续试着
输入"C-r".找到问题后,输入ESC可脱离检索状态.
-------------------------------------------------------------------------
一般的信息

A-1: Mule是什么?

  Mule是强化GNU Emacs(Ver.18),使之能够对应复数语言的计算机编集环境.

  Mule有以下特点:
    * Mule不仅能处理ASCII文字(7Bit)和ISO Latin-1的文字(8Bit),还能够处
      理日文, 中文,韩文等的文字符号(16Bit).此外更进一步地,Mule的文件缓
      冲器可把这些语言的 文字混同在一个缓冲器中进行储存.
    * 文件输入出,荧屏显示,键盘输入,过程(?:)间通讯之间,各自可设定独立的
      文字符号体系.
    * 非多国语言状态时,操作方法和原来的GNU Emacs基本一样.

A-2: 可从何处得到Mule?

  可从下列地方 anonymous ftp 得到Mule:

     etlport.etl.go.jp[192.31.197.99]:/pub/mule
     sh.wide.ad.jp[133.4.11.11]:/JAPAN/mule
     ftp.mei.co.jp[132.182.49.2]:/public/free/gnu/emacs/Mule
     ftp.funet.fi[128.214.6.100]:/pub/gnu/emacs/mule

  从海外进行操作时,请使用sh.wide.ad.jp.

  在以上文件目录内,有Mule发布形式的一整套tar文件, 和补充GNU Emacs
  18.59的部分文件两种. 已持有GNU Emacs的人, 请尽量使用其部分补充文件.
  除此外文件目录中还有各种font,ELISP等辞书库.

A-3: Mule的最新版的名称?

  Mule的现在版是1.0(桐壶) patchlevel 01, 以GNU Emacs 18.59为基础.

A-4: 使用Mule有什么利点? 或者说,与其使用Mule,不如使用Nemacs的情况有吗?
 如果有的话,在怎样的情况下?

  使用Mule有如下利点:
    * 不仅可处理英文,也可处理日文,中文,韩文,其它多种语言.而且可以混合
      使用这些语言.
    * 在缓冲器中的领域里,可以指定有关显示的属性,与Nemacs不同,在一般的
      末端显示(如果有末端显示的话)也可以使用显示属性的功能.
    ?? * 仅使用英语和日语时,与其使用附属在Nemacs上的"TAMAGO",不如使用
      变换效率更好的日语输入系统"TAKANA版TAMAGO".
    * Nemacs 是以GNU Emacs 18.55 为基础,Mule 是以Emacs 18.59为基础.
    * 附属有强大的 regular expression compiler.

  反而言之,Mule是比Nemacs更复杂,更巨大的程序,在计算机资源较贫乏的环境
  中,若只使用日文的话,也可仅使用Nemacs.

  另外,Mule和Nemacs之间没有互换性,以前为Nemacs用研制出的应用软件
  (application) 在Mule上有可能不顺利运行.

A-5: Nemacs 会被取消吗?

  回答当然是不.但尚不能确定.Nemacs 的最终版即是3.3.2.

A-6: 将来,Mule会被GNU Emacs 合并吗?

  GNU Emacs 的作者R.M.Stallman强调提供多种语言的场合,主要使用Unicode.
  如果在Mule中也可以使用Unicode的话,Mule和Nemacs即可合并.但目前Mule中
  还不能使用Unicode.

A-7: 有计画将Mule的特点引进Epoch(or Nepoch)中吗?

  目前尚无计画将Mule的特点引进入Epoch.

A-8: 有计画将Mule的特点引进Demacs中吗?

  将来予备制作以GNU Emacs 19为基础的Mule, 合并GNU Emacs 和Mule, 目前还
  没有眉目.

A-10: Mule有mailing list吗?

  现在,有以下两个mailing list供进行以英语的讨论.

     mule@etl.go.jp   通常使用英语
     mule-vn@etl.go.jp  关于使用越南语的mailing list,通常使用英语

  另外,有以下供进行各platform的试验.

     mule-jp@etl.go.jp  通常使用日语

  请使用新闻组(fj.editor.mule)进行以日语的一般讨论.

A-11: 在何处进行Mule的故障报告?

  请在新闻组(fj.editor.mule)以日文进行有关Mule的故障报告或修正提案等.
  不能阅读此新闻组的人请以英文送到mule@etl.go.jp.

A-12: Mule有中文(英文/日文/韩文)的操作说明吗?

  首先有英文的计算机网上操作说明.通常,系统管理员会准备以用man命令语可
  进行参照的操作说明,如果没有的话,请将 $MULE/etc/mule.1拷贝到操作说明
  文件目录之后再使用.

A-13: Mule名字的由来?

  以下从UNIX用语 由来/读法辞典引用:

    [MULE](UNIX命令语)
    "MULtiLingual Enhancement to GNU Emacs"的略语.  MULE是骡子的意思,
    也有顽固的人,执拗的家伙的意思,既对应GNU名称的动物系列,又对应了像
    gawk,赋于相反意思的名称系列.(参照: Demacs,Emacs,gawk,Nemacs)

    这个名字是由 Hironobu Suziki<hironobu@sra.co.jp>提出的.

A-14: 可从何处得到这份资料(Mule FAQ list)的最新版?

  Mule FAQ有英文版,日文版,韩文版,中文版?:).作为文件进行发布的时候,分别
  为文件名FAQ-mule(英文版),FAQ-mule.jp(日文版),FAQ-mule.kr(韩文版),
  FAQ-mule.cn(中文版).其中,日文版是原版,其它各版的更新可能稍有延迟.

  通过以下方法可得到 Mule FAQ.

    * 从计算机网络新闻组里.在新闻组fj.editor.mule中会不定期地输入Mule
      FAQ.

    * 通过anonymous FTP. 从以下地方通过 anonymous FTP 得到:

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

    * 从Mule发布用的文件中. Mule新发表时,最新的FAQ以etc/FAQ-Mule 或
      etc/FAQ-Mule.jp的名称,被包括在Mule的发布文件中.

构筑及安装

B-1: 使Mule的patch对准Emacs,我试着用Emacs或Nemacs 字编译新增加的
 lisp文件,但并不成功,请问问题在哪里?

  Mule的lisp文件中,含有许多只有在Mule上才能进行byte compile 的部分.因
  此构筑Mule的时候,途中会自动字编译新增加的(或是patch对准了的)lisp文件.
  没有必要像把patch对准Emacs时那样手动操作字编译工作.

B-2: 怎样构筑在X window上可运行的Mule?

  只要在 $MULE/src/config.h 中定义宏指令: HAVE_X_WINDOWS .  另外,定义
  HAVE_X_SELECTION后,可以操作使用了 X 的 SELECTION 的 cut&paste.

  但是,因为Mule是使用静态链接进行构筑的,必须要有静态链接用的libX11.a.
  没有静态链接用字库的场合,构筑 X 时追加

    #define  ForceNormalLib YES

  有必要制作静态链接用的libX11.a.

B-3: 怎样构筑在Sun的控制台上可运行的Mule?

  在 $MULE/src/config.h中, 定义 HAVE_SUN_CONSOLE.

  此时,因为使用pixrect字库,有必要先装载好SunView_Programmers. Solaris
  2.0 之后的OS因没有内藏pixrect字库,所以不能使用这项功能. 即使是SunOS
  4.x,购买入Sun的计算机时,由于SunOS中予先没有装载好SunView_Programmers
  的缘故,所以事先必须要装载好SunView_Programmers.

B-4: "Pure Lisp storage exhausted"的文字显示后compile完全停止了,为什么?

  Ken'ichi Handa <handa@etl.go.jp>如下写到:

    这是因为 puresize.h中的PURESIZE的数值太小的缘故.不同的系统有必要增
    大 PURESIZE的数值. 另外,使用site-init.el 读取多种语言环境的设定文
    件(e.g.  japanese.el,chinese.el)的时候,也有必要增大PURESIZE的数值.
    有必要采取如下方法: 先把这个数值乘倍,如果compilation顺利的话,参考
    temacs 读取 mule-init.el 之后的Pure Bytes Used XXXXX数值,再次设定
    比其稍大些的数值,进行make.

  值得注意的是,在 src/config.h中虽也有PURESIZE的定义,但因为在Mule上的
  src/puresize.h中再度定义了PURESIZE的数值,所以修改config.h中的
  PURESIZE值没有任何意义.请注意轻易习惯了Emacs很容易「陷入」进去:).

B-5: "Undefined Symbol: _des_crypt"的文字显示后,compile完全停止了,为什么?

  Masato Minda <minmin@astec.co.jp>如下写到:

    这故障是在SunOS的 JLE1.1上进行静态链接时发生的吧.

    解决办法:
      对准JLE的patch (忘了 patch ID)
      使用JLE1.1.1 rev B以后的部分.
      不使用JLE :-)

    虽然还没有尝试过,作个空白的 _des_crypt函数什么的, 一起进行link 的话,不
    知会不会成功呢.

B-6: Mule的 compilation没有异常,但不能准确地输入中文.

  安装Mule的时候,在site-init.el中先指定希望使用语言的其语言specific文
  件后, 再进行装载. site-init.el 作为初始值,并不存在.

  希望使用中文时,在lisp/site-init.el中写入(load "chinese")一行后,再试
  着构筑Mule.

关于使用多种语言

C-1: Mule上有哪几种可以使用的中文文字系统?

  Mule上有两种可使用的中文文字体系,GB 和BIG5. GB是在中国大陆等地通用的
  简化汉字,BIG5是在香港及台湾等地使用的繁体字.在Mule上,可以制作含有这
  两种汉字体系的文件,具体请参照C-3.

  [注意] BIG5大致对应定义为中文汉字体系的CNS(Chinese National
         Standard)11643的第一和第二板块.

C-2: Mule上可处理哪几种中文汉字font?

  如果是在X window系统上操作Mule的话, 需要中文 fonts 来显示中文. 下列
  中文 fonts 分布在X11R5文件目录下的 cxterm文件内,

     X.V11R5/contrib/client/cxterm/fonts 内有:
        cclib16fs.bdf          16x16 Fang Song style, GB encoding
        cclib16st.bdf          16x16 Song style, GB encoding
        cclib24st.bdf          24x24 Song style, GB encoding
        hku-ch16.bdf           16x16 Fang Song style, BIG5 encoding

    另两项 fonts适合BIG5:
        taipei15               16x15 Fang Song style, BIG5 encoding
        taipei24               24x24 Song style, BIG5 encoding

    如果使用cWnn输入中文的话,另外需要SiSheng fonts(cWnn,参照C-4a):
        etl14-sisheng.bdf      7x14 SiSheng font for cWnn
        etl16-sisheng.bdf      8x16 SiSheng font for cWnn
        etl24-sisheng.bdf      12x24 SiSheng font for cWnn

  如果这些fonts还没有装载在您的计算机上,请向您的 local X window管理负
  责人员要求帮助. fonts 可从下列地方 anonymous FTP 得到:

        etlport.etl.go.jp[192.31.197.99]: /pub/mule/fonts
        sh.wide.ad.jp[133.4.11.11]: /JAPAN/mule/mule-1.0/fonts
        ftp.mei.co.jp[132.182.49.2]: /public/free/gnu/emacs/Mule/fonts
        ftp.funet.fi[128.214.6.100]: /pub/gnu/emacs/mule/mule-1.0/fonts

C-3: 关于Mule上的中文汉字编码系统.

  当您读写含有中文汉字的文件时,必须注明使用何种书式. 在Mule的世界里,这
  书式即是文字编码系统(coding system). 文字编码系统可以在与根目录并列
  的.emacs文件中进行设定. 以下详述三种不同的情况:

    * 编集含有 GB和 ASCII的文件: 有几种方法可以区别GB文字和 ASCII文字.
      最常用的方法是把第八个bit 看作一个信号.如果第八个bit是"1"的话,那
      么其文字是GB, 若不然,则是ASCII. 这种区别方法也适用于cxterm. 如果
      仅使用GB和ASCII的话,这种方法相当方便. 使用这种文字编码系统时, 在
      .emacs中加入下列命令语:

            (set-default-file-coding-system *euc-china*)

    * 编集含有 BIG5和ASCII的文件:
      准确地说,BIG5有多种变形文字font. 最普遍使用的是 BIG5-ETen和
      BIG5-HKU. NEWLINE在 UNIX系统和 DOS系统中并不相同, 因此必须先确认
      Mule是在 UNIX还是在DOS上运行,再准确地叙述与其对应的文字编码系统.
      在.emacs中,加入以下任何一行命令语:

      BIG5-HKU under UNIX
           (set-default-file-coding-system *big5-hku*)

      BIG5-ETen under UNIX
           (set-default-file-coding-system *big5-eten*)

      BIG5-HKU under DOS
           (set-default-file-coding-system *big5-hku-dos*)

      BIG5-ETen under DOS
           (set-default-file-coding-system *big5-eten-dos*)

      您可以自由选择HKU或ETen, default是 *BIG5-HKU*.

    * 编集含由GB, BIG5和 ASCII的文件:

      首先请注意以下事实: Mule是目前, 唯一的一个编集环境可以同时地编集
      GB和 BIG5文字. 例如, GB和 BIG5不可能同时显示在 cxterm中.

      如果您希望在一个文件中同时包含GB和 BIG5, 我们推荐您在.emacs中加
      入以下一行命令语:

              (set-default-file-coding-system *junet*)

      有此文字编码系统,不仅可同时处理 GB和BIG5文字,还可在同一文件中处
      理日文,韩文,欧洲文字等. 文字编码系统*junet*中插入了一种特殊文字--
      "escape sequence", 介于两种不同系统的文字之间. 第八个bit总保持在
      "0".

      也可以用以下命令语代替*junet*:

              (set-default-file-coding-system *euc-china*)

      此时,GB文字的第八个bit被设定在"1", 其它各种文字的第八个bit则被设
      定在"0", 互相之间靠 escape sequences 进行区分.

      也可以使用下列命令语:

              (set-default-file-coding-system *ctext*)

      请注意只须采用这三种文字编码系统中的任意一种. 它们互相之间都是独
      立的.

C-4: 怎样输入中文?

  C-4a: cWnn

    最主要的中文输入法是通过Egg系统, 联系上cWnn的cserver. cserver是一
    个计算机网络上的拼音和汉字的变换服务台. 它接收拼音, 显示汉字. 使用
    cserver, 必须先安装cWnn(4.108版或更迟的版本).cWnn是Wnn的一种, 可以
    从取得Mule得地方得到. 使用cWnn必须要先有 SiSheng fonts(参照 C-2).

    请注意Egg的现在版只提供GB文字. 如果希望输入BIG5, 或因某种原因不能
    使用cWnn, 请参照以下"C-4b:quail".

    使用cserver时,必须详细注明运行cserver的计算机名称,在.emacs中加入下
    列命令语:

             (require 'chinese)
             (set-cserver-host-name "hostname")

    在"hostname"处必须填上真正操作运行cserver的计算机名称.

    打"C-\"键确认mode-line处改变后输入中文. 可以一次输入几个单词,然后
    敲空白键进行变换. 如果显示的汉字不是所希望的, 请再敲空白键. 每敲一
    次空白键, cserver会帮助寻找不同的单词. 以下介绍几个变换时的重要键:

             space     寻找下一个单词
             RET       确认
             C-f       移向下一个单词
             C-b       移向上一个单词
             C-i       缩短单词
             C-o       扩展单词
             C-g       取消

    第一次使用cserver时, 会被问及是否希望制作字典,这时对所有问题都回答
    "YES".

    再次打入"C-\"键, 可退出中文输入状态. 详细参照 doc/EGG .

  C-4b: quail

    Mule为希望输入BIG5,或因某种原因不能使用cserver的人, 提供另一种中文
    输入法--"quail". quail 包括在Mule的标准发布资料中. 如果熟悉cxterm
    的话, 因 quail亦能提供cxterm所提供的所有输入法, 所以quail对您来说
    会变得非常简单.

    若在Mule上使用]cxterm中的XXX.Tit输入法, 在.emacs中加入下列命令语:
             (load "quail/XXX")
             (quail-use-package "XXX")
    XXX为以下任何一项:
             py, tonepy, sw, punct, qj, ccdospy, ctcps3, etzy, py-b5,
             zozy, qj-b5, punct-b5

    [注意] 在以下三个条件都被满足的情况下,不再需要命令语(load "quail/XXX").

             1) 构筑Mule时, 没有定义macro symbol EGG.
             2) 构筑Mule时, 事先有读取 chinese.el.
             3) "quail/XXX"中的XXX是py,qj 或punct任何一项.

    加入(load "quail/XXX")会使Mule的启动速度稍微慢一些,除此外没有其它
    缺点. 我们建议您先在.emacs中加入这行命令语, 然后再向您的系统管理负
    责人员征求意见.

    在cxterm的介绍资料中,对每一种输入法都进行了如下简介:
    (引用 cxterm/dict/tit/README)

    名称       汉字系统  简介
    ---------   ------  ----------------------------------------
    PY          GB      标准拼音输入法
    TONEPY      GB      标准拼音输入法(五声)
    SW          GB      CCDOS style ShouWei 输入法(第一 & 最后部份)

    Punct       GB      句读法输入表
    QJ          GB      Quan Jiao -- GB汉字系统中的double-byte ASCII
    CCDOSPY     GB      CCDOS style 简略拼音输入法
    CTCPS3      GB      广东话音标 CPS3 概要
                        (Fung-Fung Lee <lee@milo.stanford.edu>执笔, 详见
                        june.cs.washington.edu:~ftp/pub/yeung/cantonese.shar)

    ETZY        BIG5    ETen ZhuYin (音标) ETen 键盘规划输入
                (HKU)   (Susie Chu <chu@ames.arc.nasa.gov>执笔)
    PY-b5       BIG5    HKU BIG5 发声标准拼音输入法
                (HKU)   (Stephen G Simpson <simpson@math.psu.edu>执笔)
    ZOZY        BIG5    ETen ZhuYin (音标) 第二键盘规划输入
                (HKU)   如在 ZeroOne, DACHEN system, etc.
    QJ-b5       BIG5    Quan Jiao -- BIG5汉字系统中的 double-byte ASCII
    Punct-b5    BIG5    句读法输入表

    -------------------

    quail环境中,打入"C-]"键可以选择ASCII输入法或中文输入法. 在
    quail-mode 中打入"M-z"可显示help文件.

  C-4c: PIG-mode

    PIG-mode是个相当方便的系统. 可同时变换几个字词, 并允许输入省略了的
    拼音等. 可从下列地方anonymous FTP得到.

          etlport.etl.go.jp[192.31.197.99]: /pub/mule/contrib
          sh.wide.ad.jp[133.4.11.11]: /JAPAN/mule/mule-1.0/contrib
          ftp.mei.co.jp[132.182.49.2]: /public/free/gnu/emacs/Mule/contrib
          ftp.funet.fi[128.214.6.100]: /pub/gnu/emacs/mule/mule-1.0/contrib

    简介(readme)文件也包括在内. 据 burt@dfki.uni-kl.de 声明, 须补充以
    下功能的定义:

       (defun pig-parse-cz (string)
        (let ((indx 0) list)
         (while (string-match "\\([^0-5]+[0-5]\\)-*" string indx)
          (setq list (cons (substring string (match-beginning 1) (match-end 1))
                            list))
          (setq indx (match-end 0)))
         (nreverse list)))

  C-4d: 其它输入法

    如果希望使用cxterm本身的输入法, 请依照以下步骤.

    1) 在.emacs中加入下列两行命令语:

       (set-default-display-coding-system *euc-china*)
       (set-default-keyboard-coding-system *euc-china*)

    2) 在cxterm上执行下面命令:

       % mule -nw

    现在, 您可以使用cxterm本身的输入法了. 请注意除了GB, 不能用此方法输
    入BIG5.

C-5: 怎样取得中文的 hardcopy?

  有一个名"m2ps"的程序可将Mule的内部符号转换成PostScript形式. 例, 印刷
  文件名为 chinese.txt的文件时, 依照以下步骤:

    1) 输入"C-x C-f chinese.txt RET", 读入文件.
       (RET 即回车键)

    2) 输入"C-u C-x C-w tmp RET *internal* RET",以Mule的内部表示形式保
       存其文件.

    3) 回到 shell环境, 打入以下命令:

         % m2ps < tmp |lpr

  此时, 有必要以 -P option明确规定印刷机名称. 例如, 印刷机名称为"lw",
  则如下:

         % m2ps < tmp |lpr -Plw

  在下一期新发行的Mule中, 会包括 m2ps的最新版, 可以直接转换 GB或BIG5
  汉字字符到 PostScript形式.

C-6: 怎样在Mule上阅读新闻组?

  在Mule上先读取 chinese.el文件后, 再使用 GNUS和 gnusutil.el就可以阅读
  在 alt.chinese.text及 alt.chinese.text.big5新闻组里的文章稿件. 在
  alt.chinese.text 中的 ~{与 ~},相当于Mule中的"ESC$A"( 指向中文GO开始
  的标志)和"ESC(B"(指向ASCII GO开始的标志), 称作 HZ encoding. 注意在起
  动 GNUS之前先读取 gnusutil.el.  gnusutil.el文件在Mule的FTP文件组的
  contrib/lisp.tar.gz中.(不包括在Mule的发布文件中)

  gnusutil.el 应该被保存在一个详细写有变数"load-path"的文件目录下, 若
  此文件目录中也有 gnus.el的话更好.

  然后在.emacs中加入以下两行命令语, 起动Mule.

     (set gnus-Group-mode-hook 'gnusutil-initialize)
     (autoload 'gnusutil-initialize "gnusutil")

  这样, 您就可以阅读alt.chinese.text和 alt.chinese.text.big5中的汉字了.

  一旦装载好 gnusutil.el, 向两个新闻组投稿时不再需要其它特殊手续. 可以
  写汉字, 可以像ASCII文字一样地进行投稿. gunsutil会自动把汉字稿件转换
  至适当的书式.  alt.chinese.text新闻组使用GB输入法,
  alt.chinese.text.big5新闻组使用BIG5输入法.

  [注意]当予备将已储存好的文件向新闻组投稿时, 必须注意文件应以适当的文
  字编码系统进行保存. 请使用下列保存/呼出命令:

     + 保存投向alt.chinese.text的稿件
       "C-u C-x C-w filename RET *hz* RET"

     + 呼出投向alt.chinese.text的稿件
       "C-u C-x C-f filename RET *hz* RET"

     + 保存投向alt.chinese.text.big5的稿件
       "C-u C-x C-w filename RET *big5-eten* RET"

     + 呼出投向alt.chinese.text.big5的稿件
       "C-u C-x C-f filename RET *big5-eten* RET"

C-7: 怎样寄中文的电子邮件?

  我们尚不明确哪一个才是寄中文电子邮件的标准书式. 请参照下列各项,到底哪一项更
  为广泛使用 :-)?

    1) 使用*euc-china*或 *big5-??*者确信第八个bits在sendmail时不会被落下.
    2) 使用*junet*或 *ctext*.
    3) 使用MIME.
    4) 使用HZ.
    5) 使用其它书式.

C-8: 怎样输入日文?

  日文有以下几种输入系统:

    * TAMAGO(EGG), TAKANA version
    * sj3-egg
    * Canna

  以上各输入系统都是使用计算机网上日文假名汉字变换服务台, 提供罗马字汉
  字变换方式的日文输入法. 详细参照各输入系统的操作说明书. 这三项日文输
  入系统在构筑 Mule时候,必须事先进行设定.

  也可以使用日文输入法" SKK". 使用"SKK"在构筑Mule的时候,不须事先进行任
  何特别的设定. "SKK"输入法可在Mule中完全独立地进行使用, 也可借助辞典
  服务台进行使用.

C-9: "EGG"是什么?

  "EGG"是利用Wnn的计算机网络上的变换 jsever/cserver, 提供日文或中文输
  入环境的系统名称. "EGG"日文译作" TAMAGO".

  "EGG"大致分类为, 文字输入变换系(罗马字,日文假名变换部分), 日文假名汉
  字/拼音 -->Hanzi变换部分和日文编集功能三部分. 文字输入编换系不仅可使
  用日文平假名,片假名,拼音,还可以输入韩文和其它语言.

C-10: 怎样输入ISO 8859文字?

  Mule上提供从Latin-1(ISO8859-1)至Latin-1(ISO8859-9)的文字组合系列. 一
  般从 ASCII键盘输入这些文字时仍需要启动 quail-system.

  以下列举的五个文件可供输入ISO 8859文字时使用:

    * quail/latin.el: 使用拉丁字母的诸多语言, 争对初学者.
    * quail/ltn.el: 使用拉丁字母的诸多语言, 争对熟练者.
    * quail/cyrillic.el: 使用斯拉夫文字的诸多语言.
    * quail/greek.el: 希腊文字用.
    * quail/hebrew.el: 希伯来文字用.

C-11: 世界上有从右写到左的语言, MuLe可以对应这种语言吗?

  目前MuLe内藏希伯来语, 可使用 quail/hebrew.el输入方法. 另外请参照
  highlight-reverse-direction, r2l-double-cursor等的资料. MuLe将来准备
  增加阿拉伯语, 波斯语等.

C-12: 有哪些和MuLe有关联的文字编码系统? 具体在什么时候有关联呢?

  MuLe提供以下所示文字编码系统:

    * 在Mule的缓冲器中使用的内部符号
    * MS 汉字符号/SHIFT JIS(仅限日文)
    * 以ISO2022为基础的符号(包括JIS[JUNET],EUC,CTEXT)
    * BIG5(仅限中文)

  在Mule上,可互相独立地指定文件输入出,键盘输入, 荧屏显示, process间通
  讯,各自的字符系统.

C-13: "Buffer list"中表示的缓冲器的大小为什么和保存的文件大小相差极大?

  在Mule中,作为文字的内部表示, 每一文字组都设有一 leading character(读
  入文字), 除ASCII以外所有文字都叫作内部文字, 在文字开始处加有读入文字.
  因此,Latin-1等 8 bit文字在内部则作 2 byte, 汉字等 16 bit文字在内部则
  作 3 byte. 如果是以内部表示的状态进行保存的话, 缓冲器的大小和文件的
  大小应当一致, 但是若以其它的 encoding法进行保存的话则两处的大小就有
  所出入.

C-14: set-keyboard-coding-system 不能设定*autoconv*, *big5-hku*,
 *big5-eten*, *internal*, 为什么?

  这是Mule的特殊之处.

C-15: 在EUC上, 希望同时显示日本, 中国,韩国,EC等国语言时怎么办?

  各国语言的EUC是使用彼此独立, 但完全一样的文字系统, 所以不可能混合同
  时显示. 若必须同时在Mule上显示多国语言的话,请使用*junet*或*ctext*文
  字系统.

C-16: 有Mule上进行使用所有文字系统的介绍资料吗?

  介绍资料为ISO 2022. JIS的话是JIS X0202. Mule的texinfo操作说明和
  $MULE/doc/ISO2022中也有简单说明.

C-17: incremental search时怎样输入汉字?

  isearch(增加检索)时, 打入"C-k"即可输入文字排列. 因为这种mode 即使在
  mini buffer之中也可以输入文字排列, 所以使用"C-\"键可输入中文/日文.
  输入文字排列后, 须打入回车键. Mule可再次实行isearch. (注: 此项近期内
  有更改)

C-18: 从何处可以得到Mule上使用的各种语言font?

  可以从下地方anonymous FTP得到:

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

  在以上地方, 包含有下列font 文件:

    BIG5.tar.gz
     -- Big5 encoding 16x15dots font for chinese
    Chinese.tar.gz
     -- 16x16 and 24x24 GB fonts for Chinese
    CYRILLIC.tar.gz
     -- KOI encoding fonts for Cyrillic characters
    ETL.tar.gz
     -- 14dots, 6dots, and 24dots fonts for ISO8859-1,2,3,4,5,7,8,9
        12x24dots fonts for SiSheng
        12x29dots fonts for Thai
        12x24dots fonts for Vietnamese
    Japanese.tar.gz
     -- 14x14, 16x16, 24x24 JIS fonts for Japanese
    Korean.tar.gz
     -- 16x16 and 24x24 Korean fonts

C-19: quail-help 状态时显示的文字和实际输入的文字并不一样, 这是故障吗?

  请确认是否正确地设定了变数 *quail-keyboard-translate-table*. 此变数
  若仍是初始值状态的话, 则计算机假定使用着和 vt100同样排列的键盘, 并进
  行其排列显示的运作. 若是使用JIS键盘的话, 必须在.emacs中加入以下命令
  语:

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

  详细请参照 doc/keyboard-translation.text.

C-20: 怎样印刷在Mule上作成的文件?

  使用Mule的 etc文件组下的程序m2ps, 可以将含有多国语言的文件转换成
  PostScript 印刷的形式. 但是值得注意的是, m2ps只有效于经过Mule文字系
  统*internal* 进行 encode处理后的文件.

  m2ps是把 X 的BDF文件看作 font进行使用, 将文字部分展开成 bitmap后传送
  入印刷机. 因此印刷机中即使没有 font也可以印刷多国语言的文件. 详细请
  参照m2ps的网上操作说明(m2ps.1).

与Nemacs/Emacs的互换性

D-1: Mule与Nemacs/Emacs可以高水平的互换吗?

  MuLe是在Nemacs/Emacs的基础上编制的.从Emacslisp 的角度来说,虽不多但
  也有不可换的地方.此外Mule与 Nemacs基本上不同.

  关于Mule与Nemacs/Emacs的非互换性,Enami Tsugumoto
  <enami@sys.ptg.sony.co.jp>作过以下的说明:

    * Nemacs Mule独特的函数,变数而引起的非互换性.
    * 在Mule为了实现多语言化,使用要求变化而引起的非互换性.
    * Nemacs与Mule上Ascii以外的文字表现方式不同而引起的byte
      compile后的非互换性.(但是byte code的互换性是存在的)
    * 成为基础的Emacs版号不一致而引起的非互换性.

D-2: 大家喜爱的ange-ftp起动后,为什么M-! (shell-command)会失败?

  ange-ftp起动后许多函数被取代了.其中包括Mule中引数指定变更后的
  write-region与insert-file-contents.

  命令shell-command利用Mule中定义的引数调用函数write-region 与
  insert-file-contents,但被ange-ftp取代后的write-region不能解释这些引
  数.因此发生错误而导致shell-command的执行失败.

  关于解决办法,Msayuki kuwada <kuwada@soliton.ee.uec.ac.jp> 作过以下的
  说明:

    在ange-ftp.el的ange-ftp-write-region及
    ange-ftp-insert-file-contents 的引数定义部最后追加&rest
    coding-system,并作以下修改就行.  (与Emacs,Nemacs都能共用)

    [注意] 下面的修改是对以下版号的
     RCS:       $Header: ange-ftp.l, v 4.29 92/08/14 17:04:34 ange Exp $
    版号不同引数有可能不同.以下仅供参考

    在函数ange-ftp-write-region内部有两个地方用到
    ange-ftp-real-write-region, 对此作以下修改.

    (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 的两个地方也作以下修改.

    (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)

D-3: 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.song.co.jp>曾作以下说明.

    即使使~/.emacs Nemacs与Mule能够共用,如要进行byte-compile 必须用别
    的(被byte compile的)文件.

    也就是说,如含有汉字文字系列(因Nemacs与Mule中汉字的表现方式不同而引
    起的byte-compile后文件的非互换性),必须重新进行 byte compile.

D-4: 在Nemacs运行得很好,但在Mule中出现"symbol's function definition is
 void: define-program-kanji-code"而不能正常运行.该怎么办?

  Atsushi Furuta <furta@srarc2.sra.co.jp>是这样解释的

    函数define-program-kanji-code是Nemacs所独有的,故在 Mule中不能运行.
    Mule中define-program-coding-system起代替作用.对此必须作以下修改.

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

    同样,如含有"kanji-cod"的函数没有找到, 用"coding-system"代替
    "kanji-code"的函数有可能在Mule中存在.  此外,"mc-flag"代替
    "kanj-flag"起作用.

  另外,也有使Nemacs用的程序码在Mule也能运行的程序包.对此 Ken'ichi
  Handa <handa@etl.go.jp>作过以下说明.

    为了使从Nemacs向Mule的移动变得更简单,通过加入电子信件联络网的大家
    共同努力,编制了以下简单的程序包.

    如把下面两个.el文件随便加到哪个装入路径里,即使你的.emacs 含有供
    Nemacs用的程序码,只要象下面那样修改一下.emacs,你就可以同Nemacs一样
    地使用Mule.

      (load-library "nemacs-pre")
         ...原来的.emacs码
      (load-library "nemacs-post")

    当然这样修改不会影响Nemacs的使用.

    nemacs-pre.el及nemacs-post.el可通过ftp从
    etlport.etl.go.jp:/pub/mule/contrib.lisp得到.

D-5: GNU Emacs, Nemacs用的程序,有哪些能用哪些不能用?

  * 无须任何变更就能利用的

  程序名     版号             备考
  auctex    6.1d, 7.1p
  cmutex    2.03
  GNUS      3.13,3.14.1,
            3.15              GNU Emacs 19.x
                              因为所有的函数,变数名都使用
                              小写字母,如果已经设定hook,必须
                              修改hook.
  ispell    2.1?              带有ispell 3.0.5的
  mh-e      3.8
  SKK       6.7以后           比6.7旧的不行
  Supercite 2.3               如要使用日语请参照问题E-3
  vm        5.32, 5.33

  * Mule专用或被修改成Mule用的
  程序名        版号             备考
  boiled-egg    3.10             收录在mule/contrib
  canna
  Egg           3.05             Mule标准装备
  diclookup                      收录在mule/contrib
  guess-coding                   收录在mule/contrib
  keisen                         增井版,收录在mule/contrib
  keisen                         三重大学版
  mh-serach                      收录在mule/contrib
  sj3-egg       1.6
  jam-zcat      1.42

  * Mule中不能运行的
  程序名        版号             备考
  ange-ftp      4.20             但适当地修改的话可以(参考D-2)
  x-sb-mouse    1.4(92-05-23)    但适当地修改的话可以

电子信件&电子新闻

E-1: 如何自动地设定mail状态的字码?

  如你在使用RMAIL及VM,用mail-mode-hook设定mail状态的字码.  例如,要设定
  euc-china码的话,

  (setq mail-mode-hook ()
        '(lambda ()
           (cond ((boundp 'NEMACS)
                  (setq kanji-fileio-code 2))
                 ((boundp 'MULE)
                  (set-file-coding-system *euc-china*)))))

  如你在使用MH-E的话,则用mh-letter-mode-hook设定mh-letter 状态的字码.

  (setq mh-letter-mode-hook
        '(lambda ()
           (cond ((boundp 'NEMACS)
                  (setq kanji-fileio-code 2))
                 ((boundp 'MULE)
                  (set-file-coding-system *euc-china*)))))

  最好把以上码放在.emacs里

  如果把mule-init.el修改成你所需要的设定,以上的设定就不需要了.

E-2: 书写电子信件及电子新闻时,打c-c c-y键引用符号变成" ".怎样才能使其
 变成">"?

  使用supercite可以把引用符号设定成">".supercite有许多功能,引用符号也
  能根据个人喜欢任意设定.详细说明请参考 E-3 -- E-5.

E-3: 用supercite怎样才能使引用符号里含有名字?

  按下面的设定应该可以.这个设定是从ksaka@mtl.t.u-tokyo.ac.jp来的.根据
  需要可以省去一些行.还可以根据喜欢改变最下面3行(详细说明请参考
  supercite说明书)

    ;;  sc
    (autoload 'sc-cite-original     "supercite" "Supercite 3.1" t)
    (autoload 'sc-submit-bug-report "supercite" "Supercite 3.1" t)
    (autoload 'sc-perform-overloads "sc-oloads" "Supercite 3.1" t)
    (setq mail-citation-hook 'sc-cite-original)
    (setq mail-yank-hooks 'sc-cite-original)    ; for all but MH-E
    (setq mh-yank-hooks 'sc-cite-original)      ; for MH-E (3.7 or later)
    (setq news-reply-mode-hook 'sc-perform-overloads) ; for RNEWS,GNEWS,GNUS
    (setq mail-setup-hook 'sc-perform-overloads)      ; for RMAIL,PCMAIL,GNUS
    (setq gnews-ready-hook 'sc-perform-overloads)     ; for GNEWS

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


E-4: 利用Supercite如何使引用符号自动设定成">"?

  在E-3的设定上再加上下面一行就行

    (setq sc-nested-citation-p t)

  但请注意,这样设定后引用符号就无法包含名字

E-5: 使用supercite时,如要用default引用符号以外的符号作为default用的话,
 该怎么办?

  为此,可利用yoichi@s5g.ksp.fujixerox.co.jp编制的 sc-register-2.3.1. 
  使用时装上sc-register,然后加上以下设定

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

  但是,supercite 3.0以后的版不能用sc-register.将来据说从开始起就组装上
  sc-register功能.

画面表示

F-1: X上使用Mule时,fonts有时部分脱落或显得很赃. 这是为什么?

  Takahashi Naoto (ntakahas@etl.go.jp)和Ken'ichi Handa
  (handa@etl.go.jp曾作过以下说明.

  Mule根据Ascii font的宽度生成窗的.fonts的部分脱落是因为fonts的宽度与
  Ascii的不一样.汉语,日语,韩国语的fonts的宽度必须是Ascii的2倍,而其他的
  fonts的宽度必须与Ascii相同.

  fonts脱落及显赃是因为X的自动变倍功能.如果指定的 fonts符合XLFD格式且
  fonts不存在时,X的server就把自己知道的fonts适当地扩大缩小而使用.例如,
  指定

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

  是符合XLFD的,因此X的自动变倍功能就起作用.相对而言, mule-init.el里的
  设定

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

  不符合XLFD格式,所以自动变倍功能就不应该起作用.以上只是一些经验之谈.

F-2: 如用(x-set-bell t)设定了visible-bell,画面闪的位置在画面中央,范围
 约为画面大小1的/4.这是设计要求吗?

  是的,从GNU Emacs 18.58开始变成这样的.








