[mew-dist 28987] Re: Русский пример
Hideyuki SHIRAI ( 白井秀行 )
shirai at example.com
2009年 9月 4日 (金) 13:37:38 JST
白井です。mew-dist に出し損なった。。。
From: Isao YASUDA <isao at example.com> さん曰く
Subject: [mew-dist 28983] Re: Русский пример (Re: Summary でのロシア語表示)
Message-ID: <20090903.214212.255514494.isao at example.com>
Date: Thu, 03 Sep 2009 21:42:12 +0900 (JST)
>>- Summary モードに入るとき:
>> 真 .mew-summary-xxx があれば、UTF-8 で読み込む
>> そうでなくて、旧 .mew-summary があれば ctext で読み込む
>>- Summary モードを書き出すとき:
>> 真 .mew-summary-xxx へ UTF-8 で書き込む
>>
>>- ロシア語が変な場合は、一回 s + all。
>
> CTEXT も UTF-8 もユーザーで選択できるならありがたいです。
もしやるなら、
(defvar mew-cs-summary-cache-file 'utf-8-unix)
みたいに、boundp でそれ以前それ以降を切り分けられると、各種寄生
虫作成者はうれしいです。
> あと JIS のエスケープシーケンスにくるまれた携帯メールの絵文字は
> UTF-8 にエンコードするとエラーになるので,
> そのあたり,いままでの受信 Summary の再保存で不具合が出る可能性が
> ありそうですね。
しかし、これはまずそうですね。
....
>>キリル文字の char-width って 1 ですか? 2 ですか?
>>
>>(string-width "キリル文字")
>>or
>>(char-width ?キリル文字)
>>
>>でわかります。なにもいじっていなければ、通常日本人向けの LANG か
>>ら立ち上げた Emacs23 以降だと 2 になると思われます。
>
> おっしゃるとおり,2 になりますね。
>
>>2 だとすると、UTF-8 にして見た目が半角の文字になったとしても、結
>>局は subject が予想の半分しか表示されず、かつ summary がめちゃく
>>ちゃになるような気がします。
やっぱり、安田さんの用途だったら、
(set-fontset-font
(face-attribute 'default :fontset)
'cyrillic-iso8859-5
(font-spec :family "DejaVu Sans Mono"))
(set-char-table-range char-width-table '(#x00a0 . #x00a0) 1)
(set-char-table-range char-width-table '(#x00a7 . #x00a7) 1)
(set-char-table-range char-width-table '(#x00ad . #x00ad) 1)
(set-char-table-range char-width-table '(#x0401 . #x040c) 1)
(set-char-table-range char-width-table '(#x040e . #x044f) 1)
(set-char-table-range char-width-table '(#x0451 . #x045c) 1)
(set-char-table-range char-width-table '(#x045e . #x045f) 1)
(set-char-table-range char-width-table '(#x2116 . #x2116) 1)
とかして、強制的に cyrillic-iso8859-5 だったら半角?のフォントで、
char-width が 1 にしちゃった方が幸せになるような気がします。もし、
変わらなかったら、set-fontset-font に 'prepend 付ければよいかも。
# 1 にする UNICODE のレンジは、今、でっち上げたのでもしかすると
# 間違っているかもしれません。
> だんだん,Emacs-23 の CTEXT テキスト表示の際のフォント選択の問題に
> 過ぎないような気がしてきました。
うーーん、全然わかりません。
> かつての Emacs 21 & Mule-UCS の場合,
> un-define-change-charset-order
> によって JIS より mule-unicode-xxxx の優先度を高くするなどの
> 指定ができたので,このような問題をユーザーで回避できただろうと思うの
> ですが,Emacs 22 以降だとだめなのでしょうか。
自分は、Mule-UCS だと
unicode-basic-translation-charset-order-list を設定していました。
Emacs22 without Mule-UCS だと
utf-translate-cjk-set-unicode-range を使って、文字範囲を cjk じゃ
ないように設定すれば良かったんじゃないかな?
Emacs23 は思いっきり変わったのでよくわからないまま、w3m と Emacs
でいろいろと文字幅が一緒になるように、前述の方法(もっとごちゃご
ちゃだけど) で調整しています。
--
白井秀行 (mailto:shirai.hideyuki at example.com)
Mew-dist メーリングリストの案内