Mercurial > hg > xemacs-beta
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 |