comparison 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
comparison
equal deleted inserted replaced
69:804d1389bcd6 70:131b0175ea99
1 \input texinfo @c -*-texinfo-*-
2 @setfilename ../info/languages
3 @settitle Foreign Languages
4
5 @titlepage
6 @sp 6
7 @ceter @titlefont{Foreign Languages}
8 @sp 4
9 @center Version 2.1
10 @sp 5
11 @center TAKAHASHI Naoto
12 @center ntakahas@@etl.go.jp
13 @page
14
15 @end titlepage
16
17 @node Top, , , (mule)
18 @section Foreign Languages
19
20 This document describes how to read and write various Asian and European
21 languages in Mule.
22
23 @menu
24 * Chinese:: Simplified and Traditional Hanzi
25 * Japanese:: Hiragana, Katakana, Kanji
26 * Korean:: Hangul and Hanja
27 * Thai:: Thai
28 * Vietnamese:: Vietnamese
29 * Latin Script Languages:: French, German, Swedish, etc.
30 * Cyrillic Script Languages:: Russian, Bulgarian, Ukrainian, etc.
31 * Greek:: Greek
32 * Hebrew:: Hebrew
33 * Arabic Script Languages:: Arabic, Farsi, etc.
34 * Ethiopic Languages:: Amharic, Tigrigna, etc.
35 * IPA:: International Phonetic Alphabet
36 @end menu
37
38 @comment ============================================================
39 @node Chinese, Japanese, , Top
40 @section Chinese
41
42 This section describes how to read and write Chinese (both simplified
43 and traditional hanzi) in Mule. To make Chinese the primary
44 environment, the following line should be included in the
45 @file{$MULE/lisp/site-init.el} file at the compile time:
46
47 @lisp
48 (set-primary-environment 'chinese)
49 @end lisp
50
51 If your system administrator did not do this setting, you have to
52 include the above line in your @file{~/.emacs} file.
53
54 To print Chinese text, see the online manual @samp{m2ps(1)}
55 and @xref{Top, , m2ps, m2ps}.
56
57 @menu
58 * Chinese Character Sets:: GB and BIG5
59 * Chinese Fonts:: Running Mule as an X client program
60 * Coding-system for Chinese:: File I/O and Process Communication
61 * Using cWnn:: Network wide hanzi conversion server
62 * Quail for Chinese:: Simple input method
63 * Running Mule in cxterm:: Using cxterm's input method
64 * PIG-mode:: Yet another mode for Chinese
65 * Chinese News:: How to read alt.chinese.text[.big5]
66 @end menu
67
68 @comment ------------------------------------------------------------
69 @node Chinese Character Sets, Chinese Fonts, , Chinese
70 @subsection Chinese Character Sets
71
72 There are two character sets for Chinese, i.e., GB and BIG5. GB is
73 for the simplified characters used in P.R.C. On the other hand, BIG5 is
74 for the traditional characters used in Hong Kong and Taiwan. Mule can
75 handle both of them. You can make a file which contains both GB
76 characters and BIG5 characters, but care should be taken in this case.
77 If you want to make such files, see @xref{Coding-system for Chinese}.
78
79 @quotation
80 [NOTE] BIG5 roughly corresponds to the first and the second plains of
81 CNS 11643. CNS stands for Chinese National Standard, which defines a
82 Chinese character set. Although Mule can also read/write/display CNS
83 character sets, input methods for CNS is not yet available.
84 @end quotation
85
86 @comment ------------------------------------------------------------
87 @node Chinese Fonts, Coding-system for Chinese, Chinese Character Sets, Chinese
88 @subsection Chinese Fonts
89
90 Unless you have a terminal that supports GB/BIG5 and will run Mule
91 exclusively on it, you have to use the X window system on which
92 appropriate GB/BIG5 fonts are installed. You should be able to read the
93 following two lines if Chinese fonts are appropriately installed:
94
95 @example
96 GB : $AVPND(B $AFUM(;0(B $A::So(B $ADc:C(B
97 BIG5 : $(0GnM$(B $(0N]0*Hd(B $(0*/=((B $(0+$)p(B
98 @end example
99
100 If you cannot read the above lines, get Chinese fonts from Mule's FTP
101 sites (see FAQ-Mule) and install them. In addition to GB and BIG5
102 fonts, you also need SiSheng fonts if you want to use cWnn to input
103 Chinese. (For cWnn, see @xref{Using cWnn}.)
104
105 Bear in mind that all fonts used in Mule must be of fixed width.
106 Furthermore, the width of the Chinese characters must be exactly twice
107 as wide as the ASCII characters, and the width of the Sisheng characters
108 must be the same as the ASCII characters. For the detail of font
109 specification, see @xref{Font, , Font, mule}.
110
111 @comment ------------------------------------------------------------
112 @node Coding-system for Chinese, Using cWnn, Chinese Fonts, Chinese
113 @subsection Coding-system for Chinese
114
115 When you read/write a file containing Chinese characters, you must
116 specify what kind of format is used. In the world of Mule, this format
117 is called @dfn{coding-system}. You must specify an appropriate
118 coding-system in your @file{~/.emacs} file, depending on your needs. We
119 will explain three cases one by one.
120
121 @enumerate
122 @item
123 To edit files containing GB and ASCII
124
125 There are several ways to distinguish GB characters from ASCII
126 characters. The most frequently used method utilises the 8th bit as a
127 flag. If the 8th bit is set to 1, the character represents a GB.
128 Otherwise, an ASCII. This method is adopted in cxterm. If you use
129 exclusively GB and ASCII, this method would be convenient. This is the
130 default coding-system in Mule's Chinese environment.
131
132 @item
133 To edit files containing BIG5 and ASCII
134
135 If you want to use BIG5 as the primary coding-system, add the
136 following lines in your @file{~/.emacs} file:
137
138 @lisp
139 (set-default-file-coding-system '*big5*)
140 (set-display-coding-system '*big5*)
141 (set-keyboard-coding-system '*big5*)
142 (setq-default quail-current-package (assoc "py-b5" quail-package-alist))
143 @end lisp
144
145 @item
146 To edit files containing GB, BIG5 and ASCII
147
148 First of all, be aware of this fact: Mule seems to be the only
149 software that can handle GB and BIG5 simultaneously. You cannot display
150 GB and BIG5 simultaneouly in cxterm, for example.
151
152 If you dare to include GB and BIG5 in the same file, we recommend you
153 to include the following line in your @file{~/.emacs} file:
154
155 @lisp
156 (set-default-file-coding-system *junet*)
157 @end lisp
158
159 With this coding-system, you can include not only GB and BIG5, but
160 also Japanese, Hangul, European languages, etc. in a single file. The
161 coding-system @code{*junet*} inserts special codes, called @dfn{escape
162 sequences}, at the boundaries of two different character sets. The 8th
163 bits are always set to zero.
164
165 You can also use the next one instead of using @code{*junet*}:
166
167 @lisp
168 (set-default-file-coding-system *euc-china*)
169 @end lisp
170
171 In this case, GB characters are saved with their 8th bits set to one.
172 All other character sets are saved with their 8th bits set to zero, and
173 are distinguished from one another by escape sequences.
174
175 Yet another alternative is the following:
176
177 @lisp
178 (set-default-file-coding-system *ctext*)
179 @end lisp
180
181 You cannot specify *big5* as file-coding-system if the file contains
182 both GB and BIG5.
183
184 @end enumerate
185
186 @comment ------------------------------------------------------------
187 @node Using cWnn, Quail for Chinese, Coding-system for Chinese, Chinese
188 @subsection Using cWnn
189
190 The primary method for inputing Chinese is to communicate with cserver
191 of cWnn via Egg system. cserver is a network-wide pinyin-hanzi
192 conversion server. It receives pinyin sequences and returns hanzis.
193
194 To use cserver, cWnn (version 4.108 or later) should have been
195 installed. cWnn is bound to Wnn, and available from FTP sites of Mule.
196 SiSheng fonts are also necessary. (See @xref{Chinese Fonts}.)
197
198 Note that the current version of Egg supports only GB characters.
199 If you want to input BIG5, or if you cannot use cserver for some
200 reason, see @xref{Quail for Chinese}.
201
202 To use cserver, you must specify the hostname on which cserver is
203 running. Add the following lines in your @file{~/.emacs} file:
204
205 @lisp
206 (set-cwnn-host-name "hostname")
207 @end lisp
208
209 @code{"hostname"} must be replaced by the real hostname on which
210 cserver is really running.
211
212 To input chinese, type @kbd{C-\}. Make sure that the mode-line has
213 changed. Now you can enter pinyin. You may type several words at once.
214 Then hit @key{SPC} to convert what you entered. If the resulting hanzi
215 is different from what you want, hit @key{SPC} again. Each time you hit
216 @key{SPC}, cserver returns another alternative.
217
218 Here are some important key bindings in the conversion mode:
219
220 @table @kbd
221 @item SPC
222 get another alternative
223
224 @item RET
225 confirm (accept that hanzi)
226
227 @item C-f
228 move to next word
229
230 @item C-b
231 move to previous word
232
233 @item C-i
234 make current word shorter
235
236 @item C-o
237 make current word longer
238
239 @item C-g
240 quit
241 @end table
242
243 At the very first time of usig cserver, you may be asked if you
244 want to make dictionaries. Just type @kbd{yes} to all questions.
245
246 To quit from Chinese input mode, type @kbd{C-\} again.
247
248 For more information, see @xref{Top, , Egg, egg}.
249
250 @comment ------------------------------------------------------------
251 @node Quail for Chinese, Running Mule in cxterm, Using cWnn, Chinese
252 @subsection Quail for Chinese
253
254 For those who want to input BIG5 or who cannot use cserver for some
255 reason, Mule provides another input method called @dfn{quail}. Quail is
256 included in the standard distribution of Mule. If you are familiar with
257 cxterm, it would be very easy to use quail, as quail supports all of the
258 input method provided by X11R5 cxterm.
259
260 All input methods called @samp{XXX.tit} in X11R5 cxterm are already
261 registered in Mule. To use some of them, just type @kbd{C-]} and select
262 a package you want by @kbd{M-s}. The following packages are avairalbe
263 now.
264
265 @example
266 py, tonepy, sw, punct, qj, ccdospy, ctcps3, etzy, py-b5, zozy, qj-b5,
267 punct-b5
268 @end example
269
270 In the document of X11R5 cxterm, each input method is explained as
271 follows. (Quoted from @file{cxterm/dict/tit/README}.)
272
273 [GB input methods]
274
275 @table @asis
276 @item py
277 Standard PinYin input method
278
279 @item qj
280 Quan Jiao -- double-byte ASCII in GB coding
281
282 @item punct
283 Punctuation marks input table
284
285 @item sw
286 CCDOS style ShouWei input method (first & last part)
287
288 @item tonepy
289 Standard PinYin input method with tone 1-5
290
291 @item ccdospy
292 CCDOS style abbreviated PinYin input method
293
294 @item ctlau
295 Sidney Lau's Cantonese transcription scheme
296 @end table
297
298 [BIG5 input methods]
299
300 @table @asis
301 @item py-b5
302 Standard PinYin input method with tones
303
304 @item qj-b5
305 Quan Jiao -- double-byte ASCII in BIG5 coding
306
307 @item punct-b5
308 Punctuation marks input table
309
310 @item ctlaob
311 Sidney Lau's Cantonese transcription scheme
312
313 @item zozy
314 ETen ZhuYin (phonetic) input in second keyboard layout as in ZeroOne,
315 DACHEN system, etc.
316
317 @item etzy
318 ETen ZhuYin (phonetic) input in ETen keyboard layout
319 @end table
320
321 In quail, you can toggle ASCII input mode and Chinese input mode by
322 typing @kbd{C-]}. @kbd{M-z} in quail-mode shows a help.
323
324 @quotation
325 [NOTE] You can easily create a quail-package from cxterm's tit format
326 file. Please try the following command from your shell,
327
328 @example
329 @samp{% mule -batch -l quail/tit -f batch-tit-to-quail [dirname|filename] ...}
330 @end example
331 @end quotation
332
333 @comment ------------------------------------------------------------
334 @node Running Mule in cxterm, PIG-mode, Quail for Chinese, Chinese
335 @subsection Running Mule in cxterm
336
337 You can use various hanzi input method of cxterm by running Mule in a
338 cxterm window. In this case you can use the latest veresion of cxterm.
339 To run Mule in a cxterm window, execute the following command:
340
341 @example
342 @samp{% mule -nw}
343 @end example
344
345 Make sure that you have configured cxterm so that it matches Mule's
346 coding-system. Set cxterm to GB-mode if you use *euc-china* in Mule; to
347 BIG5-mode if you use *big5*. Note that you cannot use GB and BIG5
348 simultaneously in cxterm.
349
350 @comment ------------------------------------------------------------
351 @node PIG-mode, Chinese News, Running Mule in cxterm, Chinese
352 @subsection PIG-mode
353
354 PIG-mode is a very convenient system. It converts several characters
355 at once, accepts abbreviated pinyin input, etc. It is available via
356 anonymous FTP from the following sites:
357
358 @example
359 etlport.etl.go.jp [192.31.197.99]: /pub/mule/contrib
360 sh.wide.ad.jp [133.4.11.11]: /JAPAN/mule/mule-1.0/contrib
361 ftp.mei.co.jp [132.182.49.2]:/public/free/gnu/emacs/Mule/contrib
362 ftp.funet.fi [128.214.6.100]:/pub/gnu/emacs/mule/mule-1.0/contrib
363 @end example
364
365 A useful readme file is included.
366
367 According to burt@@dfki.uni-kl.de, the definition of the following
368 function is missing:
369
370 @lisp
371 (defun pig-parse-cz (string)
372 (let ((indx 0) list)
373 (while (string-match "\\([^0-5]+[0-5]\\)-*" string indx)
374 (setq list (cons (substring string (match-beginning 1) (match-end 1))
375 list))
376 (setq indx (match-end 0)))
377 (nreverse list)))
378 @end lisp
379
380 @comment ------------------------------------------------------------
381 @node Chinese News, , PIG-mode, Chinese
382 @subsection Chinese News
383
384 It is possible to read the articles posted to @samp{alt.chinese.text}
385 and @samp{alt.chinese.text.big5} if you use @code{GNUS} and
386 @code{gnusutil} together in Mule.
387
388 Add the following line in your @file{~/.emacs} file:
389
390 @lisp
391 (setq gnus-group-mode-hook 'gnusutil-initialize)
392 @end lisp
393
394 Now you can read @samp{alt.chinese.text} and
395 @samp{alt.chinese.text.big5} in hanzi.
396
397 Once you install gnusutil, no special procedure is required to post an
398 article to those newsgroups. You can write your article in hanzi and
399 can post it as if it were written in ASCII. gnusutil automatically
400 converts your hanzi article to appropriate format. Use a GB input
401 method for @samp{alt.chinese.text}, and a BIG5 input method for
402 @samp{alt.chinese.text.big5}.
403
404 @comment ============================================================
405 @node Japanese, Korean, Chinese, Top
406 @section Japanese
407
408 [IN PREPARATION]
409
410 This section describes how to read and write Japanese in Mule. To
411 make Japanese the primary environment, the following line should be
412 included in the @file{$MULE/lisp/site-init.el} file at the compile time:
413
414 @lisp
415 (set-primary-environment 'japanese)
416 @end lisp
417
418 If your system administrator did not do this setting, you have to
419 include the above line in your @file{~/.emacs} file.
420
421 To print Japanese text, see the online manual @samp{m2ps(1)}
422 and @xref{Top, , m2ps, m2ps}.
423
424 @comment ============================================================
425 @node Korean, Thai, Japanese, Top
426 @section Korean
427
428 This section describes how to read and write Korean in Mule. To make
429 Korean the primary environment, the following line should be included
430 in the @file{$MULE/lisp/site-init.el} file at the compile time:
431
432 @lisp
433 (set-primary-environment 'korean)
434 @end lisp
435
436 If your system administrator did not do this setting, you have to
437 include the above line in your @file{~/.emacs} file.
438
439 To print Korean text, see the online manual @samp{m2ps(1)}
440 and @xref{Top, , m2ps, m2ps}.
441
442 @menu
443 * Korean Character Set:: KSC5601
444 * Inputing Hangul:: Quail Package for Hangul
445 * Inputing Hanja:: Quail Package for Hanja
446 @end menu
447
448 @comment ------------------------------------------------------------
449 @node Korean Character Set, Inputing Hangul, , Korean
450 @subsection Korean Character Set
451
452 Mule uses the KSC5601 character set for displaying Korean. Unless you
453 have a terminal that supports KSC5601 and will run Mule exclusively on
454 it, you have use the X window system on which appropriate KSC5601 fonts
455 are installed.
456
457 If the Korean fonts have been properly installed, you should be able
458 to read the following text:
459
460 @example
461 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
462 $(C@T4O4Y(B.
463 GNU Emacs Ver.18 $(C@;(B $(C1bCJ7N(B $(CGQ(B Mule Ver.1 $(C0z(B GNU Emacs Ver.19 $(C8&(B $(C1bCJ(B
464 $(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
465 $(C@T4O4Y(B.
466 @end example
467
468 Bear in mind that all fonts used in Mule must be of fixed width.
469 Furthermore, the width of the Korean characters must be exactly twice as
470 wide as the ASCII characters. For the detail of font specification, see
471 @xref{Font, , Font, mule}.
472
473 In most cases, the coding-system that you want to use for file I/O
474 would be either @code{*iso-2022-kr*} or @code{*euc-korea*}.
475
476 @code{*iso-2022-kr*} is the coding-system that is used in Korea for
477 e-mail communication. It is a 7-bit encoding and uses locking shift.
478 In the current version of Mule, it is the default file-coding-system for
479 Korean.
480
481 On the other hand, @code{*euc-korea*} is an 8-bit encoding. If the
482 8th bit is set to zero, it represents an ASCII character; if set to one,
483 a Korean character. If you rarely use other character sets, this
484 coding-system would be useful. To use @code{*euc-korea*} for file I/O,
485 add the following line in your @file{~/.emacs} file:
486
487 @lisp
488 (set-default-file-coding-system *euc-korea*)
489 @end lisp
490
491 Another frequently used coding-system is @code{*junet*}. It is the
492 default coding-system in the @samp{mule@@etl.go.jp} mailing list for
493 multilingual communication. To use @code{*junet*} for file I/O, add the
494 following line to your @file{~/.emacs} file:
495
496 @lisp
497 (set-default-file-coding-system *junet*)
498 @end lisp
499
500 @comment ------------------------------------------------------------
501 @node inputing Hangul, Inputing Hanja, Korean Character Set, Korean
502 @subsection Inputing Hangul
503
504 To input Hangul, use the Quail system. The Quail system converts one
505 or more ASCII characters into a Hangul. There are two different
506 @dfn{Quail packages} for Hangul, namely @code{hangul} and
507 @code{hangul3}.
508
509 @code{hangul} uses the translation table below:
510
511 @example
512 $(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
513 KEY: r R s e E f a q Q t T d w W c z x
514
515 $(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
516 KEY: v g k i j p P u h y n b m l o O
517 @end example
518
519 Here are some examples:
520
521 @example
522 <key sequence> r k r k
523 <string inserted> $(C$!(B $(C0!(B $(C0"(B $(C0!0!(B
524
525 <key sequence> r k r <M-SPC> k
526 <string inserted> $(C$!(B $(C0!(B $(C0"(B $(C0"(B $(C0"$?(B
527 @end example
528
529 On the other hand, @code{hangul3} uses the translation table below:
530
531 @example
532 $(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
533 KEY : k kk h u uu y i ; ;; n nn j l ll o 0 '
534
535 $(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
536 KEY : p m f r 6 R t c e 7 v /f /r /d 4 b 9t
537 also: / 9
538
539 $(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
540 KEY : 9c 9d 5 g 8 d x F xq s s! S A w D C w3
541
542 $(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
543 KEY : wq wW V z 3 X q 2 a ! Z E W Q 1
544 @end example
545
546 An example follows:
547
548 @example
549 <key sequence> k f x
550 <string inserted> $(C$!(B $(C0!(B $(C0"(B
551 @end example
552
553 Hit @kbd{C-]} to turn into quail-mode. If you do not see the string
554 @samp{[$(CGQ1[(B 2$(C9z=D(B]} or @samp{[$(CGQ1[(B 3$(C9z=D(B]} in the mode-line, then hit
555 @kbd{M-s} and specify the package name @samp{hangul} or @samp{hangul3}.
556 @key{SPC} works as the completion key. If you hit @key{RET} without
557 specifying a package name, the default package (shown in the
558 parentheses) will be used.
559
560 To exit quail-mode, hit @kbd{C-]} once again.
561
562 For the detail of the Quail system, see @xref{Usage of Quail, , ,
563 quail}.
564
565 @comment ------------------------------------------------------------
566 @node Inputing Hanja, , Inputing Hangul, Korean
567 @subsection Inputing Hanja
568
569 To input Hanja, also use the Quail system. The package name for Hanja
570 input is @code{hanja-ksc}. To specify this package, hit @kbd{M-s} in
571 quail-mode and input @kbd{hanja-ksc}. Make sure the mode-line shows the
572 string "2$(C9z=D(BKSC$(CySm.(B".
573
574 For the detail of the Quail system, see @xref{Usage of Quail, , ,
575 quail}.
576
577 @comment ============================================================
578 @node Thai, Vietnamese, Korean, Top
579 @section Thai
580
581 This section describes how to read and write Thai in Mule. To make
582 Thai the primary environment, the following line should be included
583 in the @file{$MULE/lisp/site-init.el} file at the compile time:
584
585 @lisp
586 (set-primary-environment 'thai)
587 @end lisp
588
589 If your system administrator did not do this setting, you have to
590 include the above line in your @file{~/.emacs} file.
591
592 To print Thai text, see the online manual @samp{m2ps(1)}
593 and @xref{Top, , m2ps, m2ps}.
594
595 @menu
596 * Thai Character Set:: Character Set, Fonts, Coding-system
597 * Inputing Thai:: Quail Package for Thai
598 @end menu
599
600 @comment ------------------------------------------------------------
601 @node Thai Character Set, Inputing Thai, , Thai
602 @subsection Thai Character Set
603
604 Mule uses the TIS620 character set for displaying Thai. Unless you
605 have a terminal that supports TIS620 and will run Mule exclusively on
606 it, you have to use the X window system on which appropriate TIS620
607 fonts are installed.
608
609 Furthermore, you have to increase Mule's line spaces to display vowels
610 and tone marks. If you are using a 12x24 pixels ASCII font, start up
611 Mule with the following command:
612
613 @example
614 @samp{% mule -lsp 5+0}
615 @end example
616
617 If the Thai fonts have been properly installed, you should be able to
618 read the following text, which contains both ASCII and Thai characters:
619
620 @example
621 Mule 0,T$W1M(B editor GNU Emacs 0,T7Uh106Y1!`0>Th1A$GRAJRARC6c0Ki1c0*i1d04i10!Q1:@RIRKERB(B ,Tf(B ,T@RIR(B
622 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
623 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
624 @end example
625
626 Bear in mind that all fonts used in Mule must be of fixed width.
627 Furthermore, the width of the Thai characters must be the same as
628 the ASCII characters. For the detail of font specification, see
629 @xref{Font, , Font, mule}.
630
631 In most cases, the coding-system that you want to use in file I/O
632 would be either @code{*tis620*} or @code{*junet*}.
633
634 @code{*tis620*} is an 8-bit encoding. If the 8th bit is set to
635 zero, it represents an ASCII character; if set to one, a Thai
636 character. In the current version of Mule, it is the primary
637 coding-system for Thai. If you rarely use other character sets,
638 this coding-system would be useful.
639
640 On the other hand, @code{*junet*} is a 7-bit encoding and uses escape
641 sequences. It is the default coding-system in the
642 @samp{mule@@etl.go.jp} mailing list for multilingual communication. To
643 use @code{*junet*} for file I/O, add the following line to your
644 @file{~/.emacs} file:
645
646 @lisp
647 (set-default-file-coding-system *junet*)
648 @end lisp
649
650 @comment ------------------------------------------------------------
651 @node Inputing Thai, , Thai Character Set, Thai
652 @subsection Inputing Thai
653
654 To input Thai characters, use the Quail system. The Quail system
655 converts one or more ASCII characters into a Thai character.
656
657 Hit @kbd{C-]} to turn into quail-mode. If you do not see the string
658 @samp{[Thai]} in the mode-line, then hit @kbd{M-s} and specify the
659 package name @samp{thai}. @key{SPC} works as the completion key. If
660 you hit @key{RET} without specifying a package name, the default package
661 (shown in the parentheses) will be used.
662
663 The Thai keymap in quail-mode looks like this:
664
665 @example
666 ,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
667 ,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,
668 ,T?D(B ,TK&(B ,T!/(B ,T4b(B ,T`,(B ,Tig(B ,Thk(B ,TRI(B ,TJH(B ,TG+(B ,T'F(B
669 ,T<(B( ,T;(B) ,Ta)(B ,TMN(B ,TTZ(B ,TWl(B 0,T7n1(B ,TA2(B ,TcL(B ,T=(B?
670 @end example
671
672 The difference from the ordinal Thai keyboards are:
673
674 @itemize @bullet
675 @item
676 @samp{,T_(B} and @samp{,To(B} are assigned to @key{\} and @key{|}
677
678 @item
679 @samp{,T#(B} and @samp{,T%(B} are assigned to @key{`} and @key{~}
680
681 @item
682 We don't know where to assign characters @samp{,Tz(B} and @samp{,T{(B}
683 @end itemize
684
685 To exit quail-mode, hit @kbd{C-]} once again.
686
687 For the detail of the Quail system, see @xref{Usage of Quail, , ,
688 quail}.
689
690 @comment ============================================================
691 @node Vietnamese, Latin Script Languages, Thai, Top
692 @section Vietnamese
693
694 This section describes how to read and write Vietnamese in Mule. To
695 make Vietnamese the primary environment, the following line should be
696 included in the @file{$MULE/lisp/site-init.el} file at the compile time:
697
698 @lisp
699 (set-primary-environment 'viet)
700 @end lisp
701
702 If your system administrator did not do this setting, you have to
703 include the above line in your @file{~/.emacs} file.
704
705 To print Vietnamese text, see the online manual @samp{m2ps(1)}
706 and @xref{Top, , m2ps, m2ps}. Note that you have to use @code{coco} (COde
707 COnversion library) to print Vietnamese text. The best way is to use the
708 @code{any2ps} shell script. Both coco and any2ps can be found in Mule
709 FTP sites.
710
711 @menu
712 * Vietnamese Character Set:: Character Set, Fonts, Coding-system
713 * Inputing Vietnamese:: Quail Package for Vietnamese
714 @end menu
715
716 @comment ------------------------------------------------------------
717 @node Vietnamese Character Set, Inputing Vietnamese, , Vietnamese
718 @subsection Vietnamese Character Set
719
720 Mule supports both VISCII and VSCII fonts to display Vietnamese text.
721 Unless you have a terminal that supports either VISCII or VSCII, and
722 will run Mule exclusively on it, you have to use the X window system on
723 which appropriate Vietnamese fonts are installed.
724
725 The default is set to VISCII. If you have a VISCII terminal or VISCII
726 fonts for the X window system, you do not have to do anything special.
727 On the other hand, if you are going to use either a VSCII terminal or
728 VSCII fonts, include the following two lines in your @file{~/.emacs}
729 file:
730
731 @lisp
732 (x-set-ccl lc-vn-1 ccl-x-vn-1-vscii)
733 (x-set-ccl lc-vn-2 ccl-x-vn-2-vscii)
734 @end lisp
735
736 If the fonts have been properly installed, you should be able to read
737 the following text, which contains both ASCII and Vietnamese characters:
738
739 @example
740 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
741 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
742 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
743 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
744 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
745 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
746 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
747 Th,1a(Bi Lan.
748 @end example
749
750 Bear in mind that all fonts used in Mule must be of fixed width.
751 Furthermore, the width of the Vietnamese characters must be the same as
752 the ASCII characters. For the detail of font specification, see
753 @xref{Font, , Font, mule}.
754
755 Mule supports three coding-systems for Vietnamese, i.e.,
756 @code{*viscii*}, @code{*vscii*} and @code{*viqr*}. These are all 8-bit
757 coding systems. The coding-system is independent of the fonts. For
758 example, you can use a VISCII font to display text written in *vscii*,
759 and vice versa. The default coding-system is set to *viscii*. If you
760 want to change this, include either
761
762 @lisp
763 (setq *coding-category-bin* '*vscii*)
764 (set-default-file-coding-system '*vscii*)
765 @end lisp
766
767 or
768
769 @lisp
770 (setq *coding-category-bin* '*viqr*)
771 (set-default-file-coding-system '*viqr*)
772 @end lisp
773
774 in your @file{~/.emacs} file.
775
776 All of the three coding-systems can represent only Vietnames and
777 ASCII. If you want to use other foreign languages at the same time, add
778 the following line in your @file{~/.emacs} file:
779
780 @lisp
781 (set-default-file-coding-system '*junet*)
782 @end lisp
783
784 The @code{*junet*} coding-system is a 7-bit encoding and uses escape
785 sequences. It is the default coding-system in the
786 @samp{mule@@etl.go.jp} mailing list for multilingual communication.
787
788 @comment ------------------------------------------------------------
789 @node Inputing Vietnamese, , Vietnamese Character Set, Vietnamese
790 @subsection Inputing Vietnamese
791
792 To input Vietnamese characters, use the Quail system. The Quail
793 system converts one or more ASCII characters into a Vietnamese
794 character.
795
796 Hit @kbd{C-]} to turn into quail-mode. If you do not see the string
797 @samp{[VIQR]} in the mode-line, then hit @kbd{M-s} and specify the
798 package name @samp{viqr}. @key{SPC} works as the completion key. If
799 you hit @key{RET} without specifying a package name, the default package
800 (shown in the parentheses) will be used.
801
802 The following table shows how to put diacritical marks:
803
804 @example
805 effect | postfix | examples
806 ------------+---------+----------
807 breve | ( | a( -> ,1e(B
808 circumflex | ^ | a^ -> ,1b(B
809 horn | + | o+ -> ,1=(B
810 ------------+---------+----------
811 acute | ' | a' -> ,1a(B
812 grave | ` | a` -> ,1`(B
813 hook above | ? | a? -> ,1d(B
814 tilde | ~ | a~ -> ,1c(B
815 dot below | . | a. -> ,1U(B
816 ------------+---------+----------
817 d bar | dd | dd -> ,1p(B
818 ------------+---------+----------
819 no compose | \ | a\. -> a.
820 ------------+---------+----------
821 combination| (~ | a(~ -> ,1G(B
822 @end example
823
824 To exit quail-mode, hit @kbd{C-]} once again.
825
826 For the detail of the Quail system, see @xref{Usage of Quail, , ,
827 quail}.
828
829 @comment ============================================================
830 @node Latin Script Languages, Cyrillic Script Languages, Vietnamese, Top
831 @section Latin Script Languages
832
833 This section describes how to read and write Latin script languages
834 (roughly speaking, European languages) in Mule. To make Latin script
835 the primary environment, the following line should be included in the
836 @file{$MULE/lisp/site-init.el} file at the compile time:
837
838 @lisp
839 (set-primary-environment 'european)
840 @end lisp
841
842 If your system administrator did not do this setting, you have to
843 include the above line in your @file{~/.emacs} file.
844
845 By default, the above line makes Mule use ISO 8859-1 (aka Latin-1 or
846 CTEXT) as the primary character set. If you want to use latin-2,
847 latin-3, etc., see @xref{Other Latin Character Sets}.
848
849 To print Latin script text, see the online manual @samp{m2ps(1)}
850 and @xref{Top, , m2ps, m2ps}.
851
852 @menu
853 * Latin-1:: aka ISO 8859-1 and CTEXT
854 * Other Latin Character Sets:: Latin-2, Latin-3, Latin-4 and Latin-5
855 @end menu
856
857 @comment ------------------------------------------------------------
858 @node Latin-1, Other Latin Character Sets, , Latin Script Languages
859 @subsection Latin-1
860
861 @menu
862 * Displaying Latin-1::
863 * Inputing Latin-1::
864
865 @comment ............................................................
866 @node Displaying Latin-1, Inputing Latin-1, , Latin-1
867 @subsubsection Displaying Latin-1
868
869 Unless you have a terminal that supports ISO 8859-1 and will run Mule
870 exclusively on it, you have to use the X window system on which
871 appropriate ISO 8859-1 fonts are installed. Most, if not all, X window
872 systems have ISO 8859-1 fonts by default, so you do not need to worry
873 about it too much. If ISO 8859-1 fonts are already available on your
874 system, you should be able to read the following French sentence that
875 contains many accented characters:
876
877 @example
878 ,A+(BTout Fran,Ag(Bais de bon go,A{(Bt, m,Aj(Bme r,Ai(Bsident de Capharna,A|(Bm, doit payer la
879 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
880 @end example
881
882 Bear in mind that all fonts used in Mule must be of fixed width. For
883 the detail of font specification, see @xref{Font, , Font, mule}.
884
885 In most cases, the coding-system that you want to use in file I/O
886 would be either @code{*ctext*} or @code{*junet*}.
887
888 @code{*ctext*} is an 8-bit encoding. If the 8th bit is set to zero,
889 it represents an ASCII character. If the 8th bit is set to one, it
890 represents a Latin-1 character. In the current version of Mule, it is
891 the primary coding-system for Latin-1 text. If you rarely use other
892 coding-systems, this one would be useful. You can use the name
893 @code{*iso-8859-1*} as an alias for @code{*ctext*}. There is no
894 difference between the two names.
895
896 On the other hand, @code{*junet*} is a 7-bit encoding and uses escape
897 sequences. It is the default coding-system in the
898 @samp{mule@@etl.go.jp} mailing list for multilingual communication. To
899 use @code{*junet*} for file I/O, add the following line to your
900 @file{~/.emacs} file:
901
902 @lisp
903 (set-default-file-coding-system *junet*)
904 @end lisp
905
906 @comment ............................................................
907 @node Inputing Latin-1, , Displaying Latin-1, Latin-1
908 @subsubsection Inputing Latin-1
909
910 Some keyboards directly generate 8-bit codes for ISO 8859-1
911 characters. In such cases, you can input ISO 8859-1 characters without
912 difficulty.
913
914 Even if your keyboard does not generate 8-bit codes, you can input ISO
915 8859-1 characters using the Quail system. The Quail system converts one
916 or more ASCII characters into an ISO 8859-1 character. A number of
917 conversion tables are provided for this purpose. Each conversion table
918 is called a @dfn{package}.
919
920 Hit @kbd{C-]} to turn into quail-mode. Then hit @kbd{M-s} and specify
921 the package name that you want to use (see below). @key{SPC} works as
922 the completion key. If you hit @key{RET} without specifying a package
923 name, the default package (shown in the parentheses) will be used.
924
925 The Quail packages are divided into two groups. The first one is for
926 naive users. Most of the accented letters can be input by composing two
927 characters. For example, you will get an @samp{,Ai(B} (@samp{e} with acute
928 accent) by typing an @samp{e} followed by a @samp{'} (single quote).
929
930 @example
931 PACKAGE NAME LANGUAGE
932 --------------------------------
933 latin-1 general purpose
934 british British
935 danish Danish
936 finnish Finnish
937 french French
938 german German
939 icelandic Icelandic
940 italian Italian
941 norwegian Norwegian
942 scandinavian Swedish, Norwegian, Danish, Icelandic and Finnish
943 spanish Spanish
944 swedish Swedish
945 @end example
946
947 The second package group was made for those who find the first package
948 group too awkward. The principle of this group is @dfn{the less
949 strokes, the better}. Most of the special characters in each language
950 are allocated to somewhere on the keyboard so that you can type them
951 with a single stroke. You can type very quickly once you learn the
952 layout by heart.
953
954 @example
955 PACKAGE NAME LANGUAGE
956 -------------------------------
957 azerty French
958 dnsh Danish
959 dvorak English
960 fnnsh Finnish
961 frnch French
962 grmn German
963 iclndc Icelandic
964 itln Italian
965 nrwgn Norwegian
966 spnsh Spanish
967 swdsh Swedish
968 @end example
969
970 To see the composition table or the keyboard mapping of a package,
971 select that package and hit @kbd{M-z}. To exit quail-mode, hit
972 @kbd{C-]} once again.
973
974 For the detail of the Quail system, see @xref{Usage of
975 Quail, , , quail}.
976
977 @comment ------------------------------------------------------------
978 @node Other Latin Character Sets, , Latin-1, Latin Script Languages
979 @subsection Other Latin Character Sets
980
981 @menu
982 * Displaying Other Latin Character Sets::
983 * Inputing Other Latin Character Sets::
984 @end menu
985
986 @comment ............................................................
987 @node Displaying Other Latin Character Sets, Inputing Other Latin Character Sets, , Other Latin Character Sets
988 @subsubsection Displaying Other Latin Character Sets
989
990 Unless you have a terminal that supports ISO 8859-x and will run Mule
991 exclusively on it, you have to use the X window system on which
992 appropriate ISO 8859-x fonts are installed. Use the following lines to
993 check whether the fonts have been installed or not. All the lines
994 contain four vowels (@samp{A}, @samp{E}, @samp{I} and @samp{U}) with
995 acute accent both in upper case and in lower case:
996
997 @example
998 ISO 8859-2 (Latin-2): ,BA(B ,Ba(B ,BI(B ,Bi(B ,BM(B ,Bm(B ,BZ(B ,Bz(B
999 ISO 8859-3 (Latin-3): ,CA(B ,Ca(B ,CI(B ,Ci(B ,CM(B ,Cm(B ,CZ(B ,Cz(B
1000 ISO 8859-4 (Latin-4): ,DA(B ,Da(B ,DI(B ,Di(B ,DM(B ,Dm(B ,DZ(B ,Dz(B
1001 ISO 8859-9 (Latin-5): ,MA(B ,Ma(B ,MI(B ,Mi(B ,MM(B ,Mm(B ,MZ(B ,Mz(B
1002 @end example
1003
1004 Bear in mind that all fonts used in Mule must be of fixed width.
1005 Furthermore, the width of the ISO 8859-x characters must be the same as
1006 the ASCII characters. For the detail of font specification, see
1007 @xref{Font, , Font, mule}.
1008
1009 In most cases, the coding-system that you want to use in file I/O
1010 would be either @code{*junet*} or @code{*iso-8859-x*}, where x = 2, 3, 4
1011 or 9.
1012
1013 @code{*junet*} is a 7-bit encoding and uses escape sequences. It is
1014 the default coding-system in the @samp{mule@@etl.go.jp} mailing list for
1015 multilingual communication. To use @code{*junet*} for file I/O, add the
1016 following line to your @file{~/.emacs} file:
1017
1018 @lisp
1019 (set-default-file-coding-system *junet*)
1020 @end lisp
1021
1022 On the other hand, @code{*iso-8859-x*} is an 8-bit encoding. If the
1023 8th bit is set to zero, it represents an ASCII character; if set to one,
1024 a ISO 8859-x character. If you use only one character set (other than
1025 ASCII), this coding-system would be useful. To use this coding-system
1026 for file I/O, add ONE of the following lines to your @file{~/.emacs}
1027 file:
1028
1029 @lisp
1030 (set-default-file-coding-system *iso-8859-2*)
1031 (set-default-file-coding-system *iso-8859-3*)
1032 (set-default-file-coding-system *iso-8859-4*)
1033 (set-default-file-coding-system *iso-8859-9*)
1034 @end lisp
1035
1036 [NOTE] Latin-5 is another name for ISO 8859-9, not for ISO 8859-5. ISO
1037 8859-5 is a Latin/Cyrillic character set.
1038
1039 @comment ............................................................
1040 @node Inputing Other Latin Character Sets, , Displaying Other Latin Character Sets, Other Latin Character Sets
1041 @subsubsection Inputing Other Latin Character Sets
1042
1043 To input Latin-x characters, use the Quail system. The Quail system
1044 converts one or more ASCII characters into a Latin-x character. A
1045 number of conversion tables are provided for this purpose. Each
1046 conversion table is called a @dfn{package}.
1047
1048 Hit @kbd{C-]} to turn into quail-mode. Then hit @kbd{M-s} and specify
1049 the package name that you want to use (see below). @key{SPC} works as the
1050 completion key. If you hit @key{RET} without specifying a package name,
1051 the default package (shown in the parentheses) will be used.
1052
1053 Here is the table of Quail packages for Latin-x characters:
1054
1055 @example
1056 PACKAGE NAME TARGET LANGUAGE
1057 ------------------------------------------------------
1058 latin-2 all Latin-2 (ISO 8859-2) languages
1059 latin-3 all Latin-3 (ISO 8859-3) languages
1060 latin-4 all Latin-4 (ISO 8859-4) languages
1061 latin-5 all Latin-5 (ISO 8859-9) languages
1062 esperanto specific to Esperanto (Latin-3 coding)
1063 turkish spacific to Turkish (Latin-3 coding)
1064 @end example
1065
1066 To see the conversion table of a package, select that package and hit
1067 @kbd{M-z}. You can exit quail-mode by @kbd{C-]}. For the detail of the
1068 Quail system, see @xref{Usage of Quail, , , quail}.
1069
1070 @comment ============================================================
1071 @node Cyrillic Script Languages, Greek, Latin Script Languages, Top
1072 @section Cyrillic Script Languages
1073
1074 This section describes how to read and write Cyrillic script languages
1075 in Mule. To make Cyrillic script the primary environment, the following
1076 line should be included in the @file{$MULE/lisp/site-init.el} file at
1077 the compile time:
1078
1079 @lisp
1080 (set-primary-environment 'cyrillic)
1081 @end lisp
1082
1083 If your system administrator did not do this setting, you have to
1084 include the above line in your @file{~/.emacs} file.
1085
1086 To print Cyrillic text, see the online manual @samp{m2ps(1)}
1087 and @xref{Top, , m2ps, m2ps}.
1088
1089 @menu
1090 * Displaying Cyrillic::
1091 * Other Coding-systems for Russian::
1092 * Inputing Cyrillic::
1093 @end menu
1094
1095 @comment ------------------------------------------------------------
1096 @node Displaying Cyrillic, Other Coding-systems for Russian, , Cyrillic Script Languages
1097 @subsection Displaying Cyrillic
1098
1099 Mule uses the right half of the ISO 8859-5 character set for
1100 displaying Cyrillic. Unless you have a terminal that supports ISO
1101 8859-5 and will run Mule exclusively on it, you have to use the X window
1102 system on which appropriate ISO 8859-5 fonts are installed.
1103
1104 If the Cyrillic fonts have been properly installed, you should be able
1105 to read the following Ukrainian folk song:
1106
1107 @example
1108 ,L2WoR(B ,LQX(B ,Lo(B ,LQP]Tc`c(B
1109 ,LBP(B ,LY(B ,LWPS`PR(B, ,Li^(B ,LW]PR(B.
1110 ,LGU`UW(B ,Lbc(B ,LQP]Tc`c(B
1111 ,L1P]Tc`Xab^\(B ,LabPR(B.
1112 @end example
1113
1114 Bear in mind that all fonts used in Mule must be of fixed width.
1115 Furthermore, the width of the Cyrillic characters must be the same as
1116 the ASCII characters. For the detail of font specification, see
1117 @xref{Font, , Font, mule}.
1118
1119 In most cases, the coding-system that you want to use in file I/O
1120 would be either @code{*iso-8859-5*} or @code{*junet*}.
1121
1122 @code{*iso-8859-5*} is an 8-bit encoding. If the 8th bit is set to
1123 zero, it represents an ASCII character; if set to one, a Cyrillic
1124 character. In the current version of Mule, it is the primary
1125 coding-system for Cyrillic. If you rarely use other character sets,
1126 this coding-system would be useful.
1127
1128 On the other hand, @code{*junet*} is a 7-bit encoding and uses escape
1129 sequences. It is the default coding-system in the
1130 @samp{mule@@etl.go.jp} mailing list for multilingual communication. To
1131 use @code{*junet*} for file I/O, add the following line to your
1132 @file{~/.emacs} file:
1133
1134 @lisp
1135 (set-default-file-coding-system *junet*)
1136 @end lisp
1137
1138 @comment ------------------------------------------------------------
1139 @node Other Coding-systems for Russian, Inputing Cyrillic, Displaying Cyrillic, Cyrillic Script Languages
1140 @subsection Other Coding-systems for Russian
1141
1142 If you need only Russian, two other coding-systems are available in
1143 addition to @code{*junet*} and @code{*iso-8859-5*}, namely,
1144 @code{*koi8*} and @code{*alternativnyj*}. Both of them are of 8-bit
1145 encoding.
1146
1147 @code{*koi8*} is the coding system used in the @samp{relcom.*} netnews
1148 groups. They say it is widely used in the world of UNIX systems, too.
1149 If you want to use @code{*koi8*} as the default character set, include
1150 the following line in your @file{~/.emacs} file:
1151
1152 @lisp
1153 (set-cyrillic-environment-koi8)
1154 @end lisp
1155
1156 It is possible to read the news articles posted to @samp{relcom.*} if
1157 you use @code{GNUS} and @code{gnusutil} together in Mule. For this
1158 purpose, add the following lines in your @file{~/.emacs} file (in
1159 addition to the above setting):
1160
1161 @lisp
1162 (setq gnus-group-mode-hook 'gnusutil-initialize)
1163 (autoload 'gnusutil-initialize "gnusutil")
1164 (autoload 'gnusutil-add-group "gnusutil")
1165 (gnusutil-add-group "relcom" '*koi8*)
1166 @end lisp
1167
1168 @code{*alternativnyj*} is the coding-system widely used in DOS
1169 systems. It is basically the same as so called CP866. If you want to
1170 read and write Russian text always in this DOS format, include the
1171 following line in your @file{~/.emacs} file:
1172
1173 @lisp
1174 (set-cyrillic-environment-alternativnyj)
1175 @end lisp
1176
1177 @comment ------------------------------------------------------------
1178 @node Inputing Cyrillic, , Other Coding-systems for Russian, Cyrillic Script Languages
1179 @subsection Inputing Cyrillic
1180
1181 To input Cyrillic characters, use the Quail system. The Quail system
1182 converts one or two ASCII characters into a Cyrillic character. A
1183 number of conversion tables are provided for this purpose. Each
1184 conversion table is called a @dfn{package}.
1185
1186 Hit @kbd{C-]} to turn into quail-mode. Then hit @kbd{M-s} and specify
1187 the package name that you want to use (see below). @key{SPC} works as the
1188 completion key. If you hit @key{RET} without specifying a package name,
1189 the default package (shown in the parentheses) will be used.
1190
1191 Here is the table of Quail packages for Cyrillic characters:
1192
1193 @example
1194 PACKAGE NAME LANGUAGES NOTES
1195 -----------------------------------------------------------------
1196 jcuken Russian standard layout for Russian
1197 macedonian Macedonian JUS.I.K1.004
1198 serbian Serbian JUS.I.K1.005
1199 byelorussian Byelorussian derived from JUS.I.K1
1200 ukrainian Ukrainian derived from JUS.I.K1
1201 yawerty general purpose based on Roman transcription
1202 @end example
1203
1204 To see the conversion table of a package, select that package and hit
1205 @kbd{M-z}. You can exit quail-mode by @kbd{C-]}. For the detail of the
1206 Quail system, see @xref{Usage of Quail, , , quail}.
1207
1208 @comment ============================================================
1209 @node Greek, Hebrew, Cyrillic Script Languages, Top
1210 @section Greek
1211
1212 This section describes how to read and write Greek in Mule. To make
1213 Greek the primary environment, the following line should be included in
1214 the @file{$MULE/lisp/site-init.el} file at the compile time:
1215
1216 @lisp
1217 (set-primary-environment 'greek)
1218 @end lisp
1219
1220 If your system administrator did not do this setting, you have to
1221 include the above line in your @file{~/.emacs} file.
1222
1223 To print Greek text, see the online manual @samp{m2ps(1)}
1224 and @xref{Top, , m2ps, m2ps}.
1225
1226 @menu
1227 * Greek Character Set:: Character Set, Fonts, Coding-system
1228 * Inputing Greek:: Quail Package for Greek
1229 @end menu
1230
1231 @comment ------------------------------------------------------------
1232 @node Greek Character Set, Inputing Greek, , Greek
1233 @subsection Greek Character Set
1234
1235 Mule uses the right half of the ISO 8859-7 character set for
1236 displaying Greek. Unless you have a terminal that supports ISO 8859-7
1237 and will run Mule exclusively on it, you have to use the X window system
1238 on which appropriate ISO 8859-7 fonts are installed.
1239
1240 If the Greek fonts have been properly installed, you should be able to
1241 read the following poem:
1242
1243 @example
1244 ,FK_co(B ,Faj|la(B
1245 ,Fha(B ,Fido}le(B ,Ftir(B ,Falucdaki]r(B ,Fm(B',Famh_foum(B
1246 ,Fta(B ,Fl\qlaqa(B ,Fma(B ,Fk\lpoum(B ,Fstom(B ,F^kio(B
1247 ,Ftg(B ,Fh\kassa(B ,Fma(B ,Fjulat_fei(B
1248 ,Fk_co(B ,Faj|la(B,
1249 ,Fma(B ,Fsgjyho}le(B ,Fk_co(B ,Fxgk|teqa(B.
1250 @end example
1251
1252 Bear in mind that all fonts used in Mule must be of fixed width.
1253 Furthermore, the width of the Greek characters must be the same as the
1254 ASCII characters. For the detail of font specification, see @xref{Font,
1255 , Font, mule}.
1256
1257 In most cases, the coding-system that you want to use in file I/O
1258 would be either @code{*iso-8859-7*} or @code{*junet*}.
1259
1260 @code{*iso-8859-7*} is an 8-bit encoding. If the 8th bit is set to
1261 zero, it represents an ASCII character; if set to one, a Greek
1262 character. In the current version of Mule, it is the primary
1263 coding-system for Greek. If you rarely use other languages, this
1264 coding-system would be useful.
1265
1266 On the other hand, @code{*junet*} is a 7-bit encoding and uses escape
1267 sequences. It is the default coding-system in the
1268 @samp{mule@@etl.go.jp} mailing list for multilingual communication. To
1269 use @code{*junet*} for file I/O, add the following line to your
1270 @file{~/.emacs} file:
1271
1272 @lisp
1273 (set-default-file-coding-system *junet*)
1274 @end lisp
1275
1276 @comment ------------------------------------------------------------
1277 @node Inputing Greek, , Greek Character Set, Greek
1278 @subsection Inputing Greek
1279
1280 To input Greek characters, use the Quail system. Hit @kbd{C-]} to
1281 turn into quail-mode. If you do not see the string @samp{[,FEkkgmij\(B]} in
1282 the mode-line, then hit @kbd{M-s} and specify the package name
1283 @samp{greek}. @key{SPC} works as the completion key. If you hit
1284 @key{RET} without specifying a package name, the default package (shown
1285 in the parentheses) will be used.
1286
1287 The Greek keymap in quail-mode looks like this:
1288
1289 @example
1290 1! 2@ 3# 4$ 5% 6^ 7& 8* 9( 0) -_ =+ `~
1291 ,F7/(B ,FrS(B ,FeE(B ,FqQ(B ,FtT(B ,FuU(B ,FhH(B ,FiI(B ,FoO(B ,FpP(B [{ ]}
1292 ,FaA(B ,FsS(B ,FdD(B ,FvV(B ,FcC(B ,FgG(B ,FnN(B ,FjJ(B ,FkK(B ,F4((B '" \|
1293 ,FfF(B ,FwW(B ,FxX(B ,FyY(B ,FbB(B ,FmM(B ,FlL(B ,; .: /?
1294 @end example
1295
1296 The keys @kbd{,F4(B} (@kbd{;} on ASCII keyboard) and @kbd{,F((B} (@kbd{:} on
1297 ASCII keyboard) work as dead keys. For example,
1298
1299 @example
1300 @samp{,Fa(B} + @samp{,F4(B} becomes @samp{,F\(B}
1301 @samp{,Fi(B} + @samp{,F((B} becomes @samp{,Fz(B}
1302 @samp{,Fi(B} + @samp{,F((B} + @samp{,F4(B} becomes @samp{,F@(B}
1303 @end example
1304
1305 To exit quail-mode, hit @kbd{C-]} once again.
1306
1307 For the detail of the Quail system, see @xref{Usage of Quail, , ,
1308 quail}.
1309
1310 @comment ============================================================
1311 @node Hebrew, Arabic Script Languages, Greek, Top
1312 @section Hebrew
1313
1314 This section describes how to read and write Hebrew in Mule. To make
1315 Hebrew the primary environment, the following line should be included in
1316 the @file{$MULE/lisp/site-init.el} file at the compile time:
1317
1318 @lisp
1319 (set-primary-environment 'hebrew)
1320 @end lisp
1321
1322 If your system administrator did not do this setting, you have to
1323 include the above line in your @file{~/.emacs} file.
1324
1325 To print Hebrew text, see the online manual @samp{m2ps(1)}
1326 and @xref{Top, , m2ps, m2ps}.
1327
1328 @menu
1329 * Hebrew Character Set::
1330 * Display-direction for Hebrew::
1331 * Inputing Hebrew::
1332 * Hebrew Cut and Paste::
1333 @end menu
1334
1335 @comment ------------------------------------------------------------
1336 @node Hebrew Character Set, Display-direction for Hebrew, , Hebrew
1337 @subsection Hebrew Character Set
1338
1339 Mule uses the right half of the ISO 8859-8 character set for
1340 displaying Hebrew. Unless you have a terminal that supports ISO 8859-8
1341 and will run Mule exclusively on it, you have to use the X window system
1342 on which appropriate ISO 8859-8 fonts are installed.
1343
1344 If the Hebrew fonts have been properly installed, you should be able to
1345 read the following Hebrew alphabet:
1346
1347 @example
1348 [2],H`abcdefghijklmnopqrstuvwxyz[0](B
1349 @end example
1350
1351 Bear in mind that all fonts used in Mule must be of fixed width.
1352 Furthermore, the width of the Hebrew characters must be the same as the
1353 ASCII characters. For the detail of font specification, see @xref{Font,
1354 , Font, mule}.
1355
1356 In most cases, the coding-system that you want to use in file I/O
1357 would be either @code{*junet*} or @code{*iso-8859-8*}.
1358
1359 @code{*junet*}is a 7-bit encoding and uses escape sequences. It is
1360 the default coding-system in the @samp{mule@@etl.go.jp} mailing list for
1361 multilingual communication. To use @code{*junet*} for file I/O, add the
1362 following line to your @file{~/.emacs} file:
1363
1364 @lisp
1365 (set-default-file-coding-system *junet*)
1366 @end lisp
1367
1368 On the other hand, @code{*iso-8859-8*} is an 8-bit encoding. If the
1369 8th bit is set to zero, it represents an ASCII character; if set to one,
1370 a Hebrew character. In the current version of Mule, it is the primary
1371 coding-system for Hebrew. If you rarely use other languages, this
1372 coding-system would be useful. You do not need to any special
1373 configuration for using this coding-system.
1374
1375 *iso-8859-8* does not inserts text direction specifiers. If you want
1376 to use the text direction specifier defined in ISO 6429, namely
1377 @dfn{@key{ESC} [ 2 ]} to change the direction to right-to-left and
1378 @dfn{@key{ESC} [ 0 ]} to revert it to left-to-right, include the
1379 following line in your @file{~/.emacs} file:
1380
1381 @lisp
1382 (set-default-file-coding-system *ctext-hebrew*)
1383 @end lisp
1384
1385 @comment ------------------------------------------------------------
1386 @node Display-direction for Hebrew, Inputing Hebrew, Hebrew Character Set, Hebrew
1387 @subsection Display-direction for Hebrew
1388
1389 In Mule, each buffer has a buffer local variable called
1390 @code{display-direction}. If this variable is set to @code{nil} (this
1391 is the default), the lines begin from the left edge of the screen. On
1392 the other hand, if @code{display-direction} is non-@code{nil}, the lines
1393 are aligned to the right and texts are written from right to left.
1394
1395 We strongly recommend you to turn on @dfn{visual-mode} by
1396
1397 @example
1398 M-x visual-mode
1399 @end example
1400
1401 when you edit Hebrew text. For the detail of @code{display-direction}
1402 and the cursor motion in visual-mode, see @xref{Top, , Right-to-left
1403 writing, R2L}.
1404
1405 @comment ------------------------------------------------------------
1406 @node Inputing Hebrew, Hebrew Cut and Paste, Display-direction for Hebrew, Hebrew
1407 @subsection Inputing Hebrew
1408
1409 To input Hebrew characters, use the Quail system. Hit @kbd{C-]} to
1410 turn into quail-mode. If you do not see the string @samp{[HEBREW]} in
1411 the mode-line, then hit @kbd{M-s} and specify the package name
1412 @samp{hebrew}. @key{SPC} works as the completion key. If you hit
1413 @key{RET} without specifying a package name, the default package (shown
1414 in the parentheses) will be used.
1415
1416 The Hebrew keymap in quail-mode looks like this:
1417
1418 @example
1419 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]
1420 [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]
1421 [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]
1422 [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]
1423 @end example
1424
1425 With @key{SFT} keys, you can input upper case ASCII characters even
1426 in hebrew inputing mode. To input lower case ASCII characters, you have
1427 to exit hebrew mode by @kbd{C-]}. To exit quail-mode, hit @kbd{C-]}
1428 once again.
1429
1430 For the detail of the Quail system, see @xref{Usage of Quail, , ,
1431 quail}.
1432
1433 @comment ------------------------------------------------------------
1434 @node Hebrew Cut and Paste, , Inputing Hebrew, Hebrew
1435 @subsection Hebrew Cut and Paste
1436
1437 Use @kbd{C-d} to delete the character under the cursor.
1438
1439 @key{DEL} key behave differently according to the value of
1440 @code{display-direction}: if the value is @code{nil} (aligned to left),
1441 it deletes a character on the left of the cursor; if the value is
1442 non-@code{nil} (aligned to right), it deletes a character on the right
1443 of the cursor. If the @code{display-direction} and the input character
1444 direction are the same, lastly input character can be deleted with
1445 @key{DEL} key, no matter what the value of @code{display-direction} is.
1446
1447 The following four commands remove the specified stretch of string and
1448 put it in the @code{kill-ring}:
1449
1450 @example
1451 @kbd{M-d} or @kbd{M-x visual-kill-word}
1452 @kbd{M-DEL} or @kbd{M-x visual-backward-kill-word}
1453 @kbd{C-k} or @kbd{M-x visual-kill-line}
1454 @kbd{C-w} or @kbd{M-x visual-kill-region}
1455 @end example
1456
1457 @kbd{M-w} (or @kbd{M-x visual-copy-region-as-kill}) also puts the
1458 specified stretch of string in the @code{kill-ring}, but the original
1459 text is left unchanged.
1460
1461 The strings in the @code{kill-ring} can be reinserted in buffer by
1462 @kbd{C-y} (or @kbd{M-x visual-yank}) and @kbd{M-y} (or @kbd{M-x
1463 visual-yank-pop}).
1464
1465 Make sure that you are in quail-mode with Hebrew package when you kill
1466 or yank something, otherwise unexpected region might be deleted or a
1467 garbage string might be inserted in the buffer.
1468
1469 @comment ============================================================
1470 @node Arabic Script Languages, Ethiopic Languages, Hebrew, Top
1471 @section Arabic Script Languages
1472
1473 Mule supports Arabic and Farsi (Persian). In this section we describe
1474 How to display, input and edit these Arabic Script Languages. To make
1475 Arabic script the primary environment, the following line should be
1476 included in the @file{$MULE/lisp/site-init.el} file at the compile time:
1477
1478 @lisp
1479 (set-primary-environment 'arabic)
1480 @end lisp
1481
1482 If your system administrator did not do this setting, you have to
1483 include the above line in your @file{~/.emacs} file.
1484
1485 * ARABIC TOGGLING COMMAND HAS BEEN CHANGED FROM @kbd{C-]} TO @kbd{M-\}.
1486
1487 To print Arabic text, see the online manual @samp{m2ps(1)} and
1488 @xref{Top, , m2ps, m2ps}.
1489
1490 Please note that the current version of m2ps does not support r2l
1491 printing direction (aligned to right). Even if you try to print a file
1492 which was created in a right-aligned buffer, it will be printed in
1493 left-aligned. In the worst cases, you will get wrong word order in the
1494 hardcopy.
1495
1496 @menu
1497 * Arabic Character Set::
1498 * Arabic-mode::
1499 * Display-direction in Arabic-mode::
1500 * Inputing Arabic Characters::
1501 * Arabic Cut and Paste::
1502 @end menu
1503
1504 @comment ------------------------------------------------------------
1505 @node Arabic Character Set, Arabic-mode, , Arabic Script Languages
1506 @subsection Arabic Character Set
1507
1508 Mule uses its own Arabic code and Arabic Fonts. You have to start
1509 Mule as an X client, i.e., without the @samp{-nw} option, to use Arabic.
1510 Mule requires the following three fonts to display Arabic:
1511
1512 @example
1513 @file{etl??-arabic0.bdf} Arabic Digits
1514 @file{etl??-arabic1.bdf} Narrow Characters (alif, etc.)
1515 @file{etl??-arabic2.bdf} Wide Characters (siin, etc)
1516 @end example
1517
1518 The @samp{??} part indicates the font size. You will find 16 pixels
1519 fonts and 24 pixels fonts on Mule FTP sites.
1520
1521 Furthermore, you have to increase Mule's line spaces because the
1522 heights of Arabic characters vary greatly. If you are using 16 pixels
1523 fonts, start up Mule with:
1524
1525 @example
1526 @samp{% mule -lsp 0+9}
1527 @end example
1528
1529 Or if you are using 24 pixels fonts, start up Mule with:
1530
1531 @example
1532 @samp{% mule -lsp 0+12}
1533 @end example
1534
1535 If the fonts are properly installed, you should be able to read the
1536 following famous words:
1537
1538 @quotation
1539 [2](3U(4?(3G![;=!8RYa(4Z(3&[0](B
1540 @end quotation
1541
1542 For the Arabic non-spacing marks, only two of them, i.e., hamza and
1543 madda, are available up to now. Any other marks, e.g. fatHa (short
1544 `a'), Damma (short `u'), kasra (short `i'), shadda (doubling sign),
1545 sukuun (pure consonant sign), waSla (joining hamza), etc., cannot be
1546 displayed. It seems that short vowels and waSla are not necessary to
1547 write ordinary Arabic text, but shadda is often marked in today's
1548 printings. Please let us know if shadda is really indispensable, in
1549 that case we will try to implement it.
1550
1551 @comment ------------------------------------------------------------
1552 @node Arabic-mode, Display-direction in Arabic-mode, Arabic Character Set, Arabic Script Languages
1553 @subsection Arabic-mode
1554
1555 You use @dfn{arabic-mode} to input and edit Arabic texts. This
1556 section describes the features of arabic-mode in detail.
1557
1558 Hit @kbd{C-]} to enter arabic-mode. Now you can input Arabic
1559 characters from your keyboard. Hitting @kbd{C-]} again makes your
1560 keyboard produce ASCII characters, but you are still in arabic-mode.
1561 Another @kbd{C-]} makes your keyboard produce Arabic again. If you want
1562 to exit arabic-mode completely, hit @kbd{C-c C-c}. See the figure
1563 below:
1564
1565 @example
1566 C-c C-c
1567 +----------------------------------------------+
1568 | +--------------------+ |
1569 | | C-c C-c | |
1570 V V | |
1571 +-------------+ +------------+ C-] +-----------+
1572 | | C-] |arabic-mode | ------> |arabic-mode|
1573 |initial state| ------> | with | | with |
1574 | | |Arabic input| <------ |ASCII input|
1575 +-------------+ +------------+ C-] +-----------+
1576 @end example
1577
1578 The string @samp{[2](3JG:a=[0](B} in the mode-line indicates that you are in
1579 arabic-mode and the keyboard produces Arabic characters; @samp{Arabic}
1580 indicates that you are in arabic-mode and the keyboard produces ASCII
1581 characters.
1582
1583 [NOTE] The previous version of arabic-mode was using so called
1584 visual-mode to help Arabic editing and ASCII input. The current
1585 version, however, maintains everything by itself.
1586
1587 @comment ------------------------------------------------------------
1588 @node Display-direction in Arabic-mode, Inputing Arabic Characters, Arabic-mode, Arabic Script Languages
1589 @subsection Display-direction in Arabic-mode
1590
1591 In Mule, each buffer has a buffer local variable called
1592 @code{display-direction}. If this variable is set to @code{nil} (this
1593 is the default), the lines begin from the left edge of the screen. On
1594 the other hand, if @code{display-direction} is non-@code{nil}, the lines
1595 are aligned to the right and texts are written from right to left. You
1596 can toggle the display direction by @kbd{C-x C-k r}.
1597
1598 For the detail of @code{display-direction} and the cursor motion in
1599 arabic-mode, see @xref{Top, , Right-to-left writing, R2L}.
1600
1601 @comment ------------------------------------------------------------
1602 @node Inputing Arabic Characters, Arabic Cut and Paste, Display-direction in Arabic-mode, Arabic Script Languages
1603 @subsection Inputing Arabic Characters
1604
1605 In arabic-mode, you can input Arabic characters and Arabic digits from
1606 keyboard. Two keyboard layouts are provided to input Arabic characters.
1607 You can select whichever you like. When you are in Arabic-mode, you can
1608 see the keyboard layout by @kbd{C-z}.
1609
1610 The first keyboard layout was contributed by a Farsi speaker. It looks
1611 like this:
1612
1613 @example
1614 +-------------------+
1615 | shifted alt |
1616 | unshifted ASCII |
1617 +-------------------+
1618
1619 +----------------------------------------------------------------+
1620 |[2](3"[0](B | | | | | | | |[2](3#[0](B |[2](3$[0](B | | | |
1621 |(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| -| =| `|
1622 +----------------------------------------------------------------+
1623 | | | | | | | | | | | | |
1624 |[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 ]|
1625 +-------------------------------------------------------------+
1626 | | | |[2](4e[0](B |[2](3.[0](B | | | | | [2](4k[0](B| |[2](3,[0](B |
1627 |[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 ;| '| \|
1628 +-----------------------------------------------------------+
1629 | | | |[2](30[0](B [2](3-[0](B|[2](3h[0](B | | |[2](3*[0](B |[2](3+[0](B |[2](3)[0](B |
1630 |[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 .| /|
1631 +-------------------------------------------------+
1632 @end example
1633
1634 To use this keyboard layout, include the following line in your
1635 @file{~/.emacs} file:
1636
1637 @lisp
1638 (setq arabic-input-keymap 'arabic-key-1)
1639 @end lisp
1640
1641 The second layout is based on phonetic transcription and looks like
1642 the following:
1643
1644 @example
1645 Left : ASCII-mode Right : arabic-mode
1646 Upper : shifted Lower : unshifted
1647
1648 +----------------------------------------------------------------+
1649 |! [2](3"[0](B |@ |# |$ |% |^ |& |* |( [2](3#[0](B |) [2](3$[0](B |_ |+ |~ [2](3+[0](B |
1650 |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|
1651 +----------------------------------------------------------------+
1652 |Q |W |E |R |T [2](4E[0](B|Y |U |I |O |P |{ |} |
1653 |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 |[ |] |
1654 +-------------------------------------------------------------+
1655 |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 |
1656 |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 |\ |
1657 +-----------------------------------------------------------+
1658 |Z [2](4I[0](B|X |C |V |B |N |M |< |> |? [2](3)[0](B |
1659 |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|
1660 +-------------------------------------------------+
1661
1662 COMBINATIONS:
1663 a ~ madda above alif
1664 a ' hamza above alif
1665 w ' hamza above waaw
1666 a ' ' hamza below alif
1667 y ' hamza above yaa
1668 " isolated hamza
1669 @end example
1670
1671 To use this keyboard layout, include the following line in your
1672 @file{~/.emacs} file:
1673
1674 @lisp
1675 (setq arabic-input-keymap 'arabic-key-0)
1676 @end lisp
1677
1678 No matter which layout you use, appropriate ligature is automatically
1679 generated whenever a character is input. The special ligature for
1680 @samp{laam} + @samp{alif} will be generated whenever an @samp{alif} is
1681 input on the left of a @samp{laam}. If you want to cut the connection
1682 between two adjacent Arabic characters, type a @kbd{|} (vertical bar) at
1683 that point in arabic-mode. An input of a character preceded by a
1684 @kbd{|} produces a glyph which is not connected to its right adjacent.
1685 Typing a @kbd{_} (underscore) connects the two characters at that point,
1686 if possible.
1687
1688 When @code{display-direction} is @code{nil} (i.e., lines are aligned to
1689 left), the cursor stays at the same position after an Arabic character
1690 is inserted. It moves to the right after an Arabic digit or an ASCII
1691 character is inserted.
1692
1693 When @code{display-direction} is non-@code{nil} (i.e., lines are
1694 aligned to right), the cursor moves to the left after an Arabic
1695 character is inserted. It stays at the same position after an Arabic
1696 digit or an ASCII character is inserted.
1697
1698 To input ASCII characters or ASCII digits, you have to exit
1699 arabic-mode by hitting @kbd{C-]}.
1700
1701 @comment ------------------------------------------------------------
1702 @node Arabic Cut and Paste, , Inputing Arabic Characters, Arabic Script Languages
1703 @subsection Cut and Paste
1704
1705 Use @kbd{C-d} to delete the character under the cursor. If you are in
1706 arabic-mode, the necessary ligature will be re-generated after the
1707 character is deleted.
1708
1709 @key{DEL} key behave differently according to the value of
1710 @code{display-direction}: if the value is @code{nil} (aligned to left),
1711 it deletes a character on the left of the cursor; if the value is
1712 non-@code{nil} (aligned to right), it deletes a character on the right
1713 of the cursor. If the @code{display-direction} and the input character
1714 direction are the same, lastly input character can be deleted with
1715 @key{DEL} key, no matter what the value of @code{display-direction} is.
1716
1717 The following four commands remove the specified stretch of string and
1718 put it in the @code{kill-ring}:
1719
1720 @example
1721 @kbd{M-d} or @kbd{M-x arabic-kill-word}
1722 @kbd{M-DEL} or @kbd{M-x arabic-backward-kill-word}
1723 @kbd{C-k} or @kbd{M-x arabic-kill-line}
1724 @kbd{C-w} or @kbd{M-x arabic-kill-region}
1725 @end example
1726
1727 @kbd{M-w} (or @kbd{M-x arabic-copy-region-as-kill}) also puts the
1728 specified stretch of string in the @code{kill-ring}, but the original
1729 text is left unchanged.
1730
1731 The strings in the @code{kill-ring} can be reinserted in buffer by
1732 @kbd{C-y} (or @kbd{M-x arabic-yank}) and @kbd{M-y} (or @kbd{M-x
1733 arabic-yank-pop}).
1734
1735 Make sure that you are in arabic-mode when you kill or yank something,
1736 otherwise ligature is not maintained, or in the worst case, unexpected
1737 region will be deleted or a garbage string will be inserted in the
1738 buffer.
1739
1740 @comment ============================================================
1741 @node Ethiopic Languages, IPA, Arabic Script Languages, Top
1742 @section Ethiopic Languages
1743
1744 This section @footnote{This section and the Ethiopic support routines
1745 have been written by Daniel Yaqob, Yonas Fisseha and Takahashi Naoto.}
1746 describes how to read and write Ethiopic languages (Ge'ez script
1747 languages) in Mule. To make Ethiopic the primary environment, the
1748 following line should be included in the @file{$MULE/lisp/site-init.el}
1749 file at the compile time @footnote{You also need to increase the value
1750 of @code{BASE_PURESIZE}, which is defined in the
1751 @file{$MULE/src/puresize.h} file, by 10000 or so.} :
1752
1753 @lisp
1754 (set-primary-environment 'ethio)
1755 @end lisp
1756
1757 If your system administrator did not include the above line, you have
1758 to include it in your @file{~/.emacs} file.
1759
1760 To print Ethiopic text, see the online manual @samp{m2ps(1)} and
1761 @xref{Top, , m2ps, m2ps}. Note that you have to use @code{coco} (COde
1762 COnverting library) to print Ethiopic text. The best way is to use the
1763 @code{any2ps} shell script. Both coco and any2ps can be found in Mule
1764 FTP sites.
1765
1766 @menu
1767 * Ethiopic Fonts::
1768 * Editing Ethiopic Text::
1769 * ASCII Transcription for Ethiopic::
1770 * Ethiopic Mail::
1771 * Configuration for Ethiopic::
1772 * Function Keys for Ethiopic::
1773 @end menu
1774
1775 @comment ------------------------------------------------------------
1776 @node Ethiopic Fonts, Editing Ethiopic Text, , Ethiopic Languages
1777 @subsection Ethiopic Fonts
1778
1779 Currently only 16 dot font is available for displaying Ethiopic. You
1780 can get it from Mule's FTP sites. The name of the font is
1781 @samp{ethiom16d75.bdf}.
1782
1783 You must invoke Mule as an X client if you want to use Ethiopic.
1784 First, make sure that the environment variable DISPLAY is properly set.
1785 Then invoke Mule from a shell window with the following command :
1786
1787 @example
1788 % mule -fn 16
1789 @end example
1790
1791 If the Ethiopic font has been properly installed, you should be able
1792 to read the following text:
1793
1794 @quotation
1795 $(2"g!)"K"^"<(B "Taste of Ethiopia"
1796
1797 $(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
1798
1799 $(2$$!+"#!D!!#"!V(B $(2!Q"X"`!&(B $(2"S$)!a!W!^!d(B $(2!)"+!g!^$R(B
1800
1801 - $(2"\!!!V(B $(2!F!6"8#'(B $(2$$"/"@(B $(2"$#%!V(B
1802 - $(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
1803 - $(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
1804 - $(2"S!."H!V(B $(2!F!6"8#'(B $(2!/#&(B $(2$'!!(B $(2#J"^(B
1805
1806 $(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
1807
1808 $(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
1809 $(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
1810 $(2$)#!!)".!&$P(B
1811
1812 $(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
1813
1814 $(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
1815 $(2!,"@"C"H$P(B
1816
1817 $(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
1818 $(2"X"H"i!&(B $(2"(!1"H(B $(2!!(B2 $(2"C#b!V(B $(2$'"`!&(B $(2!,"H#!!)"0$P(B
1819
1820 $(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
1821 $(2"X$$"g"#!b(B $(2"X!f$2!4#J!f(B $(2!)#<#9!6$P(B
1822 @end quotation
1823
1824 Bear in mind that all fonts used in Mule must be of fixed width.
1825 Furthermore, the width of the Ethiopic characters must be exactly twice
1826 as wide as the ASCII characters. For the detail of font specification,
1827 see @xref{Font, , Font, mule}.
1828
1829 @comment ------------------------------------------------------------
1830 @node Editing Ethiopic Text, ASCII Transcription for Ethiopic, Ethiopic Fonts, Ethiopic Languages
1831 @subsection Editing Ethiopic Text
1832
1833 @menu
1834 * Quail-mode for Ethiopic::
1835 * Fidel Input::
1836 * Ethiopic Punctuation Input::
1837 * Ethiopic Numeric Input::
1838 * Ethiopic Special Characters::
1839 @end menu
1840
1841 @comment ............................................................
1842 @node Quail-mode for Ethiopic, Fidel Input, , Editing Ethiopic Text
1843 @subsubsection Entering and Leaving Ethiopic mode
1844
1845 Use the Quail system to input Ethiopic. Hit @kbd{C-]} to enter
1846 quail-mode. If you do not see the string @samp{ETHIO} in the mode-line,
1847 then hit @kbd{M-s} and specify the package name @samp{ethio}. @key{SPC}
1848 works as the completion key. If you hit @key{RET} without specifying a
1849 package name, the default package (shown in the parentheses) will be
1850 used. To exit quail-mode, hit @kbd{C-]} once again.
1851
1852 For the detail of the Quail system, see @xref{Usage of Quail, , ,
1853 quail}.
1854
1855 @comment ............................................................
1856 @node Fidel Input, Ethiopic Punctuation Input, Quail-mode for Ethiopic, Editing Ethiopic Text
1857 @subsubsection Fidel Input
1858
1859 $(2"[(B. About Consonants
1860
1861 In quail-mode with the Ethiopic package, you can input Ethiopic
1862 characters from the alphabetic region of the keyboard. To input ASCII
1863 characters you have to exit ethiopic-mode by hitting @kbd{C-]}. A table
1864 of the first form consonants from the extended Fidel is given in the
1865 table below. The key assignments are made to the closest phonetical
1866 match between the Ethiopic and Latin letters.
1867
1868 @example
1869 he = $(2"[(B `ke = $(2#m(B
1870 le = $(2!!(B Ke = $(2"s(B
1871 He = $(2#{(B Xe = $(2#t(B
1872 me = $(2!)(B we = $(2#E(B
1873 `se = $(2#Q(B `e = $(2#_(B
1874 re = $(2!1(B ze = $(2!q(B
1875 se = $(2"C(B Ze = $(2!y(B
1876 xe = $(2!9(B ye = $(2$$(B
1877 qe = $(2#!(B de = $(2"#(B
1878 Qe = $(2#-(B De = $(2$+(B
1879 be = $(2!A(B je = $(2$2(B
1880 ve = $(2!I(B ge = $(2#9(B
1881 te = $(2!Q(B Ge = $(2$9(B
1882 ce = $(2!Y(B Te = $(2"+(B
1883 `he = $(2#f(B Ce = $(2"3(B
1884 ne = $(2!a(B Pe = $(2$@(B
1885 Ne = $(2!i(B Se = $(2"K(B
1886 e,a = $(2"S(B `Se = $(2#X(B
1887 ke = $(2"g(B fe = $(2";(B
1888 @end example
1889
1890 Characters beginning with a @samp{`} are usually a phonetic twin of
1891 some other letter in the Fidel and may be represented with a @samp{2} as
1892 shown below:
1893
1894 @example
1895 s2e = `se = $(2#Q(B
1896 @end example
1897
1898 The extra character @samp{`} or @samp{2} is given to the twin that
1899 occurs less commonly in typical modern writing. The @samp{`} was found
1900 to be more natural to read in Latin vs @samp{2} (@samp{2} will be easier
1901 to type on some keyboards).
1902
1903 In a few instances where uppercase keyboard letters would have no
1904 Ethiopic assignment, these keys (B, F, J, L, M, R, V, and Y) were made
1905 equivalent to their lowercase counter parts (i.e. L = l, m = M, etc).
1906
1907 $(2!!(B. About Vowels
1908
1909 When a key corresponding to a consonant is first struck, you will see
1910 the sixth form of the character appear on the screen with a small
1911 underline, @samp{_}. You may then type a vowel to modify the syllabic
1912 form of the consonant, or type any non-vowel character to terminate the
1913 entry of the letter (the underline goes away). The new character typed
1914 will also appear on the screen. A small table for the input system is
1915 given now :
1916
1917 @example
1918 Consonants:
1919 me mu mi ma mE m mo mWa
1920 $(2!)(B $(2!*(B $(2!+(B $(2!,(B $(2!-(B $(2!.(B $(2!/(B $(2!0(B
1921
1922 Independent Vowels:
1923 e/a u/U i A E I o/O e3
1924 $(2"S(B $(2"T(B $(2"U(B $(2"V(B $(2"W(B $(2"X(B $(2"Y(B $(2"Z(B
1925
1926 Independent Vowels Following a 6th Form Consonant:
1927 l'e l'u l'i l'A l'E l'I l'o
1928 also --> l'a lU lI lO
1929 $(2!&"S(B $(2!&"T(B $(2!&"U(B $(2!&"V(B $(2!&"W(B $(2!&"X(B $(2!&"Y(B
1930
1931 Consonants With 12 forms:
1932 hWe hWu/hW' hWi hWa hWE
1933 $(2"b(B $(2"c(B $(2"d(B $(2"e(B $(2"f(B
1934 @end example
1935
1936 [A NOTE ON FORMS 8 - 12] In different geographic regions, and at
1937 different times within the same region, people have been taught two
1938 different sounds for form 9 (@samp{$(2"c(B} in the above). Phonetical keyed
1939 input is permitted for both ways a person may have been taught.
1940
1941 In some Ethiopian languages extend Fidel glyphs for labiovelar forms
1942 are required. This is known to be true for the Gurage languages in
1943 particular. The complete set of additional characters required for
1944 these languages was not known to the makers of the Ethiopic extension
1945 for Mule at the of this release. Extended forms (8-12) of the @samp{w}
1946 series are provided to model the labiovelar sounds with a base consonant
1947 when a unique labiovelar glyph is not available for the consonant. For
1948 example : bWe -> $(2!F#L(B, pWE -> $(2$L#P(B.
1949
1950 Once entered you may edit the vowel form of a letter by placing the
1951 cursor over the letter you wish to change and striking @key{[F6]}. See
1952 @xref{Function keys for ethiopic}.
1953
1954 @comment ............................................................
1955 @node Ethiopic Punctuation input, Ethiopic Numeric Input, Fidel Input, Editing Ethiopic Text
1956 @subsubsection Ethiopic Punctuation input
1957
1958 All Ethiopic and Latin punctuations are available in quail-mode with
1959 the Ethiopic package. The Ethiopic punctuations may be entered by
1960 typing the Latin equivalent from the keyboard. Hitting the same
1961 punctuation key twice will replace the Ethiopic version with the Latin.
1962 A small table follows :
1963
1964 @example
1965 . -> $(2$P(B
1966 , -> $(2$Q(B
1967 ; -> $(2$R(B
1968 : -> $(2$S(B
1969 * -> $(2$T(B
1970 << -> $(2$U(B
1971 >> -> $(2$V(B
1972 :: -> $(2$O(B
1973 @end example
1974
1975 In the last 4 cases in the table, Ethiopic punctuation is entered
1976 based upon the similarity between the appearence of the keyboard and
1977 Ethiopic symbols. The last item in the table is an input for an
1978 Ethiopic word separator (a space @dfn{ }). Here two keystrokes of
1979 the colon @key{:} key are required to enter the Ethiopic space, and 3
1980 keystrokes of the colon are then required to return to the Latin
1981 @samp{:}.
1982
1983 You may use the space bar to enter Ethiopic spaces by first going into
1984 an @dfn{Ethiopic space mode}. To do so hit the @key{[F2]} key 2 times.
1985 Notice in the mode-line indicator near the bottom of the editor that
1986 each time you hit the @key{[F2]} key that the symbols @samp{_},
1987 @samp{$(2$N(B}, and @samp{$(2$O(B} will change. These are your space-mode indicators.
1988 The first, @samp{_}, is the default for Latin font width blank spaces (8
1989 pixels) the 2nd is for Ethiopic font width blank spaces (16 pixels) and
1990 finally the last, @samp{$(2$O(B}, indicates to you that the space bar will
1991 now use the Ethiopic word separator.
1992
1993 You may change the word separator in a specified @dfn{region} of text
1994 by @kbd{S-[F2]}. Doing so will convert all blank spaces into the
1995 Ethiopic word separators or, if you choose, to the double width Ethiopic
1996 blank space. You may convert among the 3 word separators within a
1997 region of text at any time.
1998
1999 @comment ............................................................
2000 @node Ethiopic Numeric Input, Ethiopic Special Characters, Ethiopic Punctuation Input, Editing Ethiopic Text
2001 @subsubsection Ethiopic Numeric Input
2002
2003 Both the Arabic (ASCII) and Ethiopic numerals are available in
2004 quail-mode with the Ethiopic package. The Arabic numbers are the defualt
2005 when you strike the number keys of the keyboard. Enter the
2006 @dfn{Ethiopic number mode} by pressing @key{[F1]}. Notice that the
2007 Arabic @samp{1} changes to the Ethiopic @samp{$(2$W(B} in the mode-line.
2008 This is your numeral mode indicator. Striking @key{[F1]} again returns
2009 you to the @dfn{Arabic numeral mode}.
2010
2011 Typing the number keys in Ethiopic numeral mode will render the
2012 numerals on the screen. You may enter Ethiopic numbers like Arabic
2013 numbers with 0's to obtain the multiples of ten for numbers 1 - 9 up to
2014 a multiple of 100,000. This limit is chosen as it will be the largest
2015 value that two numbers together may represent.
2016
2017 @comment ............................................................
2018 @node Ethiopic Special Characters, , Ethiopic Numeric Input, Editing Ethiopic Text
2019 @subsection Ethiopic Special Characters
2020
2021 Special icons, glyphs, and ligatures may be available at the end of
2022 your font's address table. You may enter them on screen, and into your
2023 document, with the @key{[F8]} key followed by a number. For this moment
2024 the available icons are African continent and the region in which Ge'ez
2025 script is native to (collectively, the nations of Eritrea and Ethiopia).
2026
2027 @comment ------------------------------------------------------------
2028 @node ASCII Transcription for Ethiopic, Ethiopic Mail, Editing Ethiopic Text, Ethiopic Languages
2029 @subsection ASCII Transcription for Ethiopic
2030
2031 @menu
2032 * Basic SERA::
2033 * Mixed Script in SERA::
2034 * Customising SERA::
2035 * SERA for file I/O::
2036 @end menu
2037
2038 @comment ............................................................
2039 @node Basic SERA, Mixed Script in SERA, , ASCII Transcription for Ethiopic
2040 @subsubsection Basic SERA
2041
2042 When written systematically, ASCII files (a file composed with the
2043 characters avaialable from a common English keyboard) may be
2044 interpretted by Mule and viewed as Ethiopic text. Likewise, an Ethiopic
2045 document may be written out by Mule into ASCII for importation
2046 elsewhere.
2047
2048 Mule uses @dfn{SERA} (System for Ethiopic Representation in ASCII) as
2049 its Latin representation system of the Fidel to provide compatibility
2050 with other networks and PC softwares, and to allow users without Mule
2051 the ability to read easily Ethiopic documents composed with the editor.
2052 Though independent from file I/O, SERA has been applied as the input
2053 method (IM) for Mule as well, hence much of the system has already been
2054 discussed. Current documents on SERA with detailed explanation of the
2055 system can be found in the @file{/pub/languages/ethiopia/email}
2056 directory at the ftp.rpi.edu archive.
2057
2058 A sample text of SERA is given below. This is the transcription of
2059 the text in @xref{Ethiopic Fonts}.
2060
2061 @example
2062 kemeSehafu \"Taste of Ethiopia"\
2063
2064 ke'ager wC Injera lemegager yedabere lmd
2065
2066 yemidebalequt teIhl aynetocna meTenoc;
2067
2068 - hulet brCqo yeTEf duqEt
2069 - hulet brCqo neC yesndE weynm yegebs duqEt
2070 - and tekul yeskWar mnkiya bEkiyng pawder
2071 - amst brCqo moq yale wha
2072
2073 \1) yeTEf duqEtu behulet tekul brCqo wha tebokto yqemeTal.
2074
2075 \2) yesndEw weym yegebsu duqEt gmaxe yeskWar menkiya bEkiyng
2076 pawder ygebabetna beblEnder wsT tewahdo besahn wsT
2077 yqemeTal.
2078
2079 \3) huletu bukowoc tekednew ke2 Iske 3 qen Indiyaqeru yqemeTalu.
2080
2081 \4) qenu kederes behWala qes teblo yeqererewn wha kehuletum sahnoc wsT
2082 mafses.
2083
2084 \5) huletum Ihl (TEf Ina sndE/gebs) aqelaqlo melewsna Ihlu kuf
2085 Iskil dres le2 se`at yahl masqemeT.
2086
2087 \6) keziya behWala 425 digris \F \ bemoqe megageriya ayer Indaygeba tolo
2088 Iyekedenu Injerawn megager.
2089 @end example
2090
2091 If struck alone, @key{[F4]} will convert the entire document into
2092 Ethiopic text. It is assumed that the text begins in Ethiopic. If the
2093 beginning of the document should start with Latin script, use @kbd{C-u
2094 [F4]} to make the appropriate conversion. You may also use @kbd{S-[F4]}
2095 to convert only the specified region. @kbd{[F5]}, @kbd{C-u [F5]}, and
2096 @kbd{S-[F5]} converts back into SERA-Latin with the same rules applying
2097 for @key{[F4]}.
2098
2099 @comment ............................................................
2100 @node Mixed Script in SERA, Customising SERA, Basic SERA, ASCII Transcription for Ethiopic
2101 @subsubsection Mixed Script in SERA
2102
2103 There are some special rules that apply when you mix both Latin and
2104 Ethiopic. The rules will be more important when composing a SERA file
2105 outside of Mule. At a glance, the escape rules given below may appear
2106 inconsistent. Their practical use should become apparent when working
2107 with them, as they are designed in part to go naturally with their
2108 frequency of use.
2109
2110 @samp{\}, except followed by some special characters described below,
2111 toggles the script interpretation mode (Ethiopic<->Latin). An
2112 alphabetic character may not be used as an escape sequence following the
2113 @samp{\}. The predefined escape sequences may have different
2114 functions in the two script modes. When followed by a blank space
2115 @samp{ }, the script mode toggles and the space is deleted.
2116
2117 @table @asis
2118 @item \\
2119 Sends @samp{\} from either mode.
2120
2121 @item \. \, \; \:
2122 Sends the equivalent punctuation of the OTHER mode to the screen.
2123
2124 @item \_ \* \< \> \1 ... \9
2125 Sends the defined Ethiopic character from both modes.
2126
2127 @item \| \' \`
2128 In Ethiopic mode @samp{|}, @samp{'} or @samp{`} is sent to the screen.
2129 In Latin mode, the toggle is made to Ethiopic and @samp{|},@samp{`} or
2130 @samp{'} is treated as the first char in the text segment and treated
2131 with the normal rules (i.e. just the stanard toggle into Ethiopic).
2132
2133 @item \!
2134 The @dfn{Hard Mode Toggle}. The switch toggles modes but treats all
2135 text until the ending @samp{\!} as one script. This allows extended use
2136 of @samp{\} and @samp{\~} without the requirement for @samp{\\} and
2137 @samp{\\~} but at the cost of using only one script within the text
2138 region.
2139
2140 @item \~x
2141 If @samp{x} is undefined in application, then @samp{x} is ignored. and
2142 nothing appears when transliterated. Also true if @samp{x} is a blank
2143 space @samp{ }.
2144
2145 @item \~e \~E \~a \~A
2146 Sends the icon of Ge'ez Homelands, its inverse image, African continent and
2147 its invers image, respectively.
2148 @end table
2149
2150 @comment ............................................................
2151 @node Customising SERA, SERA for file I/O, Mixed Script in SERA, ASCII Transcription for Ethiopic
2152 @subsubsection Customising SERA
2153
2154 Fidel is a highly phonetical script set, but not perfect. In a few
2155 instances among the languages that use Fidel for its written script, a
2156 letter will not have a sound consistant with its form class. The
2157 clearest example for this is in Amharic where the first form @dfn{h}s
2158 will have a sound equivalent to that of the fourth form (@samp{$(2"[(B},
2159 @samp{$(2#{(B}, @samp{$(2#f(B} sound the same as @samp{$(2"^(B}, @samp{$(2#~(B}, @samp{$(2#i(B}).
2160 To model in Latin the different sounds associated with a particular
2161 Fidel member, SERA allows for duplicity of the Latin representation.
2162 One such important instance is the choice of @samp{e} AND @samp{a} to
2163 represent the first lone vowel letter @samp{$(2"S(B}. @samp{a} is the
2164 natural choice in Amharic and @samp{e} is more logical in most
2165 languages. Both @samp{a} and @samp{e} are recoginized for @samp{$(2"S(B}
2166 when converting Latin->Ethiopic; but the user must decide on a choise of
2167 @samp{a} or @samp{e} for converting Ethiopic->Latin.
2168
2169 The default conversion in mule is to write @samp{$(2"S(B} as @samp{a}. You
2170 may set Mule to always convert @samp{$(2"S(B} as @samp{e} by adding the line
2171 below to your @file{~/.emacs} file:
2172
2173 @lisp
2174 (setq ethio-use-tigrigna-style t)
2175 @end lisp
2176
2177 As discussed before (@xref{Fidel Input}), the natural choise of
2178 @samp{Wu} or @samp{W'} for 9th form characters will differ between
2179 people. @samp{Wu} is the default conversion into Latin, but you may
2180 change this to @samp{W'} by adding the following line to your
2181 @file{~/.emacs} file:
2182
2183 @lisp
2184 (setq ethio-W-sixth-always t)
2185 @end lisp
2186
2187 SERA also permits @samp{'} as a separator between two Latin vowels
2188 when the user thinks it aids clarity. The deault in Mule is not to
2189 insert @samp{'} between vowels, you may change this by again adding the
2190 following line to your @file{~/.emacs} file:
2191
2192 @lisp
2193 (setq ethio-quote-vowel-always t)
2194 @end lisp
2195
2196 As discussed before (see @xref{Ethiopic Numeric Input}), Ethiopic
2197 numerals may be written in several forms and interpreted in the same
2198 way. Likewise you have these same choices for SERA output.
2199
2200 For example, consider the Latin sequence @samp{\10\9\100\80\7} for
2201 @samp{$(2$`$_$i$g$](B}. The Latin form is considered to be in the lowest
2202 level of reduction, or @dfn{reduction-level 0}. You can choose to write
2203 out in reduction-level 0 by including the following line in your
2204 @file{~/.emacs} file:
2205
2206 @lisp
2207 (setq ethio-numeric-reduction 0)
2208 @end lisp
2209
2210 The next level in reduction is the form @samp{\109100807} which can be
2211 set by:
2212
2213 @lisp
2214 (setq ethio-numeric-reduction 1)
2215 @end lisp
2216
2217 The final level in reduction is the form @samp{\10900807} which can be
2218 set by:
2219
2220 @lisp
2221 (setq ethio-numeric-reduction 2)
2222 @end lisp
2223
2224 These three reduction levels for numbers are offered, because it can
2225 not be known at this time which may ultimately become the preferred
2226 form.
2227
2228 @comment ............................................................
2229 @node SERA for file I/O, , Customising SERA, ASCII Transcription for Ethiopic
2230 @subsubsection SERA for file I/O::
2231
2232 Whenever you find a file (by @kbd{C-x C-f}) whose name ends in
2233 @file{.sera}, Mule assumes that the file is written in SERA, and
2234 automatically converts the contents into Fidel.
2235
2236 Likewise, if you save a buffer to a file with the @file{.sera}
2237 extension, the contents will be converted into SERA before actually
2238 written.
2239
2240 Note that the old two hooks for SERA I/O, i.e.,
2241 @code{fidel-to-sera-for-disksave} and @code{sera-to-fidel-for-disksave},
2242 have been removed.
2243
2244 @comment ------------------------------------------------------------
2245 @node Ethiopic Mail, Configuration for Ethiopic, ASCII Transcription for Ethiopic, Ethiopic Languages
2246 @subsection Ethiopic Mail
2247
2248 By default, Mule uses the *junet* coding-system for sending and
2249 receiving mail. It is a 7-bit coding with escape sequences, so there
2250 should be no difficulty in mail transmission unless the code @samp{ESC}
2251 is not removed by MTA (mail transfer agent).
2252
2253 Nonetheless, it would be safer to use the SERA format for mail
2254 transmission. In addition to the safety, users who do not have Mule
2255 will benefit from using SERA for mail.
2256
2257 If you include the line
2258
2259 @lisp
2260 (add-hook 'mail-send-hook 'fidel-to-sera-mail)
2261 @end lisp
2262
2263 in your @file{~/.emacs} file, Ge'ez characters in mail body will be
2264 automatically converted into SERA when you send mail from mail-mode.
2265 You can write mail in the Ge'ez script and send it as if it were written
2266 in SERA. The markers @samp{<sera>} and @samp{</sera>} are automatically
2267 inserted at the beginning and the end of mail body so that the mail
2268 receiver can read it in Ge'ez, even without Mule, by using @code{eview}
2269 program.
2270
2271 If you want to preview the SERA transcription before you actually send
2272 the mail, hit @kbd{C-[F5]} in the @samp{*mail*} buffer. Hit @kbd{C-[F4]}
2273 to go back to Fidel.
2274
2275 Likewise, if you include the line
2276
2277 @lisp
2278 (add-hook 'rmail-show-message-hook 'sera-to-fidel-mail)
2279 @end lisp
2280
2281 in your @file{~/.emacs} file, all mails that contain the @samp{<sera>}
2282 marker are automatically converted into the Ge'ez script when you read
2283 them with @code{rmail}.
2284
2285 When you receive mail in SERA but without @samp{</sera>}, you can
2286 convert it into Ge'ez by hitting @kbd{C-[F4]}. In rmail-mode, this key
2287 is always active and you can use it even without setting the hooks
2288 above. @kbd{C-[F4]} first searches the marker @samp{<sera>} and the
2289 termination marker @samp{</sera>}. If found, only the portion between
2290 the two markers is converted in Ge'ez. Otherwise it skips the header
2291 part by looking for the first blank line, then convert the rest of the
2292 buffer. If there is no blank line, it prints a message and no
2293 conversion is done.
2294
2295 For backward compatibility, Mule regards the markers @samp{<ethiopic>}
2296 and @samp{<>} as aliases of @samp{<sera>} and @samp{</sera>}. But the
2297 usage of @samp{<ethiopic>} and @samp{<>} is not recommended.
2298
2299 @comment ------------------------------------------------------------
2300 @node Configuration for Ethiopic, Function Keys for Ethiopic, Ethiopic Mail, Ethiopic Languages
2301 @subsection Configuration for Ethiopic
2302
2303 To use Ethiopic most easily, you may want to create the
2304 @file{~/.emacs} file in your home directory that contains the following
2305 line:
2306
2307 @lisp
2308 (set-primary-environment 'ethio)
2309 @end lisp
2310
2311 Here are the lines that you might want to include in your
2312 @file{~/.emacs} file:
2313
2314 @table @asis
2315 @item (setq ethio-use-tigrigna-style t)
2316 Writes SERA output with @samp{e} in place of @samp{a} for the first
2317 form vowel @samp{$(2"S(B}.
2318
2319 @item (setq ethio-quote-vowel-always t)
2320 When writing SERA output @samp{'} is inserted between two adjacent
2321 vowels.
2322
2323 @item (setq ethio-W-sixth-always t)
2324 Writes SERA output with 9th form Fidel characters represented
2325 with @samp{W'} and not @samp{Wu}.
2326
2327 @item (setq ethio-numeric-reduction #)
2328 Sets level of reduction for numeral representation in SERA. @samp{#}
2329 must be replaced by 0, 1 or 2. The Ethiopic number @samp{$(2$[$i(B} will be
2330 @samp{\5\100} if # is 0, @samp{\5100} if 1, @samp{\500} if 2.
2331
2332 @item (add-hook 'rmail-show-message-hook 'sera-to-fidel-mail)
2333 When in rmail-mode will convert Ethiopic email marked by @samp{<sera>}
2334 immediately into Ge'ez text without waiting for the @kbd{C-@key{[F4]}}
2335 key to be struck.
2336
2337 @item (add-hook 'mail-send-hook 'fidel-to-sera-mail)
2338 Will convert Ge'ez email into SERA when send it out from mail-mode.
2339
2340 @item (add-hook 'news-inews-hook 'fidel-to-sera-mail)
2341 Will convert Ge'ez news article into SERA format when posting news
2342 in gnus mode.
2343 @end table
2344
2345 @comment ------------------------------------------------------------
2346 @node Function keys for Ethiopic, , Configuration for Ethiopic, Ethiopic Languages
2347 @subsection Function keys for Ethiopic
2348
2349 Some function keys have been mentioned in the above. A complete list
2350 of the function keys available is presented separately here.
2351
2352 @table @asis
2353 @item @key{[F1]} or @kbd{M-x ethio-toggle-digit}
2354 toggles Arabic digit input and Ethiopic digit input. The current input
2355 mode is indicated by the character @samp{1} or @samp{$(2$W(B} in the mode
2356 line, next to the @samp{ETHIO} string. In Ethiopic mode, you can input
2357 up to 1000000 (\1000000) by continuous zeros. To input 2000000
2358 (\2000000), for example, you have to type @samp{21000000}. The default
2359 is Arabic digit. (Available only in quail-mode.)
2360
2361 @item @key{[F2]} or @kbd{M-x ethio-toggle-space}
2362 toggles space characters (one of the three below) for keyboard
2363 input.
2364
2365 @enumerate a
2366 @item
2367 @samp{ } - Single width ASCII space. Mode line Indicator is @samp{_}.
2368
2369 @item
2370 @samp{$(2$N(B} - Double width Ethiopic blank. Mode line Indicator is @samp{$(2$N(B}.
2371
2372 @item
2373 @samp{$(2$O(B} - Ethiopic word separator. Mode line Indicator is @samp{$(2$O(B}.
2374 @end enumerate
2375
2376 Each time you hit @key{[F2]}, the space character changes a -> b -> c ->
2377 a and so on. The default is ASCII space. (Available only in
2378 quail-mode.)
2379
2380 @item @key{[F3]} or @kbd{M-x ethio-toggle-punctuation}
2381 toggles Latin punctuation input and Ethiopic punctuation input. The
2382 mode line indicator is @samp{.} (Latin) and @samp{$(2$P(B} (Ethiopic). The
2383 default is Ethiopic punctuations. (Available only in quail-mode.)
2384
2385 @item @key{[F4]} or @kbd{M-x sera-to-fidel-buffer}
2386 performs SERA to Fidel conversion in the current buffer. It assumes
2387 that the buffer begins in Ethiopic. To convert a text which begins in
2388 Latin, use @kbd{C-u @key{[F4]}}. You can continuously enter any large
2389 Ethiopic numbers, for example,
2390 \5500000000000000000000000000000700000000000000000000.
2391
2392 @item S-@key{[F4]} or @kbd{M-x sera-to-fidel-region}
2393 performs SERA to Fidel conversion in the specified region. It assumes
2394 that the buffer begins in Ethiopic. To convert a text which begins in
2395 Latin, use @kbd{C-u S-@key{[F4]}}.
2396
2397 @item C-@key{[F4]} or @kbd{M-x sera-to-fidel-marker}
2398 If the buffer contains the markers @samp{<sera>} and @samp{</sera>},
2399 converts the segment between the two markers from SERA to Fidel in Ethio
2400 start mode. The markers will not be removed.
2401
2402 @item C-@key{[F4]} (in rmail-mode or Mali-mode) or @kbd{M-x sera-to-fidel-mail}
2403 Does SERA to FIDEL conversion for reading/writing mail. If the buffer
2404 contains the markers @samp{<sera>} and @samp{</sera>}, converts the
2405 segment between the two markers in Ethio start mode and the
2406 @samp{Subject:} field in ASCII start mode. Conversion will be performed
2407 even if the current buffer is read-only.
2408
2409 Usually, this function is used as a hook. When invoked interactively
2410 and there is no markers, it converts both the whole body and the
2411 @samp{Subject:} field in Ethio start mode.
2412
2413 For backward compatibility, @samp{<ethiopic>} and @samp{<>} can be used
2414 instead of @samp{<sera>} and @samp{</sera>}.
2415
2416 @item @key{[F5]} or @kbd{M-x fidel-to-sera-buffer}
2417 performs Fidel to SERA conversion in the current buffer. The converted
2418 region begins in Ethiopic mode. (If the first character of the original
2419 text is a Latin alphabet, @samp{\ } will be inserted at the beginning to
2420 turn into Latin mode.) To produce a SERA text that begins in Latin, use
2421 @kbd{C-u @key{[F5]}}. By default, the first lone vowel @samp{$(2"S(B} is
2422 transcribed by @samp{a}. If you want it to be @samp{e}, put the
2423 following line in your .emacs file:
2424
2425 @lisp
2426 (setq ethio-use-tigrigna-style t)
2427 @end lisp
2428
2429 Also by default, the lone vowels are preceded by an apostrophe
2430 @samp{'} only if the preceding character is a 6th form consonant.
2431 If you want the lone vowels always preceded by an apostrophe,
2432 put the following line in your @file{~/.emacs} file:
2433
2434 @lisp
2435 (setq ethio-quote-vowel-always t)
2436 @end lisp
2437
2438 @item S-@key{[F5]} or @kbd{M-x fidel-to-sera-region}
2439 performs Fidel to SERA conversion in the specified region. The converted
2440 region begins in Ethiopic mode. (If the first character of the original
2441 text is a Latin alphabet, @samp{\ } will be inserted at the beginning to
2442 turn into Latin mode.) To produce a SERA text that begins in Latin, use
2443 @kbd{C-u S-@key{[F5]}}.
2444
2445 @item C-@key{[F5]} or @kbd{M-x fidel-to-sera-marker}
2446 If the buffer contains the markers @samp{<sera>} and @samp{</sera>},
2447 converts the segment between the two markers from Fidel to SERA in Ethio
2448 start mode. The markers will not be removed.
2449
2450 @item C-@key{[F5]} (in rmail-mode or Mail-mode) or @kbd{M-x fidel-to-sera-mail}
2451 Does Fidel to SERA conversion for reading/writing mail and news.
2452 Intended to be used for mail-send-hook and news-inews-hook, but can be
2453 invoked interactively, too.
2454
2455 If the buffer contains at least one Ethiopic character, then it
2456
2457 1) inserts the string @samp{<sera>} right after the head-body
2458 separating line,
2459 2) inserts @samp{</sera>} at the end of the buffer,
2460 3) converts the body into SERA in Ethiopic start mode, and
2461 4) converts the @samp{Subject:} field in ASCII start mode.
2462
2463 If there is no separating line, @samp{<sera>} will be put at the
2464 beginning of buffer and does not look for the @samp{Subject:} field.
2465
2466 @item @key{[F6]} or @kbd{M-x ethio-modify-vowel}
2467 is the vowel modification key. Hit this key when the cursor is on a
2468 Fidel letter. Then you will be asked a new vowel. Hit one of the seven
2469 characters below from the keyboard:
2470
2471 @example
2472 e u i a E ' o
2473 @end example
2474
2475 You will get a new letter whose consonant is the same as the
2476 original, but with the new vowel that you selected. An
2477 apostrophe @samp{'} changes the character to the sixth form (lone
2478 consonant).
2479
2480 If the cursor is on the Wa-form of letter having only 8 forms, selecting
2481 a vowel other than @samp{a} changes the original into the combination of
2482 two characters, namely, the sixth form of the original character and the
2483 wW utility letter whose vowel is the newly selected one. See @xref{Fidel
2484 Input}.
2485
2486 @item @key{[F7]} or @kbd{M-x ethio-replace-space}
2487 replaces the spaces between two Ethiopic characters in the specified
2488 region. You will be asked the new space character. Answer by typing 1,
2489 2 or 3. 1 means the single width ASCII space. 2 means the double width
2490 Ethiopic blank. 3 means the traditional Ethiopic word separater. This
2491 command is independent from the space selection for keyboard input.
2492
2493 @item @key{[F8]} or @kbd{M-x ethio-input-special-character}
2494 inputs graphical images in font file. A menu will appear in
2495 mini-buffer.
2496 @end table
2497
2498 @comment ============================================================
2499 @node IPA, , Ethiopic Languages, Top
2500 @section IPA
2501
2502 International Phonetic Alphabet (IPA for short) is not a language, but
2503 we describe its usage in Mule here as a matter of convenience.
2504
2505 To print text that contains IPA characters, see the online manual
2506 @samp{m2ps(1)} and @xref{Top, , m2ps, m2ps}.
2507
2508 @menu
2509 * IPA Character Set:: IPA Characters and IPA Fonts
2510 * Inputing IPA:: Quail Package for IPA
2511 @end menu
2512
2513 @comment ------------------------------------------------------------
2514 @node IPA Character Set, Inputing IPA, , IPA
2515 @subsection IPA Character Set
2516
2517 Mule defines a private character set to represent a subset of 1989's
2518 version of IPA. It consists of the consonant signs used in English,
2519 French, German and Italian, and all vowels signs in the table. For the
2520 detail of the included characters, see @xref{Inputing IPA}.
2521
2522 To use this character set, you have to start Mule as an X client. The
2523 fonts for this purpose are found in Mule's FTP sites. Their names are:
2524
2525 @example
2526 @file{etl14-ipa.bdf}
2527 @file{etl16-ipa.bdf}
2528 @file{etl24-ipa.bdf}
2529 @end example
2530
2531 If the IPA fonts have been properly installed, you should be able to
2532 read the following line:
2533
2534 @quotation
2535 ,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
2536 @end quotation
2537
2538 Bear in mind that all fonts used in Mule must be of fixed width.
2539 Furthermore, the width of the IPA symbols must be the same as the ASCII
2540 characters. For the detail of font specification, see @xref{Font, ,
2541 Font, mule}.
2542
2543 @comment ------------------------------------------------------------
2544 @node Inputing IPA, , IPA Character Set, IPA
2545 @subsection Inputing IPA
2546
2547 To input IPA characters, use the Quail system. Hit @kbd{C-]} to turn
2548 into quail-mode. If you do not see the string @samp{[IPA]} at the left
2549 end of mode-line, then hit @kbd{M-s} and specify the package name
2550 @samp{ipa}. @key{SPC} works as the completion key. If you hit
2551 @key{RET} without specifying a package name, the default package (shown
2552 in the parentheses) will be used. To exit quail-mode, hit @kbd{C-]}
2553 once again.
2554
2555 For the detail of the Quail system, see @xref{Usage of Quail, , ,
2556 quail}.
2557
2558 Here are the key bindings for IPA characters in quail-mode:
2559
2560 @example
2561 key description example
2562 -----------------------------------------------------------
2563 i small letter i i in ici (F)
2564 I small capital I i in bit (E)
2565 e small letter e e' in the' (F)
2566 E or \3 rounded small epsilon e in end (Am. E)
2567 ae a+e ligature a in cat (E)
2568 a small a in printing a in patte (F)
2569 A or o| small a in manuscript o in hop (Am. E)
2570 /v upside-down small v u in cup (Am. E)
2571 & small gamma
2572 /m upside-down small m
2573 i- small i with bar
2574 /e schwa (upside-down e) a in about (E)
2575 /a upside-down pr. a a in china (E)
2576 y small letter y u in sur (F)
2577 Y small capital Y u" in du"nn (G)
2578 o/ small phi eu in deux (F)
2579 oe o+e ligature oe in boeuf (F)
2580 OE O+E ligature
2581 /A or |o upside-down man. a o in hop (E)
2582 /c upside-down small c a in all (E)
2583 o small letter o o in pot (F)
2584 U upside-down cap. omega oo in book (E)
2585 u small letter u ou in pour (F)
2586 u- small u with bar u in hus (Norwegian)
2587 o- small o with bar o" in do"rr (Swedish)
2588 e- or e| r coloured schwa er in letter (Am. E)
2589 oe~ tilde above o+e un (F)
2590 /c~ tilde above u-d. c on in bon (F)
2591 E~ or /3~ tilde above epsilon ain in pain (F)
2592 A~ or o|~ tilde above man. a an in blanc (F)
2593 -----------------------------------------------------------
2594 p small letter p p in paon (F)
2595 b small letter b b in banc (F)
2596 t small letter t t in table (E)
2597 d small letter d d in date (E)
2598 k small letter k c in computer (E)
2599 g small letter g g in get (E)
2600 f small letter f f in feel (E)
2601 v small letter v v in veal (E)
2602 th small theta th in three (E)
2603 dh small icelandic edh th in this (E)
2604 s small letter s s in sea (E)
2605 z small letter z z in zero (E)
2606 sh integral mark sh in shell (E)
2607 zh or 3 voiced sh j in je (F)
2608 c, c with cedilla ch in ich (G)
2609 x small letter x x in ach (G)
2610 /R upside-down capital R r in Paris (Parisian F)
2611 h small letter h h in hat (E)
2612 m small letter m m in make (E)
2613 n small setter n n in net (E)
2614 gn n with long left leg gn in signe (F)
2615 ng n with long right leg ng in song (E)
2616 r small letter r rr in carro (I)
2617 R small capital R rr in harren (G)
2618 /r upside-down small r r in red (E)
2619 j small letter j y in you (E)
2620 l small letter l l in light (E)
2621 /y upside-down small y gl in foglio (I)
2622 L small capital L ll in tell (E)
2623 /h upside-down small h u in nuit (F)
2624 w small letter w w in we (E)
2625 M upside-down capital W wh in what (E)
2626 -----------------------------------------------------------
2627 ' acute primary accent
2628 ` grave secondary accent
2629 : colon long
2630 @end example
2631
2632 @contents
2633 @bye