From: Araki K. <ara...@us...> - 2011-05-15 06:01:09
|
荒木です。 From: KOIE Hidetaka (鯉江英隆) <hi...@ko...> Subject: [Mlterm-dev-ja] U+00C5の幅について Date: Wed, 04 May 2011 18:24:21 +0900 (JST) Message-ID: <201...@ko...> > emacsのバージョン22から23を上げてから画面の乱れが頻発するようになり、 > 関係の深い方に問い合わせたところ、 > mlterm側で対処方があるか聞いてしてほしいと言われました。 > その方の分析は以下のとおりです。よろしくおねがします。 御報告ありがとうございます。 hg repository にさきほど push した修正により、--ucsprop オプションを 追加してみました(http://mlterm.sf.net/mlterm-3.0.4pre-20110515.tar.gz にもソース一式を置いておきます。)。 このオプションを指定すると、UTF-8 以外のエンコーディングでも、 Unicode の East Asian Widthプロパティによる文字幅を使用するようになり ます。 これで解決するかどうか御確認いただきますようお願いします。 > どうも emacs と mlterm で、 U+00C5(char28.txt にある文字。 > LATIN CAPITAL LETTER A WITH RING ABOVE)の表示に使われるフォ > ントが持つ U+00C5 のグリフの幅について意見が一致していないよ > うですね。 > > emacs では (aref char-width-table #xC5) => 1 というようにこの > 文字の文字幅(というかコラム幅)は 1 なんですが、mlterm は > encoding が euc-jisx0213 の場合 U+00C5 の文字幅が 2 だと思っ > ているようです。 > > 試しに (aset char-width-table #xC5 2) を実行すれば画面が壊れ > ることは無くなりますが、 mlterm の仕様が分らないのでどれだけ > の文字について aset をやればよいのやら。 > > 端末と Emacs とで特定の文字の幅についての合意事項をやりとり > する機構がない以上、基本的には Unicode の East Asian Width > で N(arrow) となっている文字は幅1として取り扱うしかないと思 > います。 ---- Araki Ken ara...@us... |