Re: emacs-bidi: arabic
Alex Schroeder <[email protected]>
| Newsgroups | gmane.emacs.bidi |
|---|---|
| Message-ID | <[email protected]> |
TAKAHASHI Naoto <[email protected]> writes: >> When I enable auto composition, then there is no font available (I use >> the m17 font tarball you suggest on the web site). The characters are >> all hollow boxes. When I disable font-lock-mode, it works again -- > > What do you mean by "it works again"? Does "works" mean "Arabic > characters are displayed"? If so, when did it "work" before? Before > you enabled auto-composition? Sorry for the poor wording. When I type the characters, the glyphs are displayed. When I enable auto-composition, the glyphs are replaced by rectangles. When I call M-x font-lock-mode, the glyphs are displayed again -- but without composition. I guess this means when I disable font-lock-mode, auto-composition is disabled as well. This seems logical in retrospect, but confused me at the time, because the menu item remained checked. Perhaps font-lock should set composition-lock-mode as well. That is, if I read the keymap correctly. As you say on the web page that the latest font-lock stuff gives you trouble, this is probably not urgent. >> How can I check wether the right fonts are used? > > M-x describe-fontset This seems to have a standard value, except for the few Neep Alt mentionings. Fontset: -*-*-medium-r-*-*-20-*-*-*-c-*-fontset-startup CHARSET or CHAR RANGE FONT NAME --------------------- --------- ascii -jmk-neep alt-medium-r-normal--20-180-75-75-c-100-iso8859-1 [-jmk-Neep Alt-Bold-R-Normal--20-180-75-75-C-100-ISO8859-1] [-jmk-Neep Alt-Medium-R-Normal--20-180-75-75-C-100-ISO8859-1] latin-iso8859-1 -jmk-neep alt-*-iso8859-1 latin-iso8859-2 -*-iso8859-2 latin-iso8859-3 -*-iso8859-3 latin-iso8859-4 -*-iso8859-4 thai-tis620 -*-*-*-tis620-* greek-iso8859-7 -*-*-*-iso8859-7 arabic-iso8859-6 -*-*-*-iso8859-6 hebrew-iso8859-8 -*-*-*-iso8859-8 katakana-jisx0201 -*-*-*-jisx0201-* latin-jisx0201 -*-jisx0201-* cyrillic-iso8859-5 -*-*-*-iso8859-5 latin-iso8859-9 -*-iso8859-9 latin-iso8859-15 -*-iso8859-15 latin-iso8859-14 -*-iso8859-14 japanese-jisx0208-1978 -*-*-*-jisx0208.1978-* chinese-gb2312 -*-*-*-gb2312.1980-* japanese-jisx0208 -*-*-*-jisx0208.1990-* korean-ksc5601 -*-*-*-ksc5601.1989-* japanese-jisx0212 -*-*-*-jisx0212-* chinese-cns11643-1 -*-*-*-cns11643.1992-1 chinese-cns11643-2 -*-*-*-cns11643.1992-2 japanese-jisx0213-1 -*-*-*-jisx0213.2000-1 chinese-big5-1 -*-*-*-big5-* chinese-big5-2 -*-*-*-big5-* chinese-sisheng -*-sisheng_cwnn-* ipa -*-muleipa-* vietnamese-viscii-lower -*-viscii1.1-* vietnamese-viscii-upper -*-viscii1.1-* arabic-digit -*-*-*-mulearabic-0 arabic-1-column -*-*-*-mulearabic-1 ascii-right-to-left -*-iso8859-1 lao -*-*-*-mulelao-1 arabic-2-column -*-*-*-mulearabic-2 indian-is13194 -*-*-*-is13194-devanagari indian-glyph -*-*-*-devanagari-cdac tibetan-1-column -*-*-*-muletibetan-1 mule-unicode-2500-33ff -*-iso10646-1 mule-unicode-e000-ffff -*-iso10646-1 mule-unicode-0100-24ff -*-iso10646-1 [-Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO10646-1] ethiopic -*-*-*-ethiopic-unicode chinese-cns11643-3 -*-*-*-cns11643.1992-3 chinese-cns11643-4 -*-*-*-cns11643.1992-4 chinese-cns11643-5 -*-*-*-cns11643.1992-5 chinese-cns11643-6 -*-*-*-cns11643.1992-6 chinese-cns11643-7 -*-*-*-cns11643.1992-7 indian-2-column -*-*-*-muleindian-2 tibetan -*-proportional-*-muletibetan-2 japanese-jisx0213-2 -*-*-*-jisx0213.2000-2 Based on this, I assumed that perhaps no ISO 10646 font was installed. However: /home/alex/elisp $ xlsfonts -fn "-*-iso10646-1"|wc -l 858 Running C-u C-x = on one of the empty boxes returned the following: character: ي (01213452, 333610, 0x5172a) charset: mule-unicode-0100-24ff (Unicode characters of the range U+0100..U+24FF.) code point: 46 42 syntax: w which means: word category: ?:Auto composition activator b:Arabic Properties: arabic-isolated-form: 325969; arabic-final-form: 325970; arabic-initial-form: 325971; arabic-medial-form: 325972; buffer code: 0x9C 0xF4 0xAE 0xAA file code: 0xD9 0x8A (encoded by coding system mule-utf-8-unix) Unicode: 064A font: -Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO10646-1 Composed with the following character(s) to form `ي'. There are text properties here: fontified t composition (12 1 [325972]) Ok, I checked again for the font used: /home/alex/elisp $ xlsfonts -fn "-Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO10646-1" -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso10646-1 -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso10646-1 -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso10646-1 Perhaps the correct question to ask is "How do I check wether the characters in the given range are really in font X?" I then tried this shell script to start emacs-bidi: if xlsfonts | grep -q m17n; then echo "m17n fonts are already installed" else echo "m17n fontpath added" xset +fp /usr/local/src/m17nfonts/ fi exec /usr/local/src/emacs-bidi/src/emacs -geometry 80x20 -fn "-m17n-mule-medium-r-normal--20-140-100-100-p-90-iso10646-1" -q -l /home/alex/elisp/arabic-init.el Where arabic-init.el contains: (set-language-environment "Arabic") (find-file "~/arabic.txt") When I do this, composition results in glyphs being displayed -- yay! One other problem pops up then, however. Something with the frame size and font positioning is wrong. The resulting frame is 227 normal (latin number) characters long. For each lating character, there is a lot of whitespace above and below, such that latin text seems to be double spaced. I can provide screenshots if you are interested. The Emacs I use for dayly work is GNU Emacs 21.2.90.1 (i686-pc-linux-gnu, X toolkit, Xaw3d scroll bars) of 2002-05-28 on confusibombus -- and it also does not like the m17n fonts. When I run the following code, there is no double spacing, but the frame is also resized such that it covers two of my virtual displays, where each display is 1600x1200, I think. (set-frame-font "-m17n-mule-medium-r-normal--20-140-100-100-p-90-iso10646-1") Perhaps I did something wrong when installing the m17n fonts, or there is some bad interaction with my X? Alex.