$)A -*- 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 ------------------------------------------------------------------------- 在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提出的. 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 如下写到: 这是因为 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!V陷入!W进去(B:). B-5: "Undefined Symbol: _des_crypt"的文字显示后,compile完全停止了,为什么? Masato Minda 如下写到: 这故障是在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 执笔, 详见 june.cs.washington.edu:~ftp/pub/yeung/cantonese.shar) ETZY BIG5 ETen ZhuYin (音标) ETen 键盘规划输入 (HKU) (Susie Chu 执笔) PY-b5 BIG5 HKU BIG5 发声标准拼音输入法 (HKU) (Stephen G Simpson 执笔) 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 作过以下的说明: * 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 作过以下的 说明: 在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 曾作以下说明. 即使使~/.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 是这样解释的 函数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 作过以下说明. 为了使从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开始变成这样的.