diff mule-doc/arabic.txt @ 70:131b0175ea99 r20-0b30

Import from CVS: tag r20-0b30
author cvs
date Mon, 13 Aug 2007 09:02:59 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mule-doc/arabic.txt	Mon Aug 13 09:02:59 2007 +0200
@@ -0,0 +1,355 @@
+HOW TO READ & WRITE ARABIC				94.8.4 TAKAHASHI Naoto
+
+1. STARTING UP
+
+1.1 INVOKING MULE
+
+    You must invoke Mule as an X client if you want to use Arabic.
+    Make sure that the environment variable DISPLAY is properly set.
+    So far only 16 dot font is available for Arabic.  First, set you X
+    resources appropriately, then invoke Mule from a shell window with
+    the following command to get enough line spaces.
+
+	% mule -fsp 0+9
+
+
+1.2 ENTERING AND LEAVING ARABIC-MODE
+
+    Hit C-] to enter arabic-mode.  Whenever you are in arabic-mode,
+    you are also in visual-mode.  Hitting C-] again brings you back
+    from arabic-mode, but you are still in visual-mode.  Hitting C-]
+    in visual-mode brings you into arabic-mode.  You can exit
+    visual-mode by hitting C-c C-c.  See the figure below.
+
+
+			           C-c C-c
+	     +----------------------------------------------+
+             |   +--------------------+                     |
+	     | 	 |      C-c C-c       | 	            |
+	     V   V                    |                     |
+	+-------------+         +-----------+   C-]   +-----------+
+	|             |   C-]   |arabic-mode| ------> |           |
+	|initial state| ------> |    and    |         |visual-mode|
+	|             |		|visual-mode| <------ |           |
+	+-------------+ 	+-----------+   C-]   +-----------+
+
+
+    The string "Arabic L2R" or "Arabic R2L" in mode-line means that
+    you are in both arabic-mode and visual-mode.  If you see "L2R" or
+    "R2L" but not "Arabic" in mode-line, you are in visual-mode but
+    not in arabic-mode.
+
+
+1.3 DISPLAY DIRECTION
+
+    Each buffer in Mule has a buffer local variable called
+    "display-direction".  If this variable is set to nil (this is the
+    default), the lines begin from the left edge of the screen.  On
+    the other hand, if display-direction is non-nil, the lines are
+    aligned to the right and texts are written from right to left.
+
+    If you are in visual-mode, the value of display-direction is
+    reflected in mode-line: if it is nil "L2R" is displayed; if it is
+    non-nil "R2L" is displayed.  In visual-mode, you can set
+    display-direction to nil by typing 'C-c <', and to t by typing
+    'C-c >'.
+
+    If you read a file (C-x C-f) which has the extension ".l2r", the
+    buffer automatically goes in visual-mode and display-direction is
+    set to nil.  Likewise, if a file has the extension ".r2l", the
+    buffer automatically goes in visual-mode and display-direction is
+    set to t.
+
+
+2. EDITING ARABIC TEXT
+
+2.1 INPUT
+
+    In arabic-mode, you can input Arabic characters and Arabic digits
+    from keyboard.  To input ASCII characters or ASCII digits, you
+    have to exit arabic-mode by hitting C-].  The translation table is
+    given below.  When you are in Arabic-mode, you can see the
+    keyboard layout by C-z.
+
+    Please note that this table is by no means a fixed one --- it is
+    just a quick hack.  Your suggestion on Arabic keyboard layout will
+    be greatly appreciated.
+
+
+	translate table in arabic-mode
+	------------------------------
+	"	isolated hamza
+	a~	madda above alif
+	a'	hamza above alif
+	w'	hamza above waaw
+	a''	hamza below alif
+	y'	hamza above yaa
+	a	alif
+	b	baa
+	o	taa marbuTa
+	t	taa
+	c	thaa
+	j	jiim
+	H	Haa
+	K	khaa
+	d	daal
+	x	dhaal
+	r	raa
+	z	zaay
+	s	siin
+	/	shiin
+	S	Saad
+	D	Daad
+	T	Taa
+	Z	Zaa
+	`	ayn
+	G	ghayn
+	f	faa
+	q	qaaf
+	k	kaaf
+	l	laam
+	m	miim
+	n	nuun
+	h	haa
+	w	waaw
+	A	alif maqSura
+	y	yaa
+	C	chim (Farsi)
+	g	gaaf (Farsi)
+	p	paa  (Farsi)
+	X	zhaa (Farsi)
+	_	make connection
+	|       cut connection
+
+
+    Appropriate ligature is automatically generated whenever a
+    character is input.  Special ligature of laam + alif will be
+    generated whenever an alif is input on the left of a laam.  If you
+    want to cut the connection between two adjacent Arabic characters,
+    type a `|' (vertical bar) at that point in arabic-mode.  An input
+    of a character preceded by a `|' produces a glyph which is not
+    connected to its right adjacent.  Typing a `_' (underscore)
+    connects the two characters at that point, if possible.
+
+    When display-direction is nil (i.e. lines are aligned to left),
+    the cursor stays at the same position after an Arabic character is
+    inserted. It moves to the right after an Arabic digit or an ASCII
+    character is inserted.
+
+    When display-direction is non-nil (i.e. lines are aligned to
+    right), the cursor moves to the left after an Arabic character is
+    inserted. It stays at the same position after an Arabic digit or
+    an ASCII character is inserted.
+
+
+2.2 DELETION, KILL & YANK
+
+    Use C-d to delete the character under the cursor.  If you are in
+    arabic-mode, the necessary ligature will be re-generated after the
+    character is deleted.
+
+    DEL key behave differently according to the value of
+    display-direction: if the value is nil (aligned to left), it
+    deletes a character on the left of the cursor; if the value is
+    non-nil (aligned to right), it deletes a character on the right of
+    the cursor.  If the display direction and the input character
+    direction are the same, lastly input character can be deleted with
+    DEL key, no matter what the value of display-direction is.
+
+    M-d (arabic-kill-word), M-DEL (arabic-backward-kill-word), C-k
+    (arabic-kill-line) and C-w (arabic-kill-region) remove the
+    specified stretch of string and put it in kill-ring.  M-w
+    (arabic-copy-region-as-kill) also puts the specified stretch of
+    string in kill-ring, but the original text is left unchanged.
+
+    The strings in kill ring can be reinserted in buffer by C-y
+    (arabic-yank) and M-y (arabic-yank-pop).
+
+    Make sure that you are in arabic-mode when you kill or yank
+    something, otherwise ligature is not maintained, or at the worst,
+    unexpected region will be deleted or a garbage string will be
+    inserted in the buffer.
+
+
+2.3 CURSOR MOTION
+
+    The following cursor motion commands are supplied in visual-mode
+    and in arabic-mode to handle bi-directional texts easily.  All
+    these commands accept an additional prefix numeric argument.
+
+
+	key	command name			function
+	-----------------------------------------------------------------
+	C-f	visual-forward-char		move the cursor visually
+						forward by 1 character
+
+	C-b	visual-backward-char		move the cursor visually
+						backward by 1 character
+
+	C-p	visual-previous-line		move the cursor up
+						by 1 line
+
+	C-n	visual-next-line		move the cursor down
+						by 1 line
+
+	C-a	visual-beginning-of-line	move the cursor to the
+						visual beginning of line
+
+	C-e	visual-end-of-line		move the cursor to the
+						visual end of line
+
+	M-f	visual-forward-word		move the cursor visually
+						forward by 1 word
+
+	M-b	visual-backward-word		move the cursor visually
+						backward by 1 word
+
+	M-<	visual-beginning-of-buffer	move the cursor to the
+						visual beginning of buffer
+
+	M->	visual-end-of-buffer		move the cursor to the
+						visual end of buffer
+
+
+    Note that ordinary cursor motion commands (forward-char,
+    backward-char, etc.) behave according to the logical order of the
+    text, whilst the above commands behave according to the visual
+    order.  Compare the difference of the two C-f commands.  (You can
+    exit visual-mode by typing "C-c C-c".)
+
+
+2.4 LR COMMANDS
+
+    Some of you may be confused by the words "forward" and "backward".
+    Here is a summary:
+
+
+		   display-direction	display-direction
+		   is nil		is non-nil
+	-------------------------------------------------
+	forward	        right               left
+
+	backward        left		    right
+
+
+    If you are using arrow keys to move the cursor, you may want to
+    move the cursor to left/right no matter what display-direction is.
+    Likewise, you may want the cursor to be put on the left-most
+    column when you hit C-a, and on the right-most column when you hit
+    C-e.  In such cases, rewrite the key definitions in visual.el and
+    arabic.el with the following commands.  These commands are called
+    "LR commands" because they act according to the absolute direction
+    (left or right) rather than relative direction (forward or
+    backward).
+
+
+	** LR commands in visual-mode **
+
+	command name			function
+	--------------------------------------------------------
+	visual-move-to-left-char	move the cursor to left
+					by one character
+
+	visual-move-to-right-char	move the cursor to right
+					by one character
+
+	visual-move-to-left-word	move the cursor to left
+					by one word
+
+	visual-move-to-right-word	move the cursor to right
+					by one word
+
+	visual-left-end-of-line		move the cursor to the
+					leftmost column
+
+	visual-right-end-of-line	move the cursor to the
+					rightmost column
+
+	visual-delete-left-char		delete the character on
+					the left of visual point
+
+	visual-delete-right-char	delete the character on
+					the right of visual point
+
+	visual-kill-left-word		kill one word on the left
+					of visual point
+
+	visual-kill-right-word		kill one word on the right
+					of visual point
+
+
+	** LR commands in arabic-mode **
+
+	command name			function
+	----------------------------------------------------------
+	arabic-delete-left-char		do visual-delete-left-char
+					and make Arabic ligature
+
+	arabic-delete-right-char	do visual-delete-right-char
+					and make Arabic ligature
+
+	arabic-kill-left-word		do visual-kill-left-word
+					and make Arabic ligature
+
+	arabic-kill-right-word		do visual-kill-right-word
+					and make Arabic ligature
+
+
+3. HARDCOPY
+
+  You can use m2ps to get a hardcopy of a file which contains arabic
+  characters.  See m2ps.1 for detail.  Note that input files to m2ps
+  must be written in *internal* coding system.  To save the content of
+  a buffer, use the following command in Mule:
+
+	C-u C-x C-w _filename_ RET *internal* RET
+
+  Please note that the current version of m2ps does not support r2l
+  printing direction (flushright mode).  If you try to print a file
+  which was created under r2l display direction, it will be printed
+  left-aligned.  Furthermore, you may get wrong word order.
+
+4. LIMITATIONS
+
+   There are many limitations in this release.  We need your help.
+
+4.1 NON-SPACING MARKS IN ARABIC
+
+    Only two non-spacing marks, i.e., madda and hamza, are available
+    in this release.  Any other marks, e.g. fatHa (short 'a'), Damma
+    (short 'u'), kasra (short 'i'), shadda (doubling sign), sukuun (no
+    vowel sign), waSla (joining hamza), etc., cannot be displayed.  It
+    seems that short vowels and waSla are not necessary to write
+    ordinary Arabic text, but shadda is often marked in Arabic
+    printings.  Please let me know if shadda is really indispensable,
+    in that case I will try to implement shadda in some way.
+
+
+4.2 FILE FORMAT
+
+    This package uses its own format (coding system) for file I/O.
+    You cannot read the files saved in other format, e.g., ISO 8859-6,
+    ISO 10646, UNICODE, ArabTeX, xaw, etc.  As a matter of fact, I do
+    not know what format is mostly used in the world to save Arabic
+    texts.  If you have texts saved in certain format and would like
+    to edit them with Mule, please send me the documentation of your
+    format.  I will try to implement file I/O routine for that format.
+
+
+4.3 MISCELLANEOUS LIMITATIONS
+
+    * Tab does not work if display-direction is non-nil.
+
+    * transpose commands and rectangle commands do not work in most cases.
+
+
+5. ADDRESS
+
+    Bug reports and comments should be sent to this mailing list
+    (mule@etl.go.jp) or directly to me (ntakahas@etl.go.jp).  Any
+    kinds of suggestions or demands are greatly appreciated.
+
+
+TAKAHASHI Naoto
+Electrotechnical Laboratory, Japan
+ntakahas@etl.go.jp