Emacs22 + UTF-8 における文脈依存な文字幅の問題について
■ Emacs22 + UTF-8 における文脈依存な文字幅の問題について
UTF-8 には文字の幅が文脈依存 (ambiguous) となる文字があって、 矢印や記号 (■▲)、罫線などの文字は状況に応じて文字幅が変化します。
下の 2 つの画像は Emacs で同じファイルの内容を narrow character として判定させた場合と、 wide character として判定させた場合のスクリーンショットです。
| narrow | wide |
|---|---|
![]() |
![]() |
現状、 Emacs22 はこれらの文字をデフォルトで narrow character として判定します (※のように化けてしまう文字もあります)。
文字によって幅を変えるプロポーショナルフォントを前提としたテキストであれば あまり問題にはならないと思いますが、等幅フォントに向けて書いたテキストでは 表示がガタガタになってしまい問題になります。
■ 解決策
これらの文字を wide character として判別させるには以下の設定を行います。
(utf-translate-cjk-set-unicode-range '((#x00a2 . #x00a3) ; ¢, £ (#x00a7 . #x00a8) ; §, ¨ (#x00ac . #x00ac) ; ¬ (#x00b0 . #x00b1) ; °, ± (#x00b4 . #x00b4) ; ´ (#x00b6 . #x00b6) ; ¶ (#x00d7 . #x00d7) ; × (#X00f7 . #x00f7) ; ÷ (#x0370 . #x03ff) ; Greek and Coptic (#x0400 . #x04FF) ; Cyrillic (#x2000 . #x206F) ; General Punctuation (#x2100 . #x214F) ; Letterlike Symbols (#x2190 . #x21FF) ; Arrows (#x2200 . #x22FF) ; Mathematical Operators (#x2300 . #x23FF) ; Miscellaneous Technical (#x2500 . #x257F) ; Box Drawing (#x25A0 . #x25FF) ; Geometric Shapes (#x2600 . #x26FF) ; Miscellaneous Symbols (#x2e80 . #xd7a3) (#xff00 . #xffef)))
■ 備考
Emacs だけでなく Vim や mlterm など多数のソフトウェアにも同様の症状が見られ、 そもそも UTF-8 自体の問題であるという見解もあるようですが、 とりあえず Emacs で直ったので良いとします。
Comments for This Page. Date: 2006-02-23 00:00 (JST)

