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

Re: Correct? Display Horizontal Ellipsis on UTF-8 env



On May 21, 2007, [emacs-w3m:09457],
shinichiro (at stained-g.net) wrote:

> > > > やはり、utf-translate-cjk-set-unicode-range の有無に係わらず、2カ
> > > > ウントしてます。
> > > 
> > > 「’」のところで`C-u C-x ='とすると、どのように表示されますか?
> > > 
> > > 手元では、utf-translate-cjk-set-unicode-range有り(#x2019を含む)なら
> > > 「charset: japanese-jisx0208」で無しなら「charset:
> > > mule-unicode-0100-24ff」となり、想定どおりに動いているように見えます。
> 
> これは先にテストしていた時の私のミス[*1]で、木下さんのおっしゃる通り、
> 
> o #x2019 を含む場合:
>   character: ' (53447, #o150307, #xd0c7, U+2019)
>     charset: japanese-jisx0208 (JISX0208.1983/1990 Japanese Kanji: ISO-IR-87.)
[...]
> となりました。 

結局、カーソルの動きについてはどうだったのでしょうか。
japanese-jisx0208なのに「’」の位置で2カウントしてしまうのでしょうか。
だとすると、私の手元では再現できず、原因もわかりません。

> [*1] 該当の #x2019 だけを外さずに、のきなみ全体を無効有効で切替えてました。

全体で切り替えても機能すると思うのですが……。手元では、
utf-translate-cjk-set-unicode-rangeに#x2019が含まれている場合には
japanese-jisx0208で1文字2桁分、#x2019が含まれていない場合や
utf-translate-cjk-set-unicode-rangeの設定全体が無い場合には
mule-unicode-0100-24ffで1文字1桁分、という動作になっています。

> で、#x2019 を utf-translate-cjk-set-unicode-range から除外すると、
> `xterm -cjk_width' 上で `emacs -nw' した場合に、
[...]
> > Emacs単独で使う場合には問題なさそうですが、たとえば、-cjk_width付き
> > のxtermで使うなら、それに合わせる必要があります。上記の設定だと、
> > U+2018, U+2019を表示すると、Emacsの動作はhalfwidthだけど表示はfullwidth、
> > というふうになって、カーソルがずれてしまったりするものと思います。
> 
> この問題が起こりうまくない、という事だったかと思います。

はい。「それに合わせる」というのは、-cjk_widthで2桁分の表示になる文字
についてutf-translate-cjk-set-unicode-rangeで設定しておく、という意味
になります。

なお、先に挙げたDebianパッケージlanguage-env, mule-ucsでの設定例は、
主にjapanese-jisx0208に対応する文字について2桁扱いになるよう設定して
あるだけで、[emacs-w3m:09351]でも述べたとおり、U+2460-U+2473など設定
できていない文字はありますし、UTF-8環境での文字幅問題が完全に解消され
るわけでもありません。

> しかし、これは utf-translate-cjk-set-unicode-range に U+2018, U+2019 が
> 含まれるか否か、という問題に限った話ではなくて、xterm の `-cjk_width'
> オプションがどうもおかしいのではないかと思い、今回の utf8 のテキストを
> 添付したのです。

どのように-cjk_widthがおかしいと思われているのでしょうか。

U+00E0等について、xtermは-cjk_width付きでも1桁分で表示すべきだという
ご意見なのでしょうか。

U+00E2等が2桁分の表示になっていないことについてはおかしいと思いまし
たが、そういうことをおっしゃっているようには見えませんでした。

> 私の環境では、`-cjk_width' オプション付きの xterm 上で emacs -nw し、添
> 付したテキスト2行目を見ている状態で C-e すると、`t' の位置に飛んでしま
> います。

はい。手元でも同じようになります。そして、
utf-translate-cjk-set-unicode-rangeに#x00e0, #x00e1など-cjk_widthで
2桁分の表示になっている文字の設定を加えておけば、見た目でもC-eで行末
に移るようになります。

-- 
木下達也