2008年1月3日の日記の1番目の記事へのコメント
■uim.elのフォント問題
uim-update-fontすると表示フォントが変になるという問題について再度挑戦してみました.とりあえずemacs-unicode-2では思い通りにフォントが扱えなくてハマり気味.何で等幅フォントを使ってもひらがなの幅がまちまちになるんだろうなぁ.半角カタカナなんか露骨に幅計算間違ってるっぽいし.・・・というわけで,早々に諦めちゃいました.だってー,CVS版なんだもーん.
次に,攻め方を変えて,face側から考えてみることに.元々uim.elでは,defaultなるfaceをcopy-faceでコピーして,それをベースに各種装飾用のfaceを作っています.で,describe-face で default を見ると,結構色んな属性が設定されてるんですよね.これがすっぴんだったら世の中平和なんじゃないかなーと思い,すっぴんのfaceを作るコマンドが無いか探してみたら,make-faceなんてそれっぽいのがあるじゃん.
make-face で適当なfaceを新規に作って,describe-face で中を確認すると,全属性がunspecified.わーい.こいつに前景色・背景色と下線情報をセットすればdefaultなんか関係無くなるんじゃね? 試しにやってみたらばっちりでした.uim.elのロード後にEmacs側でフォントサイズ変えるとちゃんと追従します.わーい.
というわけで,copy-faceをmake-faceに置き換え,全く必要無くなった uim-update-font を削除してcommitしました.・・・はー,なんでcopy-faceなんて使ってたんだろうなぁ・・・(´・ω・`)
ちなみに,もうそんなことは起きないとは思うんですが,何か変換候補やプリエディットのフォントが変だなーという場合は,「M-x describe-face」で,「uim-」で始まるfaceと「default」とを見比べてみるといいのかも.あと「M-x list-faces-display」とかやると,faceどもを並べて見ることができます.
2008年1月3日の日記の1番目の記事へのコメント
[コメントを書く]