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

Re: 「×」の 表示



>> On Tue, 20 Apr 2004 17:52:57 +0900
>> 「土」== tsuchiya@namazu.org (TSUCHIYA Masatoshi) said as follows:

土> と思ったのですが,今度は「×」が (make-char 'latin-iso8859-1 87) 
土> に変わってしまうことに気づきました.

土> 例: http://www.kagakudojin.co.jp/kagaku/literacy/index.html

土> もちろん,Mule-UCS の設定でなんとかできるのだろうとは思います.し
土> かし,本質的には,コード変換はなるべく避けて通るのが正しい道のよう
土> な気がしてきました.

土> 将来の emacs-w3m-1.5 で w3m-0.5 / w3m-m17n / w3mmee を使っている場
土> 合には,w3m-input-coding-system / w3m-output-coding-system はペー
土> ジの文字コードと連動するようにして,文字コードの変換をなるべく行わ
土> ないように変更しましょう.

‥‥と思ったんですが,w3m の実装を調べてみると,この案には不具合がある
ことに気づきました.このように変更すると,

    w3m -halfdump -O UTF-8

というオプションで呼び出されることもあれば,

    w3m -halfdump -O ISO-2022-JP-2

というオプションで呼び出されることもある,ということになります.それで,
現行の w3m は,<li> や <table> をレンダリングするための記号を -O オプ
ションで指定された出力用文字コードに基づいて決めているようですから,

    w3m -halfdump -O UTF-8         => カラム幅 == 1 の記号が使われる
    w3m -halfdump -O ISO-2022-JP-2 => カラム幅 == 2 の記号が使われる

となって,表示されるページ毎に使われる記号がころころ変わるということに
なってしまうでしょう.

この問題に対する解決策なんですが,

(1) 上述の案の通り,ページ毎に charset を切り替える.w3m にはパッチを
    当てて,記号のカラム幅を外部指定できるようにして対処する.

(2) 上述の案を破棄し,-O オプションで指定する出力用文字コードは常に一
    つにしておく.記号が再現されないなどの問題は,Mule-UCS の設定でし
    のいでもらうことにする.

のどちらかだと思います.

オプションをよくよく調べてみると,use_wide というオプションがあって,

    w3m -halfdump -o use_wide=0 -O ISO-2022-JP-2

と指定すると,記号のカラム幅は1として扱われるようになるのですね.そう
すると,

(1')上述の案の通り,ページ毎に charset を切り替える.Unicode の記号が
    表示できる場合は use_wide=0 を指定して,常に Unicode の記号を使う.
    表示できない場合は,ページ毎に記号が変わるのはやむを得ないと諦めて
    もらう.

さて,どうしたものでしょうか.

-- 
土屋 雅稔@誰かパッチを作ってくれないかしらと他力本願な気分