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

[debian-users:47535] East Asian Ambiguous Character Width



松尾といいます.

# あんまり詳しくないので,間違いを述べる可能性がありますが,その時は容
# 赦なく突っ込んでください.

East Asian Ambiguous Character Width
幅のあいまいな文字の扱いについてです.

現在,いくつかのアプリケーションでは,ambiguous characters を必ず
FULLWIDTH として扱うようなオプションが用意されています.例をあげます.

(u)xterm
-cjk_width というオプションがあります

vim
set ambiwidth=double と設定する

mlterm
col_size_of_width_a = 2 と設定する

emacs22 で utf-translate-cjk-mode を使っている場合
utf-translate-cjk-set-unicode-range で設定する

などです.ところが一般人が良く使いそうな端末エミュレータである
gnome-terminal や konsole ではこのような設定が出来ないのが現状です.

試しに以下のようなファイルを表示させてみました.
http://mars.shehas.net/~tmatsuo/bts/symbols.txt

まずは適切に設定した mlterm です
http://mars.shehas.net/~tmatsuo/bts/mlterm.png

Debian/sid での gnome-terminal
http://mars.shehas.net/~tmatsuo/bts/gnome-terminal.png
(これはひどいです.文字が食い込み合っています)

Debian/sid での konsole
http://mars.shehas.net/~tmatsuo/bts/konsole.png
(中途半端な幅です)

この後 Ctrl-l を押下して画面をクリアすると以下のようになります.
http://mars.shehas.net/~tmatsuo/bts/konsole-after-ctrl-l.png
(どうやら内部では HALFWIDTH として扱われているようです)

次期 stable がそろそろ出るというのにこういう状態はちょっと悲しいと思う
のでなんとかならないかと少し調べてみました.

konsole については下記のページで議論が行われており,パッチも投稿されて
います.
http://bugs.kde.org/show_bug.cgi?id=41744

このパッチをあてて konsole をコンパイルしたところ,以下のような出力を得
る事が出来ました.まあ良さそうなので BTS してあります.#395141です.
http://mars.shehas.net/~tmatsuo/bts/konsole-cjk_width.png

gnome-terminal ではこの仕事は libvte4 の受け持ちでした.稚拙ですが,
konsoleのパッチを真似て環境変数を使うようなパッチを書いてみました.する
とこちらもうまく表示する事が出来ました.これも BTS しました.#395133で
す.
http://mars.shehas.net/~tmatsuo/bts/gnome-terminal-cjk_width.png

ここまでは良いのですが,これらのパッチを使うと ncurses(?)を使ったアプリ
ケーションで表示が乱れてしまいます. (BTS してから気づいたのですorz)

konsole 上で kernel の menuconfig
http://mars.shehas.net/~tmatsuo/bts/konsole-make_menuconfig.png
(これじゃ設定出来ません)

gnome-terminal 上で dpkg-reconfigure
http://mars.shehas.net/~tmatsuo/bts/gnome-terminal-dpkg_reconfigure.png
(動作には支障が無いものの,表示の乱れが気になります)

せっかくここまで来たのだから,これらの問題もちょちょいと解決できればよ
かったのですが,どうも力不足のようです.そこでどなたかこの問題の原因究
明を手伝っていただける方はいらっしゃらないでしょうか.または調査のため
のポインタ等を教えていただけるだけでもありがたいです.

もちろん,私が間違った方向へ突っ走ってしまっているのであれば指摘をして
いただけるとたいへん助かります.

-- 
Takashi Matsuo <tmatsuo@xxxxxxxxxx>
http://mars.shehas.net/~tmatsuo/public-key.txt
GPG Key fingerprint =
0C1F D86C 5E35 A687 B740  5F39 E93F 73FD DF2A 7B0C