emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 23.0.60; describe-char gives wrong information


From: Kenichi Handa
Subject: Re: 23.0.60; describe-char gives wrong information
Date: Tue, 08 Jan 2008 14:55:23 +0900

Sorry for the late response.

In article <address@hidden>, Peter Dyballa <address@hidden> writes:

> Hello!
> When inquiring information for Ὀ (i.e. a capital Omicron and a  
> psili), maybe not correctly "composed" coming from a XeTeX document,  
> GNU Emacs 23.0.60 tells me:

>               character: Ο  (927, #o1637, #x39f)
>       preferred charset: gb18030 (GB18030)
>              code point: 0xA6AF
>                  syntax: w    which means: word
>                category: G:Greek characters of 2-byte character sets  
> c:Chinese g:Greek h:Korean
>                          j:Japanese
>             buffer code: #xCE #x9F
>               file code: #xCE #x9F (encoded by coding system utf-8-unix)
>                 display: composed to form "Ὀ" (see below)
        
>       Composed with the following character(s) "̓ " by the rule:
>               (?Ο  (tc . bc) ?̓ )
>       The component character(s) are displayed by these fonts (glyph codes):
>        Ο : -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-80-ISO8859-7 (#xCF)
>        ̓ : -monotype-arial unicode ms-medium-r-normal--13-127-74-74-p-129- 
> gb18030.2000-0 (#xBE35)
>       See the variable `reference-point-alist' for the meaning of the rule.
        
>       Character code properties are not shown: customize what to show
        
>       There are text properties here:
>         auto-composed        t
>         composition          [Show]
>         fontified            t

> Character U+039F can't hardly belong to a Chinese encoding. It's a  
> Greek character, taken off an ISO 8859-7 font.

Actuallyy many CJK charsets contain Greek letters.  As you
are in de_DE locale, the order of iso-8859-7 and gb18030 in
charset list is arbitrary.  Try C-x C-m l greek RET C-u C-x
=.  iso-8859-7 should be preferred.

> Its psili modifier or  
> COMBINING COMMA ABOVE is at U+0313, outside any Chinese encoding, too  
> (although GB18030-2000 defines both as 0xA6AF and as 0x8130BE35).  
> Isn't Unicode, as in the name "Unicode Emacs," more
> appropriate?

For the moment, I don't have a good idea about how to order
character sets that are outside of users locale.  Perhaps,
if the character doesn't belong to any of:
 (get-language-info current-language-environment 'charset)
the "preferred charset" line should not be showned.

> And then there is no sense in using a non-existing character from an  
> inappropriate font when the default font, Lucida Sans Typewriter, has  
> this character COMBINING COMMA ABOVE. And this font also has GREEK  
> CAPITAL LETTER OMICRON at U+039F.

Oops, Emacs assumed that GB18030 fonts contains all GB18030
characters.  I've just installed a fix to check the contents
of GB18030 fonts before using it.

By the way, in emacs-unicode-2, the default fontset is not
yet tuned well for Unicode.  For instance, for Latin,
currently only these fonts are registered:

"ISO8859-1" "ISO8859-2" "ISO8859-3" "ISO8859-4" "ISO8859-9"
"ISO8859-10" "ISO8859-13" "ISO8859-14" "ISO8859-15"
"VISCII1.1-1"

As none of them have U+0313, Emacs tries these fallback fonts:

"gb2312.1980" "gbk-0" "gb18030" "jisx0208" "ksc5601.1987"
"CNS11643.1992-1" "CNS11643.1992-2" "CNS11643.1992-3"
"CNS11643.1992-4" "CNS11643.1992-5" "CNS11643.1992-6"
"CNS11643.1992-7" "big5" "jisx0213.2000-1" "jisx0213.2004-1"
"jisx0212" "ISO10646-1"

I agree that this doesn't yield a good result, but the
strategy of "use the default font if it contains the
charater" is also not good for non-Latin users.  Perhaps, to
use the default font or not should depend on the language
environment.

> Similarly GNU Emacs 23.0.60 handles Ὀ  (i.e. one letter Omicron with  
> psili):

>               character: Ὀ  (8008, #o17510, #x1f48)
>       preferred charset: gb18030 (GB18030)
>              code point: 0x81369132
>                  syntax: w    which means: word
>                category: g:Greek
>             buffer code: #xE1 #xBD #x88
>               file code: #xE1 #xBD #x88 (encoded by coding system utf-8-unix)
>                 display: by this font (glyph code)
>            -monotype-arial unicode ms-medium-r-normal--10-98-74-74-p-99- 
> gb18030.2000-0 (#x9132)
[...]
> And although it claims taking GREEK CAPITAL LETTER OMICRON WITH PSILI  
> at U+1F48 off Arial Unicode MS, which has this glyph, it uses an open  
> box to display it. Because U+1F48 is not defined in GB18030? The byte  
> sequence (code point) 0x81369132 is not defined in GB18030-2000.

If that font doesn't contain that character, with the above
change, that font won't be used.

---
Kenichi Handa
address@hidden




reply via email to

[Prev in Thread] Current Thread [Next in Thread]