[Top][All Lists]
[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
- Re: 23.0.60; describe-char gives wrong information,
Kenichi Handa <=
- Re: 23.0.60; describe-char gives wrong information, Peter Dyballa, 2008/01/08
- Re: 23.0.60; describe-char gives wrong information, Kenichi Handa, 2008/01/08
- Re: 23.0.60; describe-char gives wrong information, Kenichi Handa, 2008/01/10
- Re: 23.0.60; describe-char gives wrong information, Peter Dyballa, 2008/01/10
- Re: 23.0.60; describe-char gives wrong information, Kenichi Handa, 2008/01/13
- Re: 23.0.60; describe-char gives wrong information, Peter Dyballa, 2008/01/14
- Re: 23.0.60; describe-char gives wrong information, Kenichi Handa, 2008/01/15