トップ «前の日記(2004-11-08 (Mon)) 最新 次の日記(2004-11-11 (Thu))» 編集

猫熊は燃えつきた?!日記

最近なんにもやっていませんが、なにかやったらこちらに置くようにしています。
2002|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|
2011|09|
2012|02|


2004-11-09 (Tue) [長年日記]

Meadow掲示版

ぼくが管理人に加えてもらって一週間。改めて spam の多さを感じますな。

こういうときには Emacs-w3m の antenna 機能と Emacs-w3m の Auto Login 機能は最強の組合せだ。

Emacs-w3m + w3m-0.5.1 + Emacs CVS-HEAD *without* Mule-UCS

の組合せで Emacs-w3m の default 設定だと化けるページがある。設定を少しいじると化け方も変わってくるのだが。例えば、ぼくの「ダン日記」もそう。UTF-8 のページで起こるのかも。

これぼくだけ?ぼくだけじゃなかったら対策を考えなければなるまい。

というのを、Zaurus の w3m を w3m-m17n から w3m-0.5.1 に変えたときに気づいたのだけど、自分の設定のせいだと思って深追いはしていない。

UTF-8

文字化けは、
  (setq w3m-input-coding-system 'utf-8)
  (setq w3m-output-coding-system 'utf-8)
で止まる(実は下の行の設定だけで十分)んだけど、そうすると mule-unicode-0100-24ff などの文字がわらわら出てくるのでそれなりに font をそろえないと使いものにならない。

ISO10646-1 な font

は、以前から /efont/ のものを愛用している。Zaurus 向けには単にファイル容量の小さいものを、という理由で、h16.bdf (あと 24 と 24 を resize した 20 とそれぞれの bold) を入れていたのだが、「○の中に1」とかが細長で違和感があったので、最新版を こちらから入手して f16.bdf とかに変えてみた。
あれれ?なんだか他のフォントとベースラインがずれているようで、思いっきり(といっても 2-3dot)行間が開くようになってしまった。
よくわからんが、山勘で
 _MULE_BASELINE_OFFSET -3
を消して、pcf 作り直したらうまくいったのだけど、これって単に昔から愛用している font 達との相性が良くないだけなんだろうな。
/efont/ の unicode-bdf には Biwidth もあるけど、こちらは試したことないな。ぼくの環境でちゃんと Biwidth で動くのだろうか?

_MULE_BASELINE_OFFSET って?

emacs のソースを見たら、fontset.h に以下のコメントを発見。
  /* The baseline position of a font is normally `ascent' value of the
     font.  However, there exists many fonts which don't set `ascent'
     an appropriate value to be used as baseline position.  This is
     typical in such ASCII fonts which are designed to be used with
     Chinese, Japanese, Korean characters.  When we use mixture of
     such fonts and normal fonts (having correct `ascent' value), a
     display line gets very ugly.  Since we have no way to fix it
     automatically, it is users responsibility to supply well designed
     fonts or correct `ascent' value of fonts.  But, the latter
     requires heavy work (modifying all bitmap data in BDF files).
     So, Emacs accepts a private font property
     `_MULE_BASELINE_OFFSET'.  If a font has this property, we
     calculate the baseline position by subtracting the value from
     `ascent'.  In other words, the value indicates how many bits
     higher we should draw a character of the font than normal ASCII
     text for a better looking.
 
     We also have to consider the fact that the concept of `baseline'
     differs among languages to which each character belongs.  For
     instance, baseline should be at the bottom most position of all
     glyphs for Chinese, Japanese, and Korean.  But, many of existing
     fonts for those characters doesn't have correct `ascent' values
     because they are designed to be used with ASCII fonts.  To
     display characters of different language on the same line, the
     best way will be to arrange them in the middle of the line.  So,
     in such a case, again, we utilize the font property
     `_MULE_BASELINE_OFFSET'.  If the value is larger than `ascent' we
     calculate baseline so that a character is arranged in the middle
     of a line.  */

結論

やっぱ、Mule-UCS の方がいいや。Zaurus も 10MByte 近くの実メモリと Mule-UCS の load に地下鉄一駅分かかる、という問題さえなければ、Mule-UCS を使うのだが。。。;_;

有沢さんを見習って、UCS の定義を自分向けにチューニングするべきかも。お手軽にやるには、Emacs CVS HEAD の utf-translate-cjk-set-unicode-range() だな。


書いている人: 白井秀行 (mailto:shirai@meadowy。org)
訪問して下さった人: 今日: 人, 昨日: , 過去: 人 (2007年5月10日から)
RDF Feed