Mercurial > hg > xemacs-beta
diff man/mule/languages.texi @ 70:131b0175ea99 r20-0b30
Import from CVS: tag r20-0b30
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:02:59 +0200 |
parents | |
children | 0d2f883870bc |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/man/mule/languages.texi Mon Aug 13 09:02:59 2007 +0200 @@ -0,0 +1,2633 @@ +\input texinfo @c -*-texinfo-*- +@setfilename ../info/languages +@settitle Foreign Languages + +@titlepage +@sp 6 +@ceter @titlefont{Foreign Languages} +@sp 4 +@center Version 2.1 +@sp 5 +@center TAKAHASHI Naoto +@center ntakahas@@etl.go.jp +@page + +@end titlepage + +@node Top, , , (mule) +@section Foreign Languages + +This document describes how to read and write various Asian and European +languages in Mule. + +@menu +* Chinese:: Simplified and Traditional Hanzi +* Japanese:: Hiragana, Katakana, Kanji +* Korean:: Hangul and Hanja +* Thai:: Thai +* Vietnamese:: Vietnamese +* Latin Script Languages:: French, German, Swedish, etc. +* Cyrillic Script Languages:: Russian, Bulgarian, Ukrainian, etc. +* Greek:: Greek +* Hebrew:: Hebrew +* Arabic Script Languages:: Arabic, Farsi, etc. +* Ethiopic Languages:: Amharic, Tigrigna, etc. +* IPA:: International Phonetic Alphabet +@end menu + +@comment ============================================================ +@node Chinese, Japanese, , Top +@section Chinese + + This section describes how to read and write Chinese (both simplified +and traditional hanzi) in Mule. To make Chinese the primary +environment, the following line should be included in the +@file{$MULE/lisp/site-init.el} file at the compile time: + +@lisp +(set-primary-environment 'chinese) +@end lisp + +If your system administrator did not do this setting, you have to +include the above line in your @file{~/.emacs} file. + + To print Chinese text, see the online manual @samp{m2ps(1)} +and @xref{Top, , m2ps, m2ps}. + +@menu +* Chinese Character Sets:: GB and BIG5 +* Chinese Fonts:: Running Mule as an X client program +* Coding-system for Chinese:: File I/O and Process Communication +* Using cWnn:: Network wide hanzi conversion server +* Quail for Chinese:: Simple input method +* Running Mule in cxterm:: Using cxterm's input method +* PIG-mode:: Yet another mode for Chinese +* Chinese News:: How to read alt.chinese.text[.big5] +@end menu + +@comment ------------------------------------------------------------ +@node Chinese Character Sets, Chinese Fonts, , Chinese +@subsection Chinese Character Sets + + There are two character sets for Chinese, i.e., GB and BIG5. GB is +for the simplified characters used in P.R.C. On the other hand, BIG5 is +for the traditional characters used in Hong Kong and Taiwan. Mule can +handle both of them. You can make a file which contains both GB +characters and BIG5 characters, but care should be taken in this case. +If you want to make such files, see @xref{Coding-system for Chinese}. + +@quotation +[NOTE] BIG5 roughly corresponds to the first and the second plains of +CNS 11643. CNS stands for Chinese National Standard, which defines a +Chinese character set. Although Mule can also read/write/display CNS +character sets, input methods for CNS is not yet available. +@end quotation + +@comment ------------------------------------------------------------ +@node Chinese Fonts, Coding-system for Chinese, Chinese Character Sets, Chinese +@subsection Chinese Fonts + + Unless you have a terminal that supports GB/BIG5 and will run Mule +exclusively on it, you have to use the X window system on which +appropriate GB/BIG5 fonts are installed. You should be able to read the +following two lines if Chinese fonts are appropriately installed: + +@example +GB : $AVPND(B $AFUM(;0(B $A::So(B $ADc:C(B +BIG5 : $(0GnM$(B $(0N]0*Hd(B $(0*/=((B $(0+$)p(B +@end example + + If you cannot read the above lines, get Chinese fonts from Mule's FTP +sites (see FAQ-Mule) and install them. In addition to GB and BIG5 +fonts, you also need SiSheng fonts if you want to use cWnn to input +Chinese. (For cWnn, see @xref{Using cWnn}.) + + Bear in mind that all fonts used in Mule must be of fixed width. +Furthermore, the width of the Chinese characters must be exactly twice +as wide as the ASCII characters, and the width of the Sisheng characters +must be the same as the ASCII characters. For the detail of font +specification, see @xref{Font, , Font, mule}. + +@comment ------------------------------------------------------------ +@node Coding-system for Chinese, Using cWnn, Chinese Fonts, Chinese +@subsection Coding-system for Chinese + + When you read/write a file containing Chinese characters, you must +specify what kind of format is used. In the world of Mule, this format +is called @dfn{coding-system}. You must specify an appropriate +coding-system in your @file{~/.emacs} file, depending on your needs. We +will explain three cases one by one. + +@enumerate +@item +To edit files containing GB and ASCII + + There are several ways to distinguish GB characters from ASCII +characters. The most frequently used method utilises the 8th bit as a +flag. If the 8th bit is set to 1, the character represents a GB. +Otherwise, an ASCII. This method is adopted in cxterm. If you use +exclusively GB and ASCII, this method would be convenient. This is the +default coding-system in Mule's Chinese environment. + +@item +To edit files containing BIG5 and ASCII + + If you want to use BIG5 as the primary coding-system, add the +following lines in your @file{~/.emacs} file: + +@lisp +(set-default-file-coding-system '*big5*) +(set-display-coding-system '*big5*) +(set-keyboard-coding-system '*big5*) +(setq-default quail-current-package (assoc "py-b5" quail-package-alist)) +@end lisp + +@item +To edit files containing GB, BIG5 and ASCII + + First of all, be aware of this fact: Mule seems to be the only +software that can handle GB and BIG5 simultaneously. You cannot display +GB and BIG5 simultaneouly in cxterm, for example. + + If you dare to include GB and BIG5 in the same file, we recommend you +to include the following line in your @file{~/.emacs} file: + +@lisp +(set-default-file-coding-system *junet*) +@end lisp + + With this coding-system, you can include not only GB and BIG5, but +also Japanese, Hangul, European languages, etc. in a single file. The +coding-system @code{*junet*} inserts special codes, called @dfn{escape +sequences}, at the boundaries of two different character sets. The 8th +bits are always set to zero. + + You can also use the next one instead of using @code{*junet*}: + +@lisp +(set-default-file-coding-system *euc-china*) +@end lisp + + In this case, GB characters are saved with their 8th bits set to one. +All other character sets are saved with their 8th bits set to zero, and +are distinguished from one another by escape sequences. + + Yet another alternative is the following: + +@lisp +(set-default-file-coding-system *ctext*) +@end lisp + + You cannot specify *big5* as file-coding-system if the file contains +both GB and BIG5. + +@end enumerate + +@comment ------------------------------------------------------------ +@node Using cWnn, Quail for Chinese, Coding-system for Chinese, Chinese +@subsection Using cWnn + + The primary method for inputing Chinese is to communicate with cserver +of cWnn via Egg system. cserver is a network-wide pinyin-hanzi +conversion server. It receives pinyin sequences and returns hanzis. + + To use cserver, cWnn (version 4.108 or later) should have been +installed. cWnn is bound to Wnn, and available from FTP sites of Mule. +SiSheng fonts are also necessary. (See @xref{Chinese Fonts}.) + + Note that the current version of Egg supports only GB characters. +If you want to input BIG5, or if you cannot use cserver for some +reason, see @xref{Quail for Chinese}. + + To use cserver, you must specify the hostname on which cserver is +running. Add the following lines in your @file{~/.emacs} file: + +@lisp +(set-cwnn-host-name "hostname") +@end lisp + + @code{"hostname"} must be replaced by the real hostname on which +cserver is really running. + + To input chinese, type @kbd{C-\}. Make sure that the mode-line has +changed. Now you can enter pinyin. You may type several words at once. +Then hit @key{SPC} to convert what you entered. If the resulting hanzi +is different from what you want, hit @key{SPC} again. Each time you hit +@key{SPC}, cserver returns another alternative. + + Here are some important key bindings in the conversion mode: + +@table @kbd +@item SPC +get another alternative + +@item RET +confirm (accept that hanzi) + +@item C-f +move to next word + +@item C-b +move to previous word + +@item C-i +make current word shorter + +@item C-o +make current word longer + +@item C-g +quit +@end table + + At the very first time of usig cserver, you may be asked if you +want to make dictionaries. Just type @kbd{yes} to all questions. + + To quit from Chinese input mode, type @kbd{C-\} again. + + For more information, see @xref{Top, , Egg, egg}. + +@comment ------------------------------------------------------------ +@node Quail for Chinese, Running Mule in cxterm, Using cWnn, Chinese +@subsection Quail for Chinese + + For those who want to input BIG5 or who cannot use cserver for some +reason, Mule provides another input method called @dfn{quail}. Quail is +included in the standard distribution of Mule. If you are familiar with +cxterm, it would be very easy to use quail, as quail supports all of the +input method provided by X11R5 cxterm. + + All input methods called @samp{XXX.tit} in X11R5 cxterm are already +registered in Mule. To use some of them, just type @kbd{C-]} and select +a package you want by @kbd{M-s}. The following packages are avairalbe +now. + +@example +py, tonepy, sw, punct, qj, ccdospy, ctcps3, etzy, py-b5, zozy, qj-b5, +punct-b5 +@end example + + In the document of X11R5 cxterm, each input method is explained as +follows. (Quoted from @file{cxterm/dict/tit/README}.) + +[GB input methods] + +@table @asis +@item py +Standard PinYin input method + +@item qj +Quan Jiao -- double-byte ASCII in GB coding + +@item punct +Punctuation marks input table + +@item sw +CCDOS style ShouWei input method (first & last part) + +@item tonepy +Standard PinYin input method with tone 1-5 + +@item ccdospy +CCDOS style abbreviated PinYin input method + +@item ctlau +Sidney Lau's Cantonese transcription scheme +@end table + +[BIG5 input methods] + +@table @asis +@item py-b5 +Standard PinYin input method with tones + +@item qj-b5 +Quan Jiao -- double-byte ASCII in BIG5 coding + +@item punct-b5 +Punctuation marks input table + +@item ctlaob +Sidney Lau's Cantonese transcription scheme + +@item zozy +ETen ZhuYin (phonetic) input in second keyboard layout as in ZeroOne, +DACHEN system, etc. + +@item etzy +ETen ZhuYin (phonetic) input in ETen keyboard layout +@end table + + In quail, you can toggle ASCII input mode and Chinese input mode by +typing @kbd{C-]}. @kbd{M-z} in quail-mode shows a help. + +@quotation +[NOTE] You can easily create a quail-package from cxterm's tit format +file. Please try the following command from your shell, + +@example +@samp{% mule -batch -l quail/tit -f batch-tit-to-quail [dirname|filename] ...} +@end example +@end quotation + +@comment ------------------------------------------------------------ +@node Running Mule in cxterm, PIG-mode, Quail for Chinese, Chinese +@subsection Running Mule in cxterm + + You can use various hanzi input method of cxterm by running Mule in a +cxterm window. In this case you can use the latest veresion of cxterm. +To run Mule in a cxterm window, execute the following command: + +@example +@samp{% mule -nw} +@end example + + Make sure that you have configured cxterm so that it matches Mule's +coding-system. Set cxterm to GB-mode if you use *euc-china* in Mule; to +BIG5-mode if you use *big5*. Note that you cannot use GB and BIG5 +simultaneously in cxterm. + +@comment ------------------------------------------------------------ +@node PIG-mode, Chinese News, Running Mule in cxterm, Chinese +@subsection PIG-mode + + PIG-mode is a very convenient system. It converts several characters +at once, accepts abbreviated pinyin input, etc. It is available via +anonymous FTP from the following sites: + +@example +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 +@end example + + A useful readme file is included. + + According to burt@@dfki.uni-kl.de, the definition of the following +function is missing: + +@lisp +(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))) +@end lisp + +@comment ------------------------------------------------------------ +@node Chinese News, , PIG-mode, Chinese +@subsection Chinese News + + It is possible to read the articles posted to @samp{alt.chinese.text} +and @samp{alt.chinese.text.big5} if you use @code{GNUS} and +@code{gnusutil} together in Mule. + + Add the following line in your @file{~/.emacs} file: + +@lisp +(setq gnus-group-mode-hook 'gnusutil-initialize) +@end lisp + + Now you can read @samp{alt.chinese.text} and +@samp{alt.chinese.text.big5} in hanzi. + + Once you install gnusutil, no special procedure is required to post an +article to those newsgroups. You can write your article in hanzi and +can post it as if it were written in ASCII. gnusutil automatically +converts your hanzi article to appropriate format. Use a GB input +method for @samp{alt.chinese.text}, and a BIG5 input method for +@samp{alt.chinese.text.big5}. + +@comment ============================================================ +@node Japanese, Korean, Chinese, Top +@section Japanese + +[IN PREPARATION] + + This section describes how to read and write Japanese in Mule. To +make Japanese the primary environment, the following line should be +included in the @file{$MULE/lisp/site-init.el} file at the compile time: + +@lisp +(set-primary-environment 'japanese) +@end lisp + + If your system administrator did not do this setting, you have to +include the above line in your @file{~/.emacs} file. + + To print Japanese text, see the online manual @samp{m2ps(1)} +and @xref{Top, , m2ps, m2ps}. + +@comment ============================================================ +@node Korean, Thai, Japanese, Top +@section Korean + + This section describes how to read and write Korean in Mule. To make +Korean the primary environment, the following line should be included +in the @file{$MULE/lisp/site-init.el} file at the compile time: + +@lisp +(set-primary-environment 'korean) +@end lisp + + If your system administrator did not do this setting, you have to +include the above line in your @file{~/.emacs} file. + + To print Korean text, see the online manual @samp{m2ps(1)} +and @xref{Top, , m2ps, m2ps}. + +@menu +* Korean Character Set:: KSC5601 +* Inputing Hangul:: Quail Package for Hangul +* Inputing Hanja:: Quail Package for Hanja +@end menu + +@comment ------------------------------------------------------------ +@node Korean Character Set, Inputing Hangul, , Korean +@subsection Korean Character Set + + Mule uses the KSC5601 character set for displaying Korean. Unless you +have a terminal that supports KSC5601 and will run Mule exclusively on +it, you have use the X window system on which appropriate KSC5601 fonts +are installed. + + If the Korean fonts have been properly installed, you should be able +to read the following text: + +@example +Mule $(C@:(B GNU Emacs $(C8&(B $(C:9<v@G(B $(C>p>n?!(B $(C4k@@GR(B $(C<v(B $(C@V557O(B $(C0-H-GQ(B $(C?!5pEM(B +$(C@T4O4Y(B. +GNU Emacs Ver.18 $(C@;(B $(C1bCJ7N(B $(CGQ(B Mule Ver.1 $(C0z(B GNU Emacs Ver.19 $(C8&(B $(C1bCJ(B +$(C7N(B $(CGQ(B Mule Ver.2 $(C0!(B $(C@V=@4O4Y(B. $(C1]HD4B(B Mule Ver.2 $(C88(B $(C039_@L(B $(C0h<S5I(B $(C0M(B +$(C@T4O4Y(B. +@end example + + Bear in mind that all fonts used in Mule must be of fixed width. +Furthermore, the width of the Korean characters must be exactly twice as +wide as the ASCII characters. For the detail of font specification, see +@xref{Font, , Font, mule}. + + In most cases, the coding-system that you want to use for file I/O +would be either @code{*iso-2022-kr*} or @code{*euc-korea*}. + + @code{*iso-2022-kr*} is the coding-system that is used in Korea for +e-mail communication. It is a 7-bit encoding and uses locking shift. +In the current version of Mule, it is the default file-coding-system for +Korean. + + On the other hand, @code{*euc-korea*} is an 8-bit encoding. If the +8th bit is set to zero, it represents an ASCII character; if set to one, +a Korean character. If you rarely use other character sets, this +coding-system would be useful. To use @code{*euc-korea*} for file I/O, +add the following line in your @file{~/.emacs} file: + +@lisp +(set-default-file-coding-system *euc-korea*) +@end lisp + + Another frequently used coding-system is @code{*junet*}. It is the +default coding-system in the @samp{mule@@etl.go.jp} mailing list for +multilingual communication. To use @code{*junet*} for file I/O, add the +following line to your @file{~/.emacs} file: + +@lisp +(set-default-file-coding-system *junet*) +@end lisp + +@comment ------------------------------------------------------------ +@node inputing Hangul, Inputing Hanja, Korean Character Set, Korean +@subsection Inputing Hangul + + To input Hangul, use the Quail system. The Quail system converts one +or more ASCII characters into a Hangul. There are two different +@dfn{Quail packages} for Hangul, namely @code{hangul} and +@code{hangul3}. + + @code{hangul} uses the translation table below: + +@example +$(CGQ1[(B: $(C$!(B $(C$"(B $(C$$(B $(C$'(B $(C$((B $(C$)(B $(C$1(B $(C$2(B $(C$3(B $(C$5(B $(C$6(B $(C$7(B $(C$8(B $(C$9(B $(C$:(B $(C$;(B $(C$<(B +KEY: r R s e E f a q Q t T d w W c z x + +$(CGQ1[(B: $(C$=(B $(C$>(B $(C$?(B $(C$A(B $(C$C(B $(C$D(B $(C$F(B $(C$E(B $(C$G(B $(C$K(B $(C$L(B $(C$P(B $(C$Q(B $(C$S(B $(C$@(B $(C@g(B +KEY: v g k i j p P u h y n b m l o O +@end example + + Here are some examples: + +@example +<key sequence> r k r k +<string inserted> $(C$!(B $(C0!(B $(C0"(B $(C0!0!(B + +<key sequence> r k r <M-SPC> k +<string inserted> $(C$!(B $(C0!(B $(C0"(B $(C0"(B $(C0"$?(B +@end example + + On the other hand, @code{hangul3} uses the translation table below: + +@example +$(CCJ<:(B: $(C$!(B $(C$"(B $(C$$(B $(C$'(B $(C$((B $(C$)(B $(C$1(B $(C$2(B $(C$3(B $(C$5(B $(C$6(B $(C$7(B $(C$8(B $(C$9(B $(C$:(B $(C$;(B $(C$<(B +KEY : k kk h u uu y i ; ;; n nn j l ll o 0 ' + +$(CCJ<:(B: $(C$=(B $(C$>(B $(C$?(B $(C$@(B $(C$A(B $(C$B(B $(C$C(B $(C$D(B $(C$E(B $(C$F(B $(C$G(B $(C$H(B $(C$I(B $(C$J(B $(C$K(B $(C$L(B $(C$M(B +KEY : p m f r 6 R t c e 7 v /f /r /d 4 b 9t +also: / 9 + +$(CCJ<:(B: $(C$N(B $(C$O(B $(C$P(B $(C$Q(B $(C$R(B $(C$S(B $(C$!(B $(C$"(B $(C$#(B $(C$$(B $(C$%(B $(C$&(B $(C$'(B $(C$)(B $(C$*(B $(C$+(B $(C$)(B +KEY : 9c 9d 5 g 8 d x F xq s s! S A w D C w3 + +$(CCJ<:(B: $(C$-(B $(C$.(B $(C$0(B $(C$1(B $(C$2(B $(C$4(B $(C$5(B $(C$6(B $(C$7(B $(C$8(B $(C$:(B $(C$;(B $(C$<(B $(C$=(B $(C$>(B +KEY : wq wW V z 3 X q 2 a ! Z E W Q 1 +@end example + + An example follows: + +@example +<key sequence> k f x +<string inserted> $(C$!(B $(C0!(B $(C0"(B +@end example + + Hit @kbd{C-]} to turn into quail-mode. If you do not see the string +@samp{[$(CGQ1[(B 2$(C9z=D(B]} or @samp{[$(CGQ1[(B 3$(C9z=D(B]} in the mode-line, then hit +@kbd{M-s} and specify the package name @samp{hangul} or @samp{hangul3}. +@key{SPC} works as the completion key. If you hit @key{RET} without +specifying a package name, the default package (shown in the +parentheses) will be used. + + To exit quail-mode, hit @kbd{C-]} once again. + + For the detail of the Quail system, see @xref{Usage of Quail, , , +quail}. + +@comment ------------------------------------------------------------ +@node Inputing Hanja, , Inputing Hangul, Korean +@subsection Inputing Hanja + + To input Hanja, also use the Quail system. The package name for Hanja +input is @code{hanja-ksc}. To specify this package, hit @kbd{M-s} in +quail-mode and input @kbd{hanja-ksc}. Make sure the mode-line shows the +string "2$(C9z=D(BKSC$(CySm.(B". + + For the detail of the Quail system, see @xref{Usage of Quail, , , +quail}. + +@comment ============================================================ +@node Thai, Vietnamese, Korean, Top +@section Thai + + This section describes how to read and write Thai in Mule. To make +Thai the primary environment, the following line should be included +in the @file{$MULE/lisp/site-init.el} file at the compile time: + +@lisp +(set-primary-environment 'thai) +@end lisp + + If your system administrator did not do this setting, you have to +include the above line in your @file{~/.emacs} file. + + To print Thai text, see the online manual @samp{m2ps(1)} +and @xref{Top, , m2ps, m2ps}. + +@menu +* Thai Character Set:: Character Set, Fonts, Coding-system +* Inputing Thai:: Quail Package for Thai +@end menu + +@comment ------------------------------------------------------------ +@node Thai Character Set, Inputing Thai, , Thai +@subsection Thai Character Set + + Mule uses the TIS620 character set for displaying Thai. Unless you +have a terminal that supports TIS620 and will run Mule exclusively on +it, you have to use the X window system on which appropriate TIS620 +fonts are installed. + + Furthermore, you have to increase Mule's line spaces to display vowels +and tone marks. If you are using a 12x24 pixels ASCII font, start up +Mule with the following command: + +@example +@samp{% mule -lsp 5+0} +@end example + + If the Thai fonts have been properly installed, you should be able to +read the following text, which contains both ASCII and Thai characters: + +@example +Mule 0,T$W1M(B editor GNU Emacs 0,T7Uh106Y1!`0>Th1A$GRAJRARC6c0Ki1c0*i1d04i10!Q1:@RIRKERB(B ,Tf(B ,T@RIR(B +0,T;Q1(0(X10:Q1909Ui1(B 0,TAU1(B Mule 0,TCXh19(B 1 0,T+Vh1'c0*i1(B GNU Emacs 0,TCXh19(B 18 ,T`0;g190R9(B ,TaEP(B Mule 0,TCXh19(B 2 0,T+Vh1'c0*i1(B +GNU Emacs 0,TCXh19(B 19 ,T`0;g190R9(B ,T`)>RP(B Mule 0,TCXh19(B 2 ,T`07h1R09Qi1907Uh1(P06Y1!0>Q129R;0CQ1:;0CX1'05h1Md;(B +@end example + + Bear in mind that all fonts used in Mule must be of fixed width. +Furthermore, the width of the Thai characters must be the same as +the ASCII characters. For the detail of font specification, see +@xref{Font, , Font, mule}. + + In most cases, the coding-system that you want to use in file I/O +would be either @code{*tis620*} or @code{*junet*}. + + @code{*tis620*} is an 8-bit encoding. If the 8th bit is set to +zero, it represents an ASCII character; if set to one, a Thai +character. In the current version of Mule, it is the primary +coding-system for Thai. If you rarely use other character sets, +this coding-system would be useful. + + On the other hand, @code{*junet*} is a 7-bit encoding and uses escape +sequences. It is the default coding-system in the +@samp{mule@@etl.go.jp} mailing list for multilingual communication. To +use @code{*junet*} for file I/O, add the following line to your +@file{~/.emacs} file: + +@lisp +(set-default-file-coding-system *junet*) +@end lisp + +@comment ------------------------------------------------------------ +@node Inputing Thai, , Thai Character Set, Thai +@subsection Inputing Thai + + To input Thai characters, use the Quail system. The Quail system +converts one or more ASCII characters into a Thai character. + + Hit @kbd{C-]} to turn into quail-mode. If you do not see the string +@samp{[Thai]} in the mode-line, then hit @kbd{M-s} and specify the +package name @samp{thai}. @key{SPC} works as the completion key. If +you hit @key{RET} without specifying a package name, the default package +(shown in the parentheses) will be used. + + The Thai keymap in quail-mode looks like this: + +@example +,TE(B# /,Tq(B _,Tr(B ,T@s(B ,T6t(B ,TXY(B ,TV0Qi1(B ,T$u(B ,T5v(B ,T(w(B ,T"x(B ,T*y(B ,T_o(B ,T#%(B + ,Tfp(B ,Td(B\" ,TS.(B ,T>1(B ,TP8(B ,TQm(B ,TUj(B ,TC3(B ,T9O(B ,TB-(B ,T:0(B ,TE(B, + ,T?D(B ,TK&(B ,T!/(B ,T4b(B ,T`,(B ,Tig(B ,Thk(B ,TRI(B ,TJH(B ,TG+(B ,T'F(B + ,T<(B( ,T;(B) ,Ta)(B ,TMN(B ,TTZ(B ,TWl(B 0,T7n1(B ,TA2(B ,TcL(B ,T=(B? +@end example + + The difference from the ordinal Thai keyboards are: + +@itemize @bullet +@item +@samp{,T_(B} and @samp{,To(B} are assigned to @key{\} and @key{|} + +@item +@samp{,T#(B} and @samp{,T%(B} are assigned to @key{`} and @key{~} + +@item +We don't know where to assign characters @samp{,Tz(B} and @samp{,T{(B} +@end itemize + + To exit quail-mode, hit @kbd{C-]} once again. + + For the detail of the Quail system, see @xref{Usage of Quail, , , +quail}. + +@comment ============================================================ +@node Vietnamese, Latin Script Languages, Thai, Top +@section Vietnamese + + This section describes how to read and write Vietnamese in Mule. To +make Vietnamese the primary environment, the following line should be +included in the @file{$MULE/lisp/site-init.el} file at the compile time: + +@lisp +(set-primary-environment 'viet) +@end lisp + + If your system administrator did not do this setting, you have to +include the above line in your @file{~/.emacs} file. + + To print Vietnamese text, see the online manual @samp{m2ps(1)} +and @xref{Top, , m2ps, m2ps}. Note that you have to use @code{coco} (COde +COnversion library) to print Vietnamese text. The best way is to use the +@code{any2ps} shell script. Both coco and any2ps can be found in Mule +FTP sites. + +@menu +* Vietnamese Character Set:: Character Set, Fonts, Coding-system +* Inputing Vietnamese:: Quail Package for Vietnamese +@end menu + +@comment ------------------------------------------------------------ +@node Vietnamese Character Set, Inputing Vietnamese, , Vietnamese +@subsection Vietnamese Character Set + + Mule supports both VISCII and VSCII fonts to display Vietnamese text. +Unless you have a terminal that supports either VISCII or VSCII, and +will run Mule exclusively on it, you have to use the X window system on +which appropriate Vietnamese fonts are installed. + + The default is set to VISCII. If you have a VISCII terminal or VISCII +fonts for the X window system, you do not have to do anything special. +On the other hand, if you are going to use either a VSCII terminal or +VSCII fonts, include the following two lines in your @file{~/.emacs} +file: + +@lisp +(x-set-ccl lc-vn-1 ccl-x-vn-1-vscii) +(x-set-ccl lc-vn-2 ccl-x-vn-2-vscii) +@end lisp + + If the fonts have been properly installed, you should be able to read +the following text, which contains both ASCII and Vietnamese characters: + +@example +Mule l,1`(B m,15(Bt s,1q(B gia c,1t(Bng v,1+(B ,1p(Ba ng,1t(Bn ng,1f(B cho GNU Emacs [MULtilingual +Enhancement to GNU Emacs]. Kh,1t(Bng nh,1f(Bng n,1s(B c,1s(B th,1,(B x,1X(B l,1}(B ch,1f(B ASCII (7 +bit) v,1`(B ISO Latin-1 (8 bit) m,1`(B c,1r(Bn c,1s(B th,1,(B x,1X(B l,1}(B Nh,1'(Bt ng,1f(B, Hoa ng,1f(B, H,1`(Bn +ng,1f(B (16 bit) m,1c(B h,1s(Ba theo ti,1j(Bu chu,1&(Bn ISO2022 v,1`(B c,1a(Bc d,18(B b,1d(Bn (th,1m(B d,1x(B nh,1_(B +EUC, Compound Text). ,2p,1/(Bi v,1>(Bi Hoa ng,1f(B, Mule c,1s(B th,1,(B ph,1x(Bc v,1x(B cho c,1d(B GB l,1g(Bn +Big5. Ngo,1`(Bi ra, hi,1.(Bn nay ch,1z(Bng t,1t(Bi c,1{(Bng ph,1x(Bc v,1x(B cho ch,1f(B Th,1a(Bi d,1q(Ba tr,1j(Bn +TIS620 m,1#(Bc d,1%(Bu ti,1j(Bu chu,1&(Bn n,1`(By kh,1t(Bng tu,1b(Bn theo ISO nh,1_(Bng r,1$(Bt ph,11(B th,1t(Bng ,17(B +Th,1a(Bi Lan. +@end example + + Bear in mind that all fonts used in Mule must be of fixed width. +Furthermore, the width of the Vietnamese characters must be the same as +the ASCII characters. For the detail of font specification, see +@xref{Font, , Font, mule}. + + Mule supports three coding-systems for Vietnamese, i.e., +@code{*viscii*}, @code{*vscii*} and @code{*viqr*}. These are all 8-bit +coding systems. The coding-system is independent of the fonts. For +example, you can use a VISCII font to display text written in *vscii*, +and vice versa. The default coding-system is set to *viscii*. If you +want to change this, include either + +@lisp +(setq *coding-category-bin* '*vscii*) +(set-default-file-coding-system '*vscii*) +@end lisp + +or + +@lisp +(setq *coding-category-bin* '*viqr*) +(set-default-file-coding-system '*viqr*) +@end lisp + +in your @file{~/.emacs} file. + + All of the three coding-systems can represent only Vietnames and +ASCII. If you want to use other foreign languages at the same time, add +the following line in your @file{~/.emacs} file: + +@lisp +(set-default-file-coding-system '*junet*) +@end lisp + +The @code{*junet*} coding-system is a 7-bit encoding and uses escape +sequences. It is the default coding-system in the +@samp{mule@@etl.go.jp} mailing list for multilingual communication. + +@comment ------------------------------------------------------------ +@node Inputing Vietnamese, , Vietnamese Character Set, Vietnamese +@subsection Inputing Vietnamese + + To input Vietnamese characters, use the Quail system. The Quail +system converts one or more ASCII characters into a Vietnamese +character. + + Hit @kbd{C-]} to turn into quail-mode. If you do not see the string +@samp{[VIQR]} in the mode-line, then hit @kbd{M-s} and specify the +package name @samp{viqr}. @key{SPC} works as the completion key. If +you hit @key{RET} without specifying a package name, the default package +(shown in the parentheses) will be used. + + The following table shows how to put diacritical marks: + +@example + effect | postfix | examples +------------+---------+---------- + breve | ( | a( -> ,1e(B + circumflex | ^ | a^ -> ,1b(B + horn | + | o+ -> ,1=(B +------------+---------+---------- + acute | ' | a' -> ,1a(B + grave | ` | a` -> ,1`(B + hook above | ? | a? -> ,1d(B + tilde | ~ | a~ -> ,1c(B + dot below | . | a. -> ,1U(B +------------+---------+---------- + d bar | dd | dd -> ,1p(B +------------+---------+---------- + no compose | \ | a\. -> a. +------------+---------+---------- + combination| (~ | a(~ -> ,1G(B +@end example + + To exit quail-mode, hit @kbd{C-]} once again. + + For the detail of the Quail system, see @xref{Usage of Quail, , , +quail}. + +@comment ============================================================ +@node Latin Script Languages, Cyrillic Script Languages, Vietnamese, Top +@section Latin Script Languages + + This section describes how to read and write Latin script languages +(roughly speaking, European languages) in Mule. To make Latin script +the primary environment, the following line should be included in the +@file{$MULE/lisp/site-init.el} file at the compile time: + +@lisp +(set-primary-environment 'european) +@end lisp + + If your system administrator did not do this setting, you have to +include the above line in your @file{~/.emacs} file. + + By default, the above line makes Mule use ISO 8859-1 (aka Latin-1 or +CTEXT) as the primary character set. If you want to use latin-2, +latin-3, etc., see @xref{Other Latin Character Sets}. + + To print Latin script text, see the online manual @samp{m2ps(1)} +and @xref{Top, , m2ps, m2ps}. + +@menu +* Latin-1:: aka ISO 8859-1 and CTEXT +* Other Latin Character Sets:: Latin-2, Latin-3, Latin-4 and Latin-5 +@end menu + +@comment ------------------------------------------------------------ +@node Latin-1, Other Latin Character Sets, , Latin Script Languages +@subsection Latin-1 + +@menu +* Displaying Latin-1:: +* Inputing Latin-1:: + +@comment ............................................................ +@node Displaying Latin-1, Inputing Latin-1, , Latin-1 +@subsubsection Displaying Latin-1 + + Unless you have a terminal that supports ISO 8859-1 and will run Mule +exclusively on it, you have to use the X window system on which +appropriate ISO 8859-1 fonts are installed. Most, if not all, X window +systems have ISO 8859-1 fonts by default, so you do not need to worry +about it too much. If ISO 8859-1 fonts are already available on your +system, you should be able to read the following French sentence that +contains many accented characters: + +@example +,A+(BTout Fran,Ag(Bais de bon go,A{(Bt, m,Aj(Bme r,Ai(Bsident de Capharna,A|(Bm, doit payer la +d,An(Bme ,A`(B No,Ak(Bl ou ,A`(B P,Ab(Bques, en esp,Ah(Bces, en gn,At(Ble ou en ma,Ao(Bs.,A;(B +@end example + + Bear in mind that all fonts used in Mule must be of fixed width. For +the detail of font specification, see @xref{Font, , Font, mule}. + + In most cases, the coding-system that you want to use in file I/O +would be either @code{*ctext*} or @code{*junet*}. + + @code{*ctext*} is an 8-bit encoding. If the 8th bit is set to zero, +it represents an ASCII character. If the 8th bit is set to one, it +represents a Latin-1 character. In the current version of Mule, it is +the primary coding-system for Latin-1 text. If you rarely use other +coding-systems, this one would be useful. You can use the name +@code{*iso-8859-1*} as an alias for @code{*ctext*}. There is no +difference between the two names. + + On the other hand, @code{*junet*} is a 7-bit encoding and uses escape +sequences. It is the default coding-system in the +@samp{mule@@etl.go.jp} mailing list for multilingual communication. To +use @code{*junet*} for file I/O, add the following line to your +@file{~/.emacs} file: + +@lisp +(set-default-file-coding-system *junet*) +@end lisp + +@comment ............................................................ +@node Inputing Latin-1, , Displaying Latin-1, Latin-1 +@subsubsection Inputing Latin-1 + + Some keyboards directly generate 8-bit codes for ISO 8859-1 +characters. In such cases, you can input ISO 8859-1 characters without +difficulty. + + Even if your keyboard does not generate 8-bit codes, you can input ISO +8859-1 characters using the Quail system. The Quail system converts one +or more ASCII characters into an ISO 8859-1 character. A number of +conversion tables are provided for this purpose. Each conversion table +is called a @dfn{package}. + + Hit @kbd{C-]} to turn into quail-mode. Then hit @kbd{M-s} and specify +the package name that you want to use (see below). @key{SPC} works as +the completion key. If you hit @key{RET} without specifying a package +name, the default package (shown in the parentheses) will be used. + + The Quail packages are divided into two groups. The first one is for +naive users. Most of the accented letters can be input by composing two +characters. For example, you will get an @samp{,Ai(B} (@samp{e} with acute +accent) by typing an @samp{e} followed by a @samp{'} (single quote). + +@example +PACKAGE NAME LANGUAGE +-------------------------------- +latin-1 general purpose +british British +danish Danish +finnish Finnish +french French +german German +icelandic Icelandic +italian Italian +norwegian Norwegian +scandinavian Swedish, Norwegian, Danish, Icelandic and Finnish +spanish Spanish +swedish Swedish +@end example + + The second package group was made for those who find the first package +group too awkward. The principle of this group is @dfn{the less +strokes, the better}. Most of the special characters in each language +are allocated to somewhere on the keyboard so that you can type them +with a single stroke. You can type very quickly once you learn the +layout by heart. + +@example +PACKAGE NAME LANGUAGE +------------------------------- +azerty French +dnsh Danish +dvorak English +fnnsh Finnish +frnch French +grmn German +iclndc Icelandic +itln Italian +nrwgn Norwegian +spnsh Spanish +swdsh Swedish +@end example + + To see the composition table or the keyboard mapping of a package, +select that package and hit @kbd{M-z}. To exit quail-mode, hit +@kbd{C-]} once again. + + For the detail of the Quail system, see @xref{Usage of +Quail, , , quail}. + +@comment ------------------------------------------------------------ +@node Other Latin Character Sets, , Latin-1, Latin Script Languages +@subsection Other Latin Character Sets + +@menu +* Displaying Other Latin Character Sets:: +* Inputing Other Latin Character Sets:: +@end menu + +@comment ............................................................ +@node Displaying Other Latin Character Sets, Inputing Other Latin Character Sets, , Other Latin Character Sets +@subsubsection Displaying Other Latin Character Sets + + Unless you have a terminal that supports ISO 8859-x and will run Mule +exclusively on it, you have to use the X window system on which +appropriate ISO 8859-x fonts are installed. Use the following lines to +check whether the fonts have been installed or not. All the lines +contain four vowels (@samp{A}, @samp{E}, @samp{I} and @samp{U}) with +acute accent both in upper case and in lower case: + +@example +ISO 8859-2 (Latin-2): ,BA(B ,Ba(B ,BI(B ,Bi(B ,BM(B ,Bm(B ,BZ(B ,Bz(B +ISO 8859-3 (Latin-3): ,CA(B ,Ca(B ,CI(B ,Ci(B ,CM(B ,Cm(B ,CZ(B ,Cz(B +ISO 8859-4 (Latin-4): ,DA(B ,Da(B ,DI(B ,Di(B ,DM(B ,Dm(B ,DZ(B ,Dz(B +ISO 8859-9 (Latin-5): ,MA(B ,Ma(B ,MI(B ,Mi(B ,MM(B ,Mm(B ,MZ(B ,Mz(B +@end example + + Bear in mind that all fonts used in Mule must be of fixed width. +Furthermore, the width of the ISO 8859-x characters must be the same as +the ASCII characters. For the detail of font specification, see +@xref{Font, , Font, mule}. + + In most cases, the coding-system that you want to use in file I/O +would be either @code{*junet*} or @code{*iso-8859-x*}, where x = 2, 3, 4 +or 9. + + @code{*junet*} is a 7-bit encoding and uses escape sequences. It is +the default coding-system in the @samp{mule@@etl.go.jp} mailing list for +multilingual communication. To use @code{*junet*} for file I/O, add the +following line to your @file{~/.emacs} file: + +@lisp +(set-default-file-coding-system *junet*) +@end lisp + + On the other hand, @code{*iso-8859-x*} is an 8-bit encoding. If the +8th bit is set to zero, it represents an ASCII character; if set to one, +a ISO 8859-x character. If you use only one character set (other than +ASCII), this coding-system would be useful. To use this coding-system +for file I/O, add ONE of the following lines to your @file{~/.emacs} +file: + +@lisp +(set-default-file-coding-system *iso-8859-2*) +(set-default-file-coding-system *iso-8859-3*) +(set-default-file-coding-system *iso-8859-4*) +(set-default-file-coding-system *iso-8859-9*) +@end lisp + +[NOTE] Latin-5 is another name for ISO 8859-9, not for ISO 8859-5. ISO +8859-5 is a Latin/Cyrillic character set. + +@comment ............................................................ +@node Inputing Other Latin Character Sets, , Displaying Other Latin Character Sets, Other Latin Character Sets +@subsubsection Inputing Other Latin Character Sets + + To input Latin-x characters, use the Quail system. The Quail system +converts one or more ASCII characters into a Latin-x character. A +number of conversion tables are provided for this purpose. Each +conversion table is called a @dfn{package}. + + Hit @kbd{C-]} to turn into quail-mode. Then hit @kbd{M-s} and specify +the package name that you want to use (see below). @key{SPC} works as the +completion key. If you hit @key{RET} without specifying a package name, +the default package (shown in the parentheses) will be used. + + Here is the table of Quail packages for Latin-x characters: + +@example +PACKAGE NAME TARGET LANGUAGE +------------------------------------------------------ +latin-2 all Latin-2 (ISO 8859-2) languages +latin-3 all Latin-3 (ISO 8859-3) languages +latin-4 all Latin-4 (ISO 8859-4) languages +latin-5 all Latin-5 (ISO 8859-9) languages +esperanto specific to Esperanto (Latin-3 coding) +turkish spacific to Turkish (Latin-3 coding) +@end example + + To see the conversion table of a package, select that package and hit +@kbd{M-z}. You can exit quail-mode by @kbd{C-]}. For the detail of the +Quail system, see @xref{Usage of Quail, , , quail}. + +@comment ============================================================ +@node Cyrillic Script Languages, Greek, Latin Script Languages, Top +@section Cyrillic Script Languages + + This section describes how to read and write Cyrillic script languages +in Mule. To make Cyrillic script the primary environment, the following +line should be included in the @file{$MULE/lisp/site-init.el} file at +the compile time: + +@lisp +(set-primary-environment 'cyrillic) +@end lisp + + If your system administrator did not do this setting, you have to +include the above line in your @file{~/.emacs} file. + + To print Cyrillic text, see the online manual @samp{m2ps(1)} +and @xref{Top, , m2ps, m2ps}. + +@menu +* Displaying Cyrillic:: +* Other Coding-systems for Russian:: +* Inputing Cyrillic:: +@end menu + +@comment ------------------------------------------------------------ +@node Displaying Cyrillic, Other Coding-systems for Russian, , Cyrillic Script Languages +@subsection Displaying Cyrillic + + Mule uses the right half of the ISO 8859-5 character set for +displaying Cyrillic. Unless you have a terminal that supports ISO +8859-5 and will run Mule exclusively on it, you have to use the X window +system on which appropriate ISO 8859-5 fonts are installed. + + If the Cyrillic fonts have been properly installed, you should be able +to read the following Ukrainian folk song: + +@example +,L2WoR(B ,LQX(B ,Lo(B ,LQP]Tc`c(B +,LBP(B ,LY(B ,LWPS`PR(B, ,Li^(B ,LW]PR(B. +,LGU`UW(B ,Lbc(B ,LQP]Tc`c(B +,L1P]Tc`Xab^\(B ,LabPR(B. +@end example + + Bear in mind that all fonts used in Mule must be of fixed width. +Furthermore, the width of the Cyrillic characters must be the same as +the ASCII characters. For the detail of font specification, see +@xref{Font, , Font, mule}. + + In most cases, the coding-system that you want to use in file I/O +would be either @code{*iso-8859-5*} or @code{*junet*}. + + @code{*iso-8859-5*} is an 8-bit encoding. If the 8th bit is set to +zero, it represents an ASCII character; if set to one, a Cyrillic +character. In the current version of Mule, it is the primary +coding-system for Cyrillic. If you rarely use other character sets, +this coding-system would be useful. + + On the other hand, @code{*junet*} is a 7-bit encoding and uses escape +sequences. It is the default coding-system in the +@samp{mule@@etl.go.jp} mailing list for multilingual communication. To +use @code{*junet*} for file I/O, add the following line to your +@file{~/.emacs} file: + +@lisp +(set-default-file-coding-system *junet*) +@end lisp + +@comment ------------------------------------------------------------ +@node Other Coding-systems for Russian, Inputing Cyrillic, Displaying Cyrillic, Cyrillic Script Languages +@subsection Other Coding-systems for Russian + + If you need only Russian, two other coding-systems are available in +addition to @code{*junet*} and @code{*iso-8859-5*}, namely, +@code{*koi8*} and @code{*alternativnyj*}. Both of them are of 8-bit +encoding. + + @code{*koi8*} is the coding system used in the @samp{relcom.*} netnews +groups. They say it is widely used in the world of UNIX systems, too. +If you want to use @code{*koi8*} as the default character set, include +the following line in your @file{~/.emacs} file: + +@lisp +(set-cyrillic-environment-koi8) +@end lisp + + It is possible to read the news articles posted to @samp{relcom.*} if +you use @code{GNUS} and @code{gnusutil} together in Mule. For this +purpose, add the following lines in your @file{~/.emacs} file (in +addition to the above setting): + +@lisp +(setq gnus-group-mode-hook 'gnusutil-initialize) +(autoload 'gnusutil-initialize "gnusutil") +(autoload 'gnusutil-add-group "gnusutil") +(gnusutil-add-group "relcom" '*koi8*) +@end lisp + + @code{*alternativnyj*} is the coding-system widely used in DOS +systems. It is basically the same as so called CP866. If you want to +read and write Russian text always in this DOS format, include the +following line in your @file{~/.emacs} file: + +@lisp +(set-cyrillic-environment-alternativnyj) +@end lisp + +@comment ------------------------------------------------------------ +@node Inputing Cyrillic, , Other Coding-systems for Russian, Cyrillic Script Languages +@subsection Inputing Cyrillic + + To input Cyrillic characters, use the Quail system. The Quail system +converts one or two ASCII characters into a Cyrillic character. A +number of conversion tables are provided for this purpose. Each +conversion table is called a @dfn{package}. + + Hit @kbd{C-]} to turn into quail-mode. Then hit @kbd{M-s} and specify +the package name that you want to use (see below). @key{SPC} works as the +completion key. If you hit @key{RET} without specifying a package name, +the default package (shown in the parentheses) will be used. + + Here is the table of Quail packages for Cyrillic characters: + +@example +PACKAGE NAME LANGUAGES NOTES +----------------------------------------------------------------- +jcuken Russian standard layout for Russian +macedonian Macedonian JUS.I.K1.004 +serbian Serbian JUS.I.K1.005 +byelorussian Byelorussian derived from JUS.I.K1 +ukrainian Ukrainian derived from JUS.I.K1 +yawerty general purpose based on Roman transcription +@end example + + To see the conversion table of a package, select that package and hit +@kbd{M-z}. You can exit quail-mode by @kbd{C-]}. For the detail of the +Quail system, see @xref{Usage of Quail, , , quail}. + +@comment ============================================================ +@node Greek, Hebrew, Cyrillic Script Languages, Top +@section Greek + + This section describes how to read and write Greek in Mule. To make +Greek the primary environment, the following line should be included in +the @file{$MULE/lisp/site-init.el} file at the compile time: + +@lisp +(set-primary-environment 'greek) +@end lisp + + If your system administrator did not do this setting, you have to +include the above line in your @file{~/.emacs} file. + + To print Greek text, see the online manual @samp{m2ps(1)} +and @xref{Top, , m2ps, m2ps}. + +@menu +* Greek Character Set:: Character Set, Fonts, Coding-system +* Inputing Greek:: Quail Package for Greek +@end menu + +@comment ------------------------------------------------------------ +@node Greek Character Set, Inputing Greek, , Greek +@subsection Greek Character Set + + Mule uses the right half of the ISO 8859-7 character set for +displaying Greek. Unless you have a terminal that supports ISO 8859-7 +and will run Mule exclusively on it, you have to use the X window system +on which appropriate ISO 8859-7 fonts are installed. + + If the Greek fonts have been properly installed, you should be able to +read the following poem: + +@example +,FK_co(B ,Faj|la(B +,Fha(B ,Fido}le(B ,Ftir(B ,Falucdaki]r(B ,Fm(B',Famh_foum(B +,Fta(B ,Fl\qlaqa(B ,Fma(B ,Fk\lpoum(B ,Fstom(B ,F^kio(B +,Ftg(B ,Fh\kassa(B ,Fma(B ,Fjulat_fei(B +,Fk_co(B ,Faj|la(B, +,Fma(B ,Fsgjyho}le(B ,Fk_co(B ,Fxgk|teqa(B. +@end example + + Bear in mind that all fonts used in Mule must be of fixed width. +Furthermore, the width of the Greek characters must be the same as the +ASCII characters. For the detail of font specification, see @xref{Font, +, Font, mule}. + + In most cases, the coding-system that you want to use in file I/O +would be either @code{*iso-8859-7*} or @code{*junet*}. + + @code{*iso-8859-7*} is an 8-bit encoding. If the 8th bit is set to +zero, it represents an ASCII character; if set to one, a Greek +character. In the current version of Mule, it is the primary +coding-system for Greek. If you rarely use other languages, this +coding-system would be useful. + + On the other hand, @code{*junet*} is a 7-bit encoding and uses escape +sequences. It is the default coding-system in the +@samp{mule@@etl.go.jp} mailing list for multilingual communication. To +use @code{*junet*} for file I/O, add the following line to your +@file{~/.emacs} file: + +@lisp +(set-default-file-coding-system *junet*) +@end lisp + +@comment ------------------------------------------------------------ +@node Inputing Greek, , Greek Character Set, Greek +@subsection Inputing Greek + + To input Greek characters, use the Quail system. Hit @kbd{C-]} to +turn into quail-mode. If you do not see the string @samp{[,FEkkgmij\(B]} in +the mode-line, then hit @kbd{M-s} and specify the package name +@samp{greek}. @key{SPC} works as the completion key. If you hit +@key{RET} without specifying a package name, the default package (shown +in the parentheses) will be used. + + The Greek keymap in quail-mode looks like this: + +@example +1! 2@ 3# 4$ 5% 6^ 7& 8* 9( 0) -_ =+ `~ + ,F7/(B ,FrS(B ,FeE(B ,FqQ(B ,FtT(B ,FuU(B ,FhH(B ,FiI(B ,FoO(B ,FpP(B [{ ]} + ,FaA(B ,FsS(B ,FdD(B ,FvV(B ,FcC(B ,FgG(B ,FnN(B ,FjJ(B ,FkK(B ,F4((B '" \| + ,FfF(B ,FwW(B ,FxX(B ,FyY(B ,FbB(B ,FmM(B ,FlL(B ,; .: /? +@end example + + The keys @kbd{,F4(B} (@kbd{;} on ASCII keyboard) and @kbd{,F((B} (@kbd{:} on +ASCII keyboard) work as dead keys. For example, + +@example +@samp{,Fa(B} + @samp{,F4(B} becomes @samp{,F\(B} +@samp{,Fi(B} + @samp{,F((B} becomes @samp{,Fz(B} +@samp{,Fi(B} + @samp{,F((B} + @samp{,F4(B} becomes @samp{,F@(B} +@end example + + To exit quail-mode, hit @kbd{C-]} once again. + + For the detail of the Quail system, see @xref{Usage of Quail, , , +quail}. + +@comment ============================================================ +@node Hebrew, Arabic Script Languages, Greek, Top +@section Hebrew + + This section describes how to read and write Hebrew in Mule. To make +Hebrew the primary environment, the following line should be included in +the @file{$MULE/lisp/site-init.el} file at the compile time: + +@lisp +(set-primary-environment 'hebrew) +@end lisp + + If your system administrator did not do this setting, you have to +include the above line in your @file{~/.emacs} file. + + To print Hebrew text, see the online manual @samp{m2ps(1)} +and @xref{Top, , m2ps, m2ps}. + +@menu +* Hebrew Character Set:: +* Display-direction for Hebrew:: +* Inputing Hebrew:: +* Hebrew Cut and Paste:: +@end menu + +@comment ------------------------------------------------------------ +@node Hebrew Character Set, Display-direction for Hebrew, , Hebrew +@subsection Hebrew Character Set + + Mule uses the right half of the ISO 8859-8 character set for +displaying Hebrew. Unless you have a terminal that supports ISO 8859-8 +and will run Mule exclusively on it, you have to use the X window system +on which appropriate ISO 8859-8 fonts are installed. + + If the Hebrew fonts have been properly installed, you should be able to +read the following Hebrew alphabet: + +@example +[2],H`abcdefghijklmnopqrstuvwxyz[0](B +@end example + + Bear in mind that all fonts used in Mule must be of fixed width. +Furthermore, the width of the Hebrew characters must be the same as the +ASCII characters. For the detail of font specification, see @xref{Font, +, Font, mule}. + + In most cases, the coding-system that you want to use in file I/O +would be either @code{*junet*} or @code{*iso-8859-8*}. + + @code{*junet*}is a 7-bit encoding and uses escape sequences. It is +the default coding-system in the @samp{mule@@etl.go.jp} mailing list for +multilingual communication. To use @code{*junet*} for file I/O, add the +following line to your @file{~/.emacs} file: + +@lisp +(set-default-file-coding-system *junet*) +@end lisp + + On the other hand, @code{*iso-8859-8*} is an 8-bit encoding. If the +8th bit is set to zero, it represents an ASCII character; if set to one, +a Hebrew character. In the current version of Mule, it is the primary +coding-system for Hebrew. If you rarely use other languages, this +coding-system would be useful. You do not need to any special +configuration for using this coding-system. + + *iso-8859-8* does not inserts text direction specifiers. If you want +to use the text direction specifier defined in ISO 6429, namely +@dfn{@key{ESC} [ 2 ]} to change the direction to right-to-left and +@dfn{@key{ESC} [ 0 ]} to revert it to left-to-right, include the +following line in your @file{~/.emacs} file: + +@lisp +(set-default-file-coding-system *ctext-hebrew*) +@end lisp + +@comment ------------------------------------------------------------ +@node Display-direction for Hebrew, Inputing Hebrew, Hebrew Character Set, Hebrew +@subsection Display-direction for Hebrew + + In Mule, each buffer has a buffer local variable called +@code{display-direction}. If this variable is set to @code{nil} (this +is the default), the lines begin from the left edge of the screen. On +the other hand, if @code{display-direction} is non-@code{nil}, the lines +are aligned to the right and texts are written from right to left. + + We strongly recommend you to turn on @dfn{visual-mode} by + +@example +M-x visual-mode +@end example + +when you edit Hebrew text. For the detail of @code{display-direction} +and the cursor motion in visual-mode, see @xref{Top, , Right-to-left +writing, R2L}. + +@comment ------------------------------------------------------------ +@node Inputing Hebrew, Hebrew Cut and Paste, Display-direction for Hebrew, Hebrew +@subsection Inputing Hebrew + + To input Hebrew characters, use the Quail system. Hit @kbd{C-]} to +turn into quail-mode. If you do not see the string @samp{[HEBREW]} in +the mode-line, then hit @kbd{M-s} and specify the package name +@samp{hebrew}. @key{SPC} works as the completion key. If you hit +@key{RET} without specifying a package name, the default package (shown +in the parentheses) will be used. + + The Hebrew keymap in quail-mode looks like this: + +@example +1[2]![0] 2[2]@[0] 3[2]#[0] 4[2]$[0] 5[2]%[0] 6[2]^[0] 7[2]&[0] 8[2]*[0] 9[2]([0] 0[2])[0] [2]-_[0] [2]=+[0] [2];~[0] [2]\|[0] + [2]/[0]Q [2]'[0]W [2],Hw[0](BE [2],Hx[0](BR [2],H`[0](BT [2],Hh[0](BY [2],He[0](BU [2],Ho[0](BI [2],Hm[0](BO [2],Ht[0](BP [2][{[0] [2]]}[0] + [2],Hy[0](BA [2],Hc[0](BS [2],Hb[0](BD [2],Hk[0](BF [2],Hr[0](BG [2],Hi[0](BH [2],Hg[0](BJ [2],Hl[0](BK [2],Hj[0](BL [2],Hs(B:[0] [2],"[0] + [2],Hf[0](BZ [2],Hq[0](BX [2],Ha[0](BC [2],Hd[0](BV [2],Hp[0](BB [2],Hn[0](BN [2],Hv[0](BM [2],Hz(B<[0] [2],Hu(B>[0] [2].?[0] +@end example + + With @key{SFT} keys, you can input upper case ASCII characters even +in hebrew inputing mode. To input lower case ASCII characters, you have +to exit hebrew mode by @kbd{C-]}. To exit quail-mode, hit @kbd{C-]} +once again. + + For the detail of the Quail system, see @xref{Usage of Quail, , , +quail}. + +@comment ------------------------------------------------------------ +@node Hebrew Cut and Paste, , Inputing Hebrew, Hebrew +@subsection Hebrew Cut and Paste + + Use @kbd{C-d} to delete the character under the cursor. + + @key{DEL} key behave differently according to the value of +@code{display-direction}: if the value is @code{nil} (aligned to left), +it deletes a character on the left of the cursor; if the value is +non-@code{nil} (aligned to right), it deletes a character on the right +of the cursor. If the @code{display-direction} and the input character +direction are the same, lastly input character can be deleted with +@key{DEL} key, no matter what the value of @code{display-direction} is. + + The following four commands remove the specified stretch of string and +put it in the @code{kill-ring}: + +@example +@kbd{M-d} or @kbd{M-x visual-kill-word} +@kbd{M-DEL} or @kbd{M-x visual-backward-kill-word} +@kbd{C-k} or @kbd{M-x visual-kill-line} +@kbd{C-w} or @kbd{M-x visual-kill-region} +@end example + + @kbd{M-w} (or @kbd{M-x visual-copy-region-as-kill}) also puts the +specified stretch of string in the @code{kill-ring}, but the original +text is left unchanged. + + The strings in the @code{kill-ring} can be reinserted in buffer by +@kbd{C-y} (or @kbd{M-x visual-yank}) and @kbd{M-y} (or @kbd{M-x +visual-yank-pop}). + + Make sure that you are in quail-mode with Hebrew package when you kill +or yank something, otherwise unexpected region might be deleted or a +garbage string might be inserted in the buffer. + +@comment ============================================================ +@node Arabic Script Languages, Ethiopic Languages, Hebrew, Top +@section Arabic Script Languages + + Mule supports Arabic and Farsi (Persian). In this section we describe +How to display, input and edit these Arabic Script Languages. To make +Arabic script the primary environment, the following line should be +included in the @file{$MULE/lisp/site-init.el} file at the compile time: + +@lisp +(set-primary-environment 'arabic) +@end lisp + + If your system administrator did not do this setting, you have to +include the above line in your @file{~/.emacs} file. + +* ARABIC TOGGLING COMMAND HAS BEEN CHANGED FROM @kbd{C-]} TO @kbd{M-\}. + + To print Arabic text, see the online manual @samp{m2ps(1)} and +@xref{Top, , m2ps, m2ps}. + + Please note that the current version of m2ps does not support r2l +printing direction (aligned to right). Even if you try to print a file +which was created in a right-aligned buffer, it will be printed in +left-aligned. In the worst cases, you will get wrong word order in the +hardcopy. + +@menu +* Arabic Character Set:: +* Arabic-mode:: +* Display-direction in Arabic-mode:: +* Inputing Arabic Characters:: +* Arabic Cut and Paste:: +@end menu + +@comment ------------------------------------------------------------ +@node Arabic Character Set, Arabic-mode, , Arabic Script Languages +@subsection Arabic Character Set + + Mule uses its own Arabic code and Arabic Fonts. You have to start +Mule as an X client, i.e., without the @samp{-nw} option, to use Arabic. +Mule requires the following three fonts to display Arabic: + +@example +@file{etl??-arabic0.bdf} Arabic Digits +@file{etl??-arabic1.bdf} Narrow Characters (alif, etc.) +@file{etl??-arabic2.bdf} Wide Characters (siin, etc) +@end example + + The @samp{??} part indicates the font size. You will find 16 pixels +fonts and 24 pixels fonts on Mule FTP sites. + + Furthermore, you have to increase Mule's line spaces because the +heights of Arabic characters vary greatly. If you are using 16 pixels +fonts, start up Mule with: + +@example +@samp{% mule -lsp 0+9} +@end example + +Or if you are using 24 pixels fonts, start up Mule with: + +@example +@samp{% mule -lsp 0+12} +@end example + + If the fonts are properly installed, you should be able to read the +following famous words: + +@quotation +[2](3U(4?(3G![;=!8RYa(4Z(3&[0](B +@end quotation + + For the Arabic non-spacing marks, only two of them, i.e., hamza and +madda, are available up to now. Any other marks, e.g. fatHa (short +`a'), Damma (short `u'), kasra (short `i'), shadda (doubling sign), +sukuun (pure consonant sign), waSla (joining hamza), etc., cannot be +displayed. It seems that short vowels and waSla are not necessary to +write ordinary Arabic text, but shadda is often marked in today's +printings. Please let us know if shadda is really indispensable, in +that case we will try to implement it. + +@comment ------------------------------------------------------------ +@node Arabic-mode, Display-direction in Arabic-mode, Arabic Character Set, Arabic Script Languages +@subsection Arabic-mode + + You use @dfn{arabic-mode} to input and edit Arabic texts. This +section describes the features of arabic-mode in detail. + + Hit @kbd{C-]} to enter arabic-mode. Now you can input Arabic +characters from your keyboard. Hitting @kbd{C-]} again makes your +keyboard produce ASCII characters, but you are still in arabic-mode. +Another @kbd{C-]} makes your keyboard produce Arabic again. If you want +to exit arabic-mode completely, hit @kbd{C-c C-c}. See the figure +below: + +@example + C-c C-c + +----------------------------------------------+ + | +--------------------+ | + | | C-c C-c | | + V V | | ++-------------+ +------------+ C-] +-----------+ +| | C-] |arabic-mode | ------> |arabic-mode| +|initial state| ------> | with | | with | +| | |Arabic input| <------ |ASCII input| ++-------------+ +------------+ C-] +-----------+ +@end example + + The string @samp{[2](3JG:a=[0](B} in the mode-line indicates that you are in +arabic-mode and the keyboard produces Arabic characters; @samp{Arabic} +indicates that you are in arabic-mode and the keyboard produces ASCII +characters. + +[NOTE] The previous version of arabic-mode was using so called +visual-mode to help Arabic editing and ASCII input. The current +version, however, maintains everything by itself. + +@comment ------------------------------------------------------------ +@node Display-direction in Arabic-mode, Inputing Arabic Characters, Arabic-mode, Arabic Script Languages +@subsection Display-direction in Arabic-mode + + In Mule, each buffer has a buffer local variable called +@code{display-direction}. If this variable is set to @code{nil} (this +is the default), the lines begin from the left edge of the screen. On +the other hand, if @code{display-direction} is non-@code{nil}, the lines +are aligned to the right and texts are written from right to left. You +can toggle the display direction by @kbd{C-x C-k r}. + + For the detail of @code{display-direction} and the cursor motion in +arabic-mode, see @xref{Top, , Right-to-left writing, R2L}. + +@comment ------------------------------------------------------------ +@node Inputing Arabic Characters, Arabic Cut and Paste, Display-direction in Arabic-mode, Arabic Script Languages +@subsection Inputing Arabic Characters + + In arabic-mode, you can input Arabic characters and Arabic digits from +keyboard. Two keyboard layouts are provided to input Arabic characters. +You can select whichever you like. When you are in Arabic-mode, you can +see the keyboard layout by @kbd{C-z}. + + The first keyboard layout was contributed by a Farsi speaker. It looks +like this: + +@example + +-------------------+ + | shifted alt | + | unshifted ASCII | + +-------------------+ + ++----------------------------------------------------------------+ +|[2](3"[0](B | | | | | | | |[2](3#[0](B |[2](3$[0](B | | | | +|(2"(B 1|(2#(B 2|(2$(B 3|(2%(B 4|(2&(B 5|(2'(B 6|(2((B 7|(2)(B 8|(2*(B 9|(2!(B 0| -| =| `| ++----------------------------------------------------------------+ + | | | | | | | | | | | | | + |[2](4A[0](B q|[2](4=[0](B w|[2](4S[0](B e|[2](4Q[0](B r|[2](4O[0](B t|[2](4M[0](B y|[2](3Z[0](B u| i|[2](41[0](B o|[2](4-[0](B p|[2](4)[0](B [|[2](4g[0](B ]| + +-------------------------------------------------------------+ + | | | |[2](4e[0](B |[2](3.[0](B | | | | | [2](4k[0](B| |[2](3,[0](B | + |[2](49[0](B a|[2](45[0](B s|[2](4_[0](B d|[2](4#[0](B f|[2](38[0](B g|[2](4%[0](B h|[2](4Y[0](B j|[2](4[[0](B k|[2](3T[0](B l|[2](4U[0](B ;| '| \| + +-----------------------------------------------------------+ + | | | |[2](30[0](B [2](3-[0](B|[2](3h[0](B | | |[2](3*[0](B |[2](3+[0](B |[2](3)[0](B | + |[2](4I[0](B z|[2](4E[0](B x|[2](3D[0](B c|[2](3B[0](B v|[2](3H[0](B b|[2](3F[0](B n|[2](3^[0](B m|[2](3%[0](B ,|[2](3&[0](B .| /| + +-------------------------------------------------+ +@end example + + To use this keyboard layout, include the following line in your +@file{~/.emacs} file: + +@lisp +(setq arabic-input-keymap 'arabic-key-1) +@end lisp + + The second layout is based on phonetic transcription and looks like +the following: + +@example + Left : ASCII-mode Right : arabic-mode + Upper : shifted Lower : unshifted + ++----------------------------------------------------------------+ +|! [2](3"[0](B |@ |# |$ |% |^ |& |* |( [2](3#[0](B |) [2](3$[0](B |_ |+ |~ [2](3+[0](B | +|1 (2"(B |2 (2#(B |3 (2$(B |4 (2%(B |5 (2&(B |6 (2'(B |7 (2((B |8 (2)(B |9 (2*(B |0 (2!(B |- |= |` [2](4M[0](B| ++----------------------------------------------------------------+ + |Q |W |E |R |T [2](4E[0](B|Y |U |I |O |P |{ |} | + |q [2](4S[0](B|w [2](3^[0](B |e |r [2](3F[0](B |t [2](4%[0](B|y [2](4_[0](B|u |i |o [2](3<[0](B |p |[ |] | + +-------------------------------------------------------------+ + |A [2](4][0](B|S [2](4=[0](B|D [2](4A[0](B|F |G [2](4O[0](B|H [2](4-[0](B|J |K [2](41[0](B|L |: [2](3'[0](B |" [2](3-[0](B || [2](3,[0](B | + |a [2](38[0](B |s [2](45[0](B|d [2](3B[0](B |f [2](4Q[0](B|g |h [2](3Z[0](B |j [2](4)[0](B|k [2](4U[0](B|l [2](4Y[0](B|; [2](3([0](B |' [2](3*[0](B |\ | + +-----------------------------------------------------------+ + |Z [2](4I[0](B|X |C |V |B |N |M |< |> |? [2](3)[0](B | + |z [2](3H[0](B |x [2](3D[0](B |c [2](4'[0](B|v |b [2](4#[0](B|n [2](4[[0](B|m [2](3T[0](B |, [2](3%[0](B |. [2](3&[0](B |/ [2](49[0](B| + +-------------------------------------------------+ + +COMBINATIONS: +a ~ madda above alif +a ' hamza above alif +w ' hamza above waaw +a ' ' hamza below alif +y ' hamza above yaa +" isolated hamza +@end example + + To use this keyboard layout, include the following line in your +@file{~/.emacs} file: + +@lisp +(setq arabic-input-keymap 'arabic-key-0) +@end lisp + + No matter which layout you use, appropriate ligature is automatically +generated whenever a character is input. The special ligature for +@samp{laam} + @samp{alif} will be generated whenever an @samp{alif} is +input on the left of a @samp{laam}. If you want to cut the connection +between two adjacent Arabic characters, type a @kbd{|} (vertical bar) at +that point in arabic-mode. An input of a character preceded by a +@kbd{|} produces a glyph which is not connected to its right adjacent. +Typing a @kbd{_} (underscore) connects the two characters at that point, +if possible. + + When @code{display-direction} is @code{nil} (i.e., lines are aligned to +left), the cursor stays at the same position after an Arabic character +is inserted. It moves to the right after an Arabic digit or an ASCII +character is inserted. + + When @code{display-direction} is non-@code{nil} (i.e., lines are +aligned to right), the cursor moves to the left after an Arabic +character is inserted. It stays at the same position after an Arabic +digit or an ASCII character is inserted. + + To input ASCII characters or ASCII digits, you have to exit +arabic-mode by hitting @kbd{C-]}. + +@comment ------------------------------------------------------------ +@node Arabic Cut and Paste, , Inputing Arabic Characters, Arabic Script Languages +@subsection Cut and Paste + + Use @kbd{C-d} to delete the character under the cursor. If you are in +arabic-mode, the necessary ligature will be re-generated after the +character is deleted. + + @key{DEL} key behave differently according to the value of +@code{display-direction}: if the value is @code{nil} (aligned to left), +it deletes a character on the left of the cursor; if the value is +non-@code{nil} (aligned to right), it deletes a character on the right +of the cursor. If the @code{display-direction} and the input character +direction are the same, lastly input character can be deleted with +@key{DEL} key, no matter what the value of @code{display-direction} is. + + The following four commands remove the specified stretch of string and +put it in the @code{kill-ring}: + +@example +@kbd{M-d} or @kbd{M-x arabic-kill-word} +@kbd{M-DEL} or @kbd{M-x arabic-backward-kill-word} +@kbd{C-k} or @kbd{M-x arabic-kill-line} +@kbd{C-w} or @kbd{M-x arabic-kill-region} +@end example + + @kbd{M-w} (or @kbd{M-x arabic-copy-region-as-kill}) also puts the +specified stretch of string in the @code{kill-ring}, but the original +text is left unchanged. + + The strings in the @code{kill-ring} can be reinserted in buffer by +@kbd{C-y} (or @kbd{M-x arabic-yank}) and @kbd{M-y} (or @kbd{M-x +arabic-yank-pop}). + + Make sure that you are in arabic-mode when you kill or yank something, +otherwise ligature is not maintained, or in the worst case, unexpected +region will be deleted or a garbage string will be inserted in the +buffer. + +@comment ============================================================ +@node Ethiopic Languages, IPA, Arabic Script Languages, Top +@section Ethiopic Languages + + This section @footnote{This section and the Ethiopic support routines +have been written by Daniel Yaqob, Yonas Fisseha and Takahashi Naoto.} +describes how to read and write Ethiopic languages (Ge'ez script +languages) in Mule. To make Ethiopic the primary environment, the +following line should be included in the @file{$MULE/lisp/site-init.el} +file at the compile time @footnote{You also need to increase the value +of @code{BASE_PURESIZE}, which is defined in the +@file{$MULE/src/puresize.h} file, by 10000 or so.} : + +@lisp +(set-primary-environment 'ethio) +@end lisp + + If your system administrator did not include the above line, you have +to include it in your @file{~/.emacs} file. + + To print Ethiopic text, see the online manual @samp{m2ps(1)} and +@xref{Top, , m2ps, m2ps}. Note that you have to use @code{coco} (COde +COnverting library) to print Ethiopic text. The best way is to use the +@code{any2ps} shell script. Both coco and any2ps can be found in Mule +FTP sites. + +@menu +* Ethiopic Fonts:: +* Editing Ethiopic Text:: +* ASCII Transcription for Ethiopic:: +* Ethiopic Mail:: +* Configuration for Ethiopic:: +* Function Keys for Ethiopic:: +@end menu + +@comment ------------------------------------------------------------ +@node Ethiopic Fonts, Editing Ethiopic Text, , Ethiopic Languages +@subsection Ethiopic Fonts + + Currently only 16 dot font is available for displaying Ethiopic. You +can get it from Mule's FTP sites. The name of the font is +@samp{ethiom16d75.bdf}. + + You must invoke Mule as an X client if you want to use Ethiopic. +First, make sure that the environment variable DISPLAY is properly set. +Then invoke Mule from a shell window with the following command : + +@example +% mule -fn 16 +@end example + + If the Ethiopic font has been properly installed, you should be able +to read the following text: + +@quotation +$(2"g!)"K"^"<(B "Taste of Ethiopia" + +$(2"g"S#9!6(B $(2#J"8(B $(2"X!f$2!4(B $(2!!!)#<#9!6(B $(2$$"&!A!1(B $(2!&!."((B + +$(2$$!+"#!D!!#"!V(B $(2!Q"X"`!&(B $(2"S$)!a!W!^!d(B $(2!)"+!g!^$R(B + +- $(2"\!!!V(B $(2!F!6"8#'(B $(2$$"/"@(B $(2"$#%!V(B +- $(2"\!!!V(B $(2!F!6"8#'(B $(2!a"8(B $(2$$"H!f"'(B $(2#E$)!f!.(B $(2$$#9!F"H(B $(2"$#%!V(B +- $(2"S!f"((B $(2!Q"h!&(B $(2$$"H"q!6(B $(2!.!f"i$'(B $(2!E"i$)!f#>(B $(2$J#J"#!6(B +- $(2"S!."H!V(B $(2!F!6"8#'(B $(2!/#&(B $(2$'!!(B $(2#J"^(B + +$(2$W(B) $(2$$"/"@(B $(2"$#%!R(B $(2!A"\!!!V(B $(2!Q"h!&(B $(2!F!6"8#'(B $(2#J"^(B $(2!Q!G"l!W(B $(2$)#!!)".!&$P(B + +$(2$X(B) $(2$$"H!f"'#J(B $(2#E$)!.(B $(2$$#9!F"D(B $(2"$#%!V(B $(2#>!,!9(B $(2$$"H"q!6(B $(2!)!f"i$'(B $(2!E"i$)!f#>(B +$(2$J#J"#!6(B $(2$)#9!D!A!V!d(B $(2!A!F!%!f"#!6(B $(2#J"H"0(B $(2!Q#H"`")(B $(2!A"F"`!f(B $(2#J"H"0(B +$(2$)#!!)".!&$P(B + +$(2$Y(B) $(2"\!!!R(B $(2!B"m#K!^(B $(2!Q"g"(!a#J(B $(2"g(B2 $(2"X"H"g(B 3 $(2#!!f(B $(2"X!f"%$'#!!2(B $(2$)#!!)".!"$P(B + +$(2$Z(B) $(2#!!b(B $(2"g"#!1"H(B $(2!A"e!$(B $(2#!"H(B $(2!Q!F!'(B $(2$$#!!1!1#J!f(B $(2#J"^(B $(2"g"\!!!R!.(B $(2"F"`!g!^(B $(2#J"H"0(B +$(2!,"@"C"H$P(B + +$(2$[(B) $(2"\!!!R!.(B $(2"X"`!&(B ($(2"/"@(B $(2"X!d(B $(2"H!f"'(B/$(2#9!F"H(B) $(2"S#!!$#&!'(B $(2!)!!#J"H!d(B $(2"X"`!"(B $(2"h"@(B +$(2"X"H"i!&(B $(2"(!1"H(B $(2!!(B2 $(2"C#b!V(B $(2$'"`!&(B $(2!,"H#!!)"0$P(B + +$(2$\(B) $(2"g!s$'(B $(2!A"e!$(B 425 $(2"%#>!3"H(B F $(2!A!/#!(B $(2!)#<#9!3$'(B $(2"S$$!6(B $(2"X!f"&$)#9!D(B $(2!W!'(B +$(2"X$$"g"#!b(B $(2"X!f$2!4#J!f(B $(2!)#<#9!6$P(B +@end quotation + + Bear in mind that all fonts used in Mule must be of fixed width. +Furthermore, the width of the Ethiopic characters must be exactly twice +as wide as the ASCII characters. For the detail of font specification, +see @xref{Font, , Font, mule}. + +@comment ------------------------------------------------------------ +@node Editing Ethiopic Text, ASCII Transcription for Ethiopic, Ethiopic Fonts, Ethiopic Languages +@subsection Editing Ethiopic Text + +@menu +* Quail-mode for Ethiopic:: +* Fidel Input:: +* Ethiopic Punctuation Input:: +* Ethiopic Numeric Input:: +* Ethiopic Special Characters:: +@end menu + +@comment ............................................................ +@node Quail-mode for Ethiopic, Fidel Input, , Editing Ethiopic Text +@subsubsection Entering and Leaving Ethiopic mode + + Use the Quail system to input Ethiopic. Hit @kbd{C-]} to enter +quail-mode. If you do not see the string @samp{ETHIO} in the mode-line, +then hit @kbd{M-s} and specify the package name @samp{ethio}. @key{SPC} +works as the completion key. If you hit @key{RET} without specifying a +package name, the default package (shown in the parentheses) will be +used. To exit quail-mode, hit @kbd{C-]} once again. + + For the detail of the Quail system, see @xref{Usage of Quail, , , +quail}. + +@comment ............................................................ +@node Fidel Input, Ethiopic Punctuation Input, Quail-mode for Ethiopic, Editing Ethiopic Text +@subsubsection Fidel Input + +$(2"[(B. About Consonants + + In quail-mode with the Ethiopic package, you can input Ethiopic +characters from the alphabetic region of the keyboard. To input ASCII +characters you have to exit ethiopic-mode by hitting @kbd{C-]}. A table +of the first form consonants from the extended Fidel is given in the +table below. The key assignments are made to the closest phonetical +match between the Ethiopic and Latin letters. + +@example + he = $(2"[(B `ke = $(2#m(B + le = $(2!!(B Ke = $(2"s(B + He = $(2#{(B Xe = $(2#t(B + me = $(2!)(B we = $(2#E(B +`se = $(2#Q(B `e = $(2#_(B + re = $(2!1(B ze = $(2!q(B + se = $(2"C(B Ze = $(2!y(B + xe = $(2!9(B ye = $(2$$(B + qe = $(2#!(B de = $(2"#(B + Qe = $(2#-(B De = $(2$+(B + be = $(2!A(B je = $(2$2(B + ve = $(2!I(B ge = $(2#9(B + te = $(2!Q(B Ge = $(2$9(B + ce = $(2!Y(B Te = $(2"+(B +`he = $(2#f(B Ce = $(2"3(B + ne = $(2!a(B Pe = $(2$@(B + Ne = $(2!i(B Se = $(2"K(B +e,a = $(2"S(B `Se = $(2#X(B + ke = $(2"g(B fe = $(2";(B +@end example + + Characters beginning with a @samp{`} are usually a phonetic twin of +some other letter in the Fidel and may be represented with a @samp{2} as +shown below: + +@example +s2e = `se = $(2#Q(B +@end example + + The extra character @samp{`} or @samp{2} is given to the twin that +occurs less commonly in typical modern writing. The @samp{`} was found +to be more natural to read in Latin vs @samp{2} (@samp{2} will be easier +to type on some keyboards). + + In a few instances where uppercase keyboard letters would have no +Ethiopic assignment, these keys (B, F, J, L, M, R, V, and Y) were made +equivalent to their lowercase counter parts (i.e. L = l, m = M, etc). + +$(2!!(B. About Vowels + + When a key corresponding to a consonant is first struck, you will see +the sixth form of the character appear on the screen with a small +underline, @samp{_}. You may then type a vowel to modify the syllabic +form of the consonant, or type any non-vowel character to terminate the +entry of the letter (the underline goes away). The new character typed +will also appear on the screen. A small table for the input system is +given now : + +@example +Consonants: +me mu mi ma mE m mo mWa +$(2!)(B $(2!*(B $(2!+(B $(2!,(B $(2!-(B $(2!.(B $(2!/(B $(2!0(B + +Independent Vowels: +e/a u/U i A E I o/O e3 +$(2"S(B $(2"T(B $(2"U(B $(2"V(B $(2"W(B $(2"X(B $(2"Y(B $(2"Z(B + +Independent Vowels Following a 6th Form Consonant: + l'e l'u l'i l'A l'E l'I l'o +also --> l'a lU lI lO + $(2!&"S(B $(2!&"T(B $(2!&"U(B $(2!&"V(B $(2!&"W(B $(2!&"X(B $(2!&"Y(B + +Consonants With 12 forms: +hWe hWu/hW' hWi hWa hWE +$(2"b(B $(2"c(B $(2"d(B $(2"e(B $(2"f(B +@end example + + [A NOTE ON FORMS 8 - 12] In different geographic regions, and at +different times within the same region, people have been taught two +different sounds for form 9 (@samp{$(2"c(B} in the above). Phonetical keyed +input is permitted for both ways a person may have been taught. + + In some Ethiopian languages extend Fidel glyphs for labiovelar forms +are required. This is known to be true for the Gurage languages in +particular. The complete set of additional characters required for +these languages was not known to the makers of the Ethiopic extension +for Mule at the of this release. Extended forms (8-12) of the @samp{w} +series are provided to model the labiovelar sounds with a base consonant +when a unique labiovelar glyph is not available for the consonant. For +example : bWe -> $(2!F#L(B, pWE -> $(2$L#P(B. + + Once entered you may edit the vowel form of a letter by placing the +cursor over the letter you wish to change and striking @key{[F6]}. See +@xref{Function keys for ethiopic}. + +@comment ............................................................ +@node Ethiopic Punctuation input, Ethiopic Numeric Input, Fidel Input, Editing Ethiopic Text +@subsubsection Ethiopic Punctuation input + + All Ethiopic and Latin punctuations are available in quail-mode with +the Ethiopic package. The Ethiopic punctuations may be entered by +typing the Latin equivalent from the keyboard. Hitting the same +punctuation key twice will replace the Ethiopic version with the Latin. +A small table follows : + +@example +. -> $(2$P(B +, -> $(2$Q(B +; -> $(2$R(B +: -> $(2$S(B +* -> $(2$T(B +<< -> $(2$U(B +>> -> $(2$V(B +:: -> $(2$O(B +@end example + + In the last 4 cases in the table, Ethiopic punctuation is entered +based upon the similarity between the appearence of the keyboard and +Ethiopic symbols. The last item in the table is an input for an +Ethiopic word separator (a space @dfn{ }). Here two keystrokes of +the colon @key{:} key are required to enter the Ethiopic space, and 3 +keystrokes of the colon are then required to return to the Latin +@samp{:}. + + You may use the space bar to enter Ethiopic spaces by first going into +an @dfn{Ethiopic space mode}. To do so hit the @key{[F2]} key 2 times. +Notice in the mode-line indicator near the bottom of the editor that +each time you hit the @key{[F2]} key that the symbols @samp{_}, +@samp{$(2$N(B}, and @samp{$(2$O(B} will change. These are your space-mode indicators. +The first, @samp{_}, is the default for Latin font width blank spaces (8 +pixels) the 2nd is for Ethiopic font width blank spaces (16 pixels) and +finally the last, @samp{$(2$O(B}, indicates to you that the space bar will +now use the Ethiopic word separator. + + You may change the word separator in a specified @dfn{region} of text +by @kbd{S-[F2]}. Doing so will convert all blank spaces into the +Ethiopic word separators or, if you choose, to the double width Ethiopic +blank space. You may convert among the 3 word separators within a +region of text at any time. + +@comment ............................................................ +@node Ethiopic Numeric Input, Ethiopic Special Characters, Ethiopic Punctuation Input, Editing Ethiopic Text +@subsubsection Ethiopic Numeric Input + + Both the Arabic (ASCII) and Ethiopic numerals are available in +quail-mode with the Ethiopic package. The Arabic numbers are the defualt +when you strike the number keys of the keyboard. Enter the +@dfn{Ethiopic number mode} by pressing @key{[F1]}. Notice that the +Arabic @samp{1} changes to the Ethiopic @samp{$(2$W(B} in the mode-line. +This is your numeral mode indicator. Striking @key{[F1]} again returns +you to the @dfn{Arabic numeral mode}. + + Typing the number keys in Ethiopic numeral mode will render the +numerals on the screen. You may enter Ethiopic numbers like Arabic +numbers with 0's to obtain the multiples of ten for numbers 1 - 9 up to +a multiple of 100,000. This limit is chosen as it will be the largest +value that two numbers together may represent. + +@comment ............................................................ +@node Ethiopic Special Characters, , Ethiopic Numeric Input, Editing Ethiopic Text +@subsection Ethiopic Special Characters + + Special icons, glyphs, and ligatures may be available at the end of +your font's address table. You may enter them on screen, and into your +document, with the @key{[F8]} key followed by a number. For this moment +the available icons are African continent and the region in which Ge'ez +script is native to (collectively, the nations of Eritrea and Ethiopia). + +@comment ------------------------------------------------------------ +@node ASCII Transcription for Ethiopic, Ethiopic Mail, Editing Ethiopic Text, Ethiopic Languages +@subsection ASCII Transcription for Ethiopic + +@menu +* Basic SERA:: +* Mixed Script in SERA:: +* Customising SERA:: +* SERA for file I/O:: +@end menu + +@comment ............................................................ +@node Basic SERA, Mixed Script in SERA, , ASCII Transcription for Ethiopic +@subsubsection Basic SERA + + When written systematically, ASCII files (a file composed with the +characters avaialable from a common English keyboard) may be +interpretted by Mule and viewed as Ethiopic text. Likewise, an Ethiopic +document may be written out by Mule into ASCII for importation +elsewhere. + + Mule uses @dfn{SERA} (System for Ethiopic Representation in ASCII) as +its Latin representation system of the Fidel to provide compatibility +with other networks and PC softwares, and to allow users without Mule +the ability to read easily Ethiopic documents composed with the editor. +Though independent from file I/O, SERA has been applied as the input +method (IM) for Mule as well, hence much of the system has already been +discussed. Current documents on SERA with detailed explanation of the +system can be found in the @file{/pub/languages/ethiopia/email} +directory at the ftp.rpi.edu archive. + + A sample text of SERA is given below. This is the transcription of +the text in @xref{Ethiopic Fonts}. + +@example +kemeSehafu \"Taste of Ethiopia"\ + +ke'ager wC Injera lemegager yedabere lmd + +yemidebalequt teIhl aynetocna meTenoc; + +- hulet brCqo yeTEf duqEt +- hulet brCqo neC yesndE weynm yegebs duqEt +- and tekul yeskWar mnkiya bEkiyng pawder +- amst brCqo moq yale wha + +\1) yeTEf duqEtu behulet tekul brCqo wha tebokto yqemeTal. + +\2) yesndEw weym yegebsu duqEt gmaxe yeskWar menkiya bEkiyng +pawder ygebabetna beblEnder wsT tewahdo besahn wsT +yqemeTal. + +\3) huletu bukowoc tekednew ke2 Iske 3 qen Indiyaqeru yqemeTalu. + +\4) qenu kederes behWala qes teblo yeqererewn wha kehuletum sahnoc wsT +mafses. + +\5) huletum Ihl (TEf Ina sndE/gebs) aqelaqlo melewsna Ihlu kuf +Iskil dres le2 se`at yahl masqemeT. + +\6) keziya behWala 425 digris \F \ bemoqe megageriya ayer Indaygeba tolo +Iyekedenu Injerawn megager. +@end example + + If struck alone, @key{[F4]} will convert the entire document into +Ethiopic text. It is assumed that the text begins in Ethiopic. If the +beginning of the document should start with Latin script, use @kbd{C-u +[F4]} to make the appropriate conversion. You may also use @kbd{S-[F4]} +to convert only the specified region. @kbd{[F5]}, @kbd{C-u [F5]}, and +@kbd{S-[F5]} converts back into SERA-Latin with the same rules applying +for @key{[F4]}. + +@comment ............................................................ +@node Mixed Script in SERA, Customising SERA, Basic SERA, ASCII Transcription for Ethiopic +@subsubsection Mixed Script in SERA + + There are some special rules that apply when you mix both Latin and +Ethiopic. The rules will be more important when composing a SERA file +outside of Mule. At a glance, the escape rules given below may appear +inconsistent. Their practical use should become apparent when working +with them, as they are designed in part to go naturally with their +frequency of use. + + @samp{\}, except followed by some special characters described below, +toggles the script interpretation mode (Ethiopic<->Latin). An +alphabetic character may not be used as an escape sequence following the +@samp{\}. The predefined escape sequences may have different +functions in the two script modes. When followed by a blank space +@samp{ }, the script mode toggles and the space is deleted. + +@table @asis +@item \\ +Sends @samp{\} from either mode. + +@item \. \, \; \: +Sends the equivalent punctuation of the OTHER mode to the screen. + +@item \_ \* \< \> \1 ... \9 +Sends the defined Ethiopic character from both modes. + +@item \| \' \` +In Ethiopic mode @samp{|}, @samp{'} or @samp{`} is sent to the screen. +In Latin mode, the toggle is made to Ethiopic and @samp{|},@samp{`} or +@samp{'} is treated as the first char in the text segment and treated +with the normal rules (i.e. just the stanard toggle into Ethiopic). + +@item \! +The @dfn{Hard Mode Toggle}. The switch toggles modes but treats all +text until the ending @samp{\!} as one script. This allows extended use +of @samp{\} and @samp{\~} without the requirement for @samp{\\} and +@samp{\\~} but at the cost of using only one script within the text +region. + +@item \~x +If @samp{x} is undefined in application, then @samp{x} is ignored. and +nothing appears when transliterated. Also true if @samp{x} is a blank +space @samp{ }. + +@item \~e \~E \~a \~A +Sends the icon of Ge'ez Homelands, its inverse image, African continent and +its invers image, respectively. +@end table + +@comment ............................................................ +@node Customising SERA, SERA for file I/O, Mixed Script in SERA, ASCII Transcription for Ethiopic +@subsubsection Customising SERA + + Fidel is a highly phonetical script set, but not perfect. In a few +instances among the languages that use Fidel for its written script, a +letter will not have a sound consistant with its form class. The +clearest example for this is in Amharic where the first form @dfn{h}s +will have a sound equivalent to that of the fourth form (@samp{$(2"[(B}, +@samp{$(2#{(B}, @samp{$(2#f(B} sound the same as @samp{$(2"^(B}, @samp{$(2#~(B}, @samp{$(2#i(B}). +To model in Latin the different sounds associated with a particular +Fidel member, SERA allows for duplicity of the Latin representation. +One such important instance is the choice of @samp{e} AND @samp{a} to +represent the first lone vowel letter @samp{$(2"S(B}. @samp{a} is the +natural choice in Amharic and @samp{e} is more logical in most +languages. Both @samp{a} and @samp{e} are recoginized for @samp{$(2"S(B} +when converting Latin->Ethiopic; but the user must decide on a choise of +@samp{a} or @samp{e} for converting Ethiopic->Latin. + + The default conversion in mule is to write @samp{$(2"S(B} as @samp{a}. You +may set Mule to always convert @samp{$(2"S(B} as @samp{e} by adding the line +below to your @file{~/.emacs} file: + +@lisp +(setq ethio-use-tigrigna-style t) +@end lisp + + As discussed before (@xref{Fidel Input}), the natural choise of +@samp{Wu} or @samp{W'} for 9th form characters will differ between +people. @samp{Wu} is the default conversion into Latin, but you may +change this to @samp{W'} by adding the following line to your +@file{~/.emacs} file: + +@lisp +(setq ethio-W-sixth-always t) +@end lisp + + SERA also permits @samp{'} as a separator between two Latin vowels +when the user thinks it aids clarity. The deault in Mule is not to +insert @samp{'} between vowels, you may change this by again adding the +following line to your @file{~/.emacs} file: + +@lisp +(setq ethio-quote-vowel-always t) +@end lisp + + As discussed before (see @xref{Ethiopic Numeric Input}), Ethiopic +numerals may be written in several forms and interpreted in the same +way. Likewise you have these same choices for SERA output. + + For example, consider the Latin sequence @samp{\10\9\100\80\7} for +@samp{$(2$`$_$i$g$](B}. The Latin form is considered to be in the lowest +level of reduction, or @dfn{reduction-level 0}. You can choose to write +out in reduction-level 0 by including the following line in your +@file{~/.emacs} file: + +@lisp +(setq ethio-numeric-reduction 0) +@end lisp + + The next level in reduction is the form @samp{\109100807} which can be +set by: + +@lisp +(setq ethio-numeric-reduction 1) +@end lisp + + The final level in reduction is the form @samp{\10900807} which can be +set by: + +@lisp +(setq ethio-numeric-reduction 2) +@end lisp + + These three reduction levels for numbers are offered, because it can +not be known at this time which may ultimately become the preferred +form. + +@comment ............................................................ +@node SERA for file I/O, , Customising SERA, ASCII Transcription for Ethiopic +@subsubsection SERA for file I/O:: + + Whenever you find a file (by @kbd{C-x C-f}) whose name ends in +@file{.sera}, Mule assumes that the file is written in SERA, and +automatically converts the contents into Fidel. + + Likewise, if you save a buffer to a file with the @file{.sera} +extension, the contents will be converted into SERA before actually +written. + + Note that the old two hooks for SERA I/O, i.e., +@code{fidel-to-sera-for-disksave} and @code{sera-to-fidel-for-disksave}, +have been removed. + +@comment ------------------------------------------------------------ +@node Ethiopic Mail, Configuration for Ethiopic, ASCII Transcription for Ethiopic, Ethiopic Languages +@subsection Ethiopic Mail + + By default, Mule uses the *junet* coding-system for sending and +receiving mail. It is a 7-bit coding with escape sequences, so there +should be no difficulty in mail transmission unless the code @samp{ESC} +is not removed by MTA (mail transfer agent). + + Nonetheless, it would be safer to use the SERA format for mail +transmission. In addition to the safety, users who do not have Mule +will benefit from using SERA for mail. + + If you include the line + +@lisp +(add-hook 'mail-send-hook 'fidel-to-sera-mail) +@end lisp + +in your @file{~/.emacs} file, Ge'ez characters in mail body will be +automatically converted into SERA when you send mail from mail-mode. +You can write mail in the Ge'ez script and send it as if it were written +in SERA. The markers @samp{<sera>} and @samp{</sera>} are automatically +inserted at the beginning and the end of mail body so that the mail +receiver can read it in Ge'ez, even without Mule, by using @code{eview} +program. + + If you want to preview the SERA transcription before you actually send +the mail, hit @kbd{C-[F5]} in the @samp{*mail*} buffer. Hit @kbd{C-[F4]} +to go back to Fidel. + + Likewise, if you include the line + +@lisp +(add-hook 'rmail-show-message-hook 'sera-to-fidel-mail) +@end lisp + +in your @file{~/.emacs} file, all mails that contain the @samp{<sera>} +marker are automatically converted into the Ge'ez script when you read +them with @code{rmail}. + + When you receive mail in SERA but without @samp{</sera>}, you can +convert it into Ge'ez by hitting @kbd{C-[F4]}. In rmail-mode, this key +is always active and you can use it even without setting the hooks +above. @kbd{C-[F4]} first searches the marker @samp{<sera>} and the +termination marker @samp{</sera>}. If found, only the portion between +the two markers is converted in Ge'ez. Otherwise it skips the header +part by looking for the first blank line, then convert the rest of the +buffer. If there is no blank line, it prints a message and no +conversion is done. + + For backward compatibility, Mule regards the markers @samp{<ethiopic>} +and @samp{<>} as aliases of @samp{<sera>} and @samp{</sera>}. But the +usage of @samp{<ethiopic>} and @samp{<>} is not recommended. + +@comment ------------------------------------------------------------ +@node Configuration for Ethiopic, Function Keys for Ethiopic, Ethiopic Mail, Ethiopic Languages +@subsection Configuration for Ethiopic + + To use Ethiopic most easily, you may want to create the +@file{~/.emacs} file in your home directory that contains the following +line: + +@lisp +(set-primary-environment 'ethio) +@end lisp + + Here are the lines that you might want to include in your +@file{~/.emacs} file: + +@table @asis +@item (setq ethio-use-tigrigna-style t) +Writes SERA output with @samp{e} in place of @samp{a} for the first +form vowel @samp{$(2"S(B}. + +@item (setq ethio-quote-vowel-always t) +When writing SERA output @samp{'} is inserted between two adjacent +vowels. + +@item (setq ethio-W-sixth-always t) +Writes SERA output with 9th form Fidel characters represented +with @samp{W'} and not @samp{Wu}. + +@item (setq ethio-numeric-reduction #) +Sets level of reduction for numeral representation in SERA. @samp{#} +must be replaced by 0, 1 or 2. The Ethiopic number @samp{$(2$[$i(B} will be +@samp{\5\100} if # is 0, @samp{\5100} if 1, @samp{\500} if 2. + +@item (add-hook 'rmail-show-message-hook 'sera-to-fidel-mail) +When in rmail-mode will convert Ethiopic email marked by @samp{<sera>} +immediately into Ge'ez text without waiting for the @kbd{C-@key{[F4]}} +key to be struck. + +@item (add-hook 'mail-send-hook 'fidel-to-sera-mail) +Will convert Ge'ez email into SERA when send it out from mail-mode. + +@item (add-hook 'news-inews-hook 'fidel-to-sera-mail) +Will convert Ge'ez news article into SERA format when posting news +in gnus mode. +@end table + +@comment ------------------------------------------------------------ +@node Function keys for Ethiopic, , Configuration for Ethiopic, Ethiopic Languages +@subsection Function keys for Ethiopic + +Some function keys have been mentioned in the above. A complete list +of the function keys available is presented separately here. + +@table @asis +@item @key{[F1]} or @kbd{M-x ethio-toggle-digit} +toggles Arabic digit input and Ethiopic digit input. The current input +mode is indicated by the character @samp{1} or @samp{$(2$W(B} in the mode +line, next to the @samp{ETHIO} string. In Ethiopic mode, you can input +up to 1000000 (\1000000) by continuous zeros. To input 2000000 +(\2000000), for example, you have to type @samp{21000000}. The default +is Arabic digit. (Available only in quail-mode.) + +@item @key{[F2]} or @kbd{M-x ethio-toggle-space} +toggles space characters (one of the three below) for keyboard +input. + +@enumerate a +@item +@samp{ } - Single width ASCII space. Mode line Indicator is @samp{_}. + +@item +@samp{$(2$N(B} - Double width Ethiopic blank. Mode line Indicator is @samp{$(2$N(B}. + +@item +@samp{$(2$O(B} - Ethiopic word separator. Mode line Indicator is @samp{$(2$O(B}. +@end enumerate + +Each time you hit @key{[F2]}, the space character changes a -> b -> c -> +a and so on. The default is ASCII space. (Available only in +quail-mode.) + +@item @key{[F3]} or @kbd{M-x ethio-toggle-punctuation} +toggles Latin punctuation input and Ethiopic punctuation input. The +mode line indicator is @samp{.} (Latin) and @samp{$(2$P(B} (Ethiopic). The +default is Ethiopic punctuations. (Available only in quail-mode.) + +@item @key{[F4]} or @kbd{M-x sera-to-fidel-buffer} +performs SERA to Fidel conversion in the current buffer. It assumes +that the buffer begins in Ethiopic. To convert a text which begins in +Latin, use @kbd{C-u @key{[F4]}}. You can continuously enter any large +Ethiopic numbers, for example, +\5500000000000000000000000000000700000000000000000000. + +@item S-@key{[F4]} or @kbd{M-x sera-to-fidel-region} +performs SERA to Fidel conversion in the specified region. It assumes +that the buffer begins in Ethiopic. To convert a text which begins in +Latin, use @kbd{C-u S-@key{[F4]}}. + +@item C-@key{[F4]} or @kbd{M-x sera-to-fidel-marker} +If the buffer contains the markers @samp{<sera>} and @samp{</sera>}, +converts the segment between the two markers from SERA to Fidel in Ethio +start mode. The markers will not be removed. + +@item C-@key{[F4]} (in rmail-mode or Mali-mode) or @kbd{M-x sera-to-fidel-mail} +Does SERA to FIDEL conversion for reading/writing mail. If the buffer +contains the markers @samp{<sera>} and @samp{</sera>}, converts the +segment between the two markers in Ethio start mode and the +@samp{Subject:} field in ASCII start mode. Conversion will be performed +even if the current buffer is read-only. + +Usually, this function is used as a hook. When invoked interactively +and there is no markers, it converts both the whole body and the +@samp{Subject:} field in Ethio start mode. + +For backward compatibility, @samp{<ethiopic>} and @samp{<>} can be used +instead of @samp{<sera>} and @samp{</sera>}. + +@item @key{[F5]} or @kbd{M-x fidel-to-sera-buffer} +performs Fidel to SERA conversion in the current buffer. The converted +region begins in Ethiopic mode. (If the first character of the original +text is a Latin alphabet, @samp{\ } will be inserted at the beginning to +turn into Latin mode.) To produce a SERA text that begins in Latin, use +@kbd{C-u @key{[F5]}}. By default, the first lone vowel @samp{$(2"S(B} is +transcribed by @samp{a}. If you want it to be @samp{e}, put the +following line in your .emacs file: + +@lisp +(setq ethio-use-tigrigna-style t) +@end lisp + +Also by default, the lone vowels are preceded by an apostrophe +@samp{'} only if the preceding character is a 6th form consonant. +If you want the lone vowels always preceded by an apostrophe, +put the following line in your @file{~/.emacs} file: + +@lisp +(setq ethio-quote-vowel-always t) +@end lisp + +@item S-@key{[F5]} or @kbd{M-x fidel-to-sera-region} +performs Fidel to SERA conversion in the specified region. The converted +region begins in Ethiopic mode. (If the first character of the original +text is a Latin alphabet, @samp{\ } will be inserted at the beginning to +turn into Latin mode.) To produce a SERA text that begins in Latin, use +@kbd{C-u S-@key{[F5]}}. + +@item C-@key{[F5]} or @kbd{M-x fidel-to-sera-marker} +If the buffer contains the markers @samp{<sera>} and @samp{</sera>}, +converts the segment between the two markers from Fidel to SERA in Ethio +start mode. The markers will not be removed. + +@item C-@key{[F5]} (in rmail-mode or Mail-mode) or @kbd{M-x fidel-to-sera-mail} +Does Fidel to SERA conversion for reading/writing mail and news. +Intended to be used for mail-send-hook and news-inews-hook, but can be +invoked interactively, too. + +If the buffer contains at least one Ethiopic character, then it + +1) inserts the string @samp{<sera>} right after the head-body +separating line, +2) inserts @samp{</sera>} at the end of the buffer, +3) converts the body into SERA in Ethiopic start mode, and +4) converts the @samp{Subject:} field in ASCII start mode. + +If there is no separating line, @samp{<sera>} will be put at the +beginning of buffer and does not look for the @samp{Subject:} field. + +@item @key{[F6]} or @kbd{M-x ethio-modify-vowel} +is the vowel modification key. Hit this key when the cursor is on a +Fidel letter. Then you will be asked a new vowel. Hit one of the seven +characters below from the keyboard: + +@example +e u i a E ' o +@end example + +You will get a new letter whose consonant is the same as the +original, but with the new vowel that you selected. An +apostrophe @samp{'} changes the character to the sixth form (lone +consonant). + +If the cursor is on the Wa-form of letter having only 8 forms, selecting +a vowel other than @samp{a} changes the original into the combination of +two characters, namely, the sixth form of the original character and the +wW utility letter whose vowel is the newly selected one. See @xref{Fidel +Input}. + +@item @key{[F7]} or @kbd{M-x ethio-replace-space} +replaces the spaces between two Ethiopic characters in the specified +region. You will be asked the new space character. Answer by typing 1, +2 or 3. 1 means the single width ASCII space. 2 means the double width +Ethiopic blank. 3 means the traditional Ethiopic word separater. This +command is independent from the space selection for keyboard input. + +@item @key{[F8]} or @kbd{M-x ethio-input-special-character} +inputs graphical images in font file. A menu will appear in +mini-buffer. +@end table + +@comment ============================================================ +@node IPA, , Ethiopic Languages, Top +@section IPA + + International Phonetic Alphabet (IPA for short) is not a language, but +we describe its usage in Mule here as a matter of convenience. + + To print text that contains IPA characters, see the online manual +@samp{m2ps(1)} and @xref{Top, , m2ps, m2ps}. + +@menu +* IPA Character Set:: IPA Characters and IPA Fonts +* Inputing IPA:: Quail Package for IPA +@end menu + +@comment ------------------------------------------------------------ +@node IPA Character Set, Inputing IPA, , IPA +@subsection IPA Character Set + + Mule defines a private character set to represent a subset of 1989's +version of IPA. It consists of the consonant signs used in English, +French, German and Italian, and all vowels signs in the table. For the +detail of the included characters, see @xref{Inputing IPA}. + + To use this character set, you have to start Mule as an X client. The +fonts for this purpose are found in Mule's FTP sites. Their names are: + +@example +@file{etl14-ipa.bdf} +@file{etl16-ipa.bdf} +@file{etl24-ipa.bdf} +@end example + + If the IPA fonts have been properly installed, you should be able to +read the following line: + +@quotation +,0I!J(B ,0!K(B ,0'(B ,0Z% S(B ,0V!BS(B ,0!S(B ,0p% p@ rp" (B ,0Dp$V'DB'K(B +@end quotation + + Bear in mind that all fonts used in Mule must be of fixed width. +Furthermore, the width of the IPA symbols must be the same as the ASCII +characters. For the detail of font specification, see @xref{Font, , +Font, mule}. + +@comment ------------------------------------------------------------ +@node Inputing IPA, , IPA Character Set, IPA +@subsection Inputing IPA + + To input IPA characters, use the Quail system. Hit @kbd{C-]} to turn +into quail-mode. If you do not see the string @samp{[IPA]} at the left +end of mode-line, then hit @kbd{M-s} and specify the package name +@samp{ipa}. @key{SPC} works as the completion key. If you hit +@key{RET} without specifying a package name, the default package (shown +in the parentheses) will be used. To exit quail-mode, hit @kbd{C-]} +once again. + + For the detail of the Quail system, see @xref{Usage of Quail, , , +quail}. + + Here are the key bindings for IPA characters in quail-mode: + +@example +key description example +----------------------------------------------------------- +i small letter i i in ici (F) +I small capital I i in bit (E) +e small letter e e' in the' (F) +E or \3 rounded small epsilon e in end (Am. E) +ae a+e ligature a in cat (E) +a small a in printing a in patte (F) +A or o| small a in manuscript o in hop (Am. E) +/v upside-down small v u in cup (Am. E) +& small gamma +/m upside-down small m +i- small i with bar +/e schwa (upside-down e) a in about (E) +/a upside-down pr. a a in china (E) +y small letter y u in sur (F) +Y small capital Y u" in du"nn (G) +o/ small phi eu in deux (F) +oe o+e ligature oe in boeuf (F) +OE O+E ligature +/A or |o upside-down man. a o in hop (E) +/c upside-down small c a in all (E) +o small letter o o in pot (F) +U upside-down cap. omega oo in book (E) +u small letter u ou in pour (F) +u- small u with bar u in hus (Norwegian) +o- small o with bar o" in do"rr (Swedish) +e- or e| r coloured schwa er in letter (Am. E) +oe~ tilde above o+e un (F) +/c~ tilde above u-d. c on in bon (F) +E~ or /3~ tilde above epsilon ain in pain (F) +A~ or o|~ tilde above man. a an in blanc (F) +----------------------------------------------------------- +p small letter p p in paon (F) +b small letter b b in banc (F) +t small letter t t in table (E) +d small letter d d in date (E) +k small letter k c in computer (E) +g small letter g g in get (E) +f small letter f f in feel (E) +v small letter v v in veal (E) +th small theta th in three (E) +dh small icelandic edh th in this (E) +s small letter s s in sea (E) +z small letter z z in zero (E) +sh integral mark sh in shell (E) +zh or 3 voiced sh j in je (F) +c, c with cedilla ch in ich (G) +x small letter x x in ach (G) +/R upside-down capital R r in Paris (Parisian F) +h small letter h h in hat (E) +m small letter m m in make (E) +n small setter n n in net (E) +gn n with long left leg gn in signe (F) +ng n with long right leg ng in song (E) +r small letter r rr in carro (I) +R small capital R rr in harren (G) +/r upside-down small r r in red (E) +j small letter j y in you (E) +l small letter l l in light (E) +/y upside-down small y gl in foglio (I) +L small capital L ll in tell (E) +/h upside-down small h u in nuit (F) +w small letter w w in we (E) +M upside-down capital W wh in what (E) +----------------------------------------------------------- +' acute primary accent +` grave secondary accent +: colon long +@end example + +@contents +@bye