2008年10月15日から2008年10月11日までの日記を表示中

2008年10月15日 (水)

alt-cannadic-081012のextraをuim.elで使ってみた

昨日の続き.Emacs22 でちょっと試してみたんですが UTF-8 で uim 側とやりとりすると記号の大きさが変で変換候補の表示幅がおかしかったり確定した後のバッファを SJIS や EUC-JP で保存できなかったりとフォント以前に色々と変だったので早々に諦めて Emacs23 の上で試してみることにしました.

とりあえず Emacs23 を普通に CVS から引っ張ってきてビルドしたところ,セグって全く起動する気配がありません.「Fatal error」でも何でもいいから落ちた理由くらい教えてくれ (´・ω・`)

gdbで見て落ちているところをキーワードにググってみたらこれがヒット.あー,fontconfig が古いのか.見てみたら T60 の環境の fontconfig は 2.3.94 だとか.こりゃ古そうだ(笑).というわけで fontconfig を 2.6.0 にアップデート・・・しようとしたら freetype が古くてついてこれなかった (2.1.10だった) のでこっちもついでに 2.3.7 にアップデート.これでセグらずに Emacs23 が起動するようになりましたよ.よしよし.

で,.emacs に Emacs23 用の設定を加えてIPAゴシックを使うようにしたりEmacs22以下では anthy-utf8 を使わないように細工したり (ここでuim.elのしょぼいバグを見つけたりしてcommitしたorz) していざテスト.お,とりあえず uim.el 経由で「!!」を変換すると「‼」が表示されますな.確定もできる.何かIPAゴシックじゃないフォントみたいですが (IPAフォントを最新のに上げたら直りました) ひとまず uim.el でもいけそうな感じです.

Emacs23のフレーム幅が変

そんな具合で uim.el でも Anthy の辞書にある UTF-8 な文字を入力できることが確認できたわけなんですが,色々いじってたら問題発覚.インライン変換候補をウィンドウの右の方で出すと表示位置がずれます.何コレ.

変換候補の表示位置がずれる

・・・というかよく見るとフレーム (他のアプリケーションでいうところのウィンドウ) の初期幅が超でかいんですけどwww

幅が異常にでかいフレーム

数えてみたら丁度半角英数字160文字分の幅がありました.デフォルトで80文字分の幅に設定しているので倍になっちゃってる感じですかね.試しに .emacs で幅を40文字分に変更してみたら丁度80文字分の幅になったので多分正解.とはいえ半分にしたところで変換候補の表示位置がずれるとかそういう問題は何も解決しませんが.

160文字分の幅があった

.emacsの設定がおかしいのかと思ったんですが,「-q」をつけて Emacs23 を起動しても同じように横長のフレームが生成されちゃいます.くそー,何だこれ.

あれこれ試しているうちに,.fonts.conf をリネームして無効化した状態で「emacs -q -fn "IPAGothic"」とかやって起動すると設定通り半角英数字で80文字分の幅になることが判明.ただし,昔よく遭遇した「半角英数字が全角文字と同じ幅を占めてしまい全体的に間延びした感じに表示されてしまう」現象付きですが・・・

文字が間延びした状態

調べた所,この現象は fontconfig でフォントの「globaladvance」属性(?)を「false」にすれば出なくなるとかで (以前は fontconfig か何かにパッチを当てて回避していたような),手元の .fonts.conf でも ↓なことをやってきちんと回避してました.

 <match target="font">
  <test compare="contains" target="pattern" name="lang">
   <string>zh-tw</string>
   <string>zh-cn</string>
   <string>ja</string>
   <string>ko</string>
  </test>
  <edit name="spacing"><int>0</int></edit>
  <edit name="globaladvance"><bool>false</bool></edit>
 </match>

・・・ふぅ・・・ってこれは何も関係ないじゃないか orz.fontconfig のバージョンを 2.4.2 に落としてみたり libXft のバージョンを 2.1.13 に上げてみたりしましたが何も変わりません.ググってもそれっぽい情報は見つからないし・・・.うーん.

やっぱ当てずっぽうはダメですかねー.というわけで諦めて Emacs23 の src 以下を覗いてみることにしました.現象から察するに Emacs の中で文字の幅の計算を間違えているような雰囲気.とりあえず「width」とかでgrepをかけてそれっぽいファイルを・・・って src/xftfont.c にいきなり怪しいところが.

  if (INTEGERP (AREF (entity, FONT_SPACING_INDEX)))
    spacing = XINT (AREF (entity, FONT_SPACING_INDEX));
  else
    spacing = FC_PROPORTIONAL;

(中略)

  if (spacing != FC_PROPORTIONAL)
    {
      font->min_width = font->average_width = font->space_width
        = xftfont->max_advance_width;
      XftTextExtents8 (display, xftfont, ascii_printable + 1, 94, &extents);
    }
  else
    {

超あやしい.試しに printf を突っ込んでどこを通っているのか見てみたら spacing が FC_PROPORTIONAL になっていないようだったので,その直前で spacing に「FC_PROPORTIONAL」を設定してやったところ見事に設定通りの幅でフレームが表示されるようになったではないですか.いきなり到達するとは珍しい・・・.

しかし何だこりゃ.「spacing」自体は .fonts.conf で「0」に設定しているわけで (ちょうど globaladvance の無効化と一緒に設定してあった),/usr/local/include/fontconfig/fontconfig.h を見ると 0 は FC_PROPORTIONAL に相当するように見えます.

#define FC_PROPORTIONAL             0
#define FC_DUAL                     90
#define FC_MONO                     100
#define FC_CHARCELL                 110

が,Emacs 側で printf してみると spacing は 0 でなく「90」になってました.すなわち「FC_DUAL」・・・.なにそれ.「M-x list-fontsets」とかやってみると以下のように「p」でなく「d」と表示されるので確かに dual 扱いしているようです.

Fontset: -unknown-IPAゴシック-normal-normal-normal-*-16-*-*-*-d-0-fontset-auto1

どうして .fonts.conf で設定した情報がきちんと Emacs に伝わっていないのか・・・.次のエントリでその謎に迫ります.

Emacs23のフレーム幅が直った

・・・といきたいところだったんですが,先に「spacing」に注目して色々試してみたところ謎に迫ることなく回避策が見つかってしまったので深追いするのはやめにしちゃいました.見つかった回避策はこれ.

  • 「(set-default-font "IPAGothic-16:spacing=0")」のように,Emacsで使いたいフォント名の後ろに「:spacing=0」をつけておく (0でなく100や110でもなぜか平気)
  • .fonts.conf とかでそのフォントの spacing を 0 にしておく

こんだけです.IPAフォントに限った話なのかもしれませんが,どっちかだけだとダメでした.

というわけで,以下は Emacs23 + anthy-9100e + alt-cannadic-081012 + uim.el (trunk-r5595) で色々変換してみたところ.とりあえず変換候補の位置が正常になりましたよ,と.

「‼」

みんなが大好きな「まるきゅう」.「⑨」以外なぜかボコボコ.別のフォントになっている?

「⑨」

「⊕」は何か幅が変だな.

「⊕」

ていうか「波ダッシュ」と「全角チルダ」の見分けがつかないのですが (;´Д`)

「~」

それと,これまたよくわからんのですが,さざなみフォントとかVLゴシックを使う場合は「(set-default-font "VL Gothic-16:spacing=100")」みたいに「100」にしとかないとフレームの幅が直ってくれませんでした.しかもこれらフォントの場合は .fonts.conf に spacing を設定しなくても大丈夫っぽい.フォントまわりは相変わらず奥が深い症候群.

というわけで,とりあえず使えることを確認するだけのはずだったのになぜか脱線してこんなことになってしまったというお話でした・・・.しかしこんだけハマったのにググっても同じような話題が見当たらないってのがすごいですね.・・・ひょっとして一人思いっきり間違ったことしてたりするのかな・・・ま,いいか (´∀`)

おまけ: 「t」をくっつけて変換する方法は .uim に以下のように書いとけばいいんじゃないかと (何か足りなかったらごめん)

(require "japanese.scm")
(define ja-rk-rule
  (append  '(
            ((("t") . ()) ("t" "t" "t"))
            )
           ja-rk-rule))

雷電IV

日付も変わろうかという頃にようやく開封.とりあえずデフォルトの家庭用モード(?)を数回遊んでみました.初見で3ボスに到達するも,その後はスコアが伸びるだけで3ボスが全然倒せず疲れて終了.途中1回アーケードモードを難易度アーケードでやったら2ボスで死んだ(笑).やめちまえってくらいにセンスが無くて泣けます orz

2008年10月14日 (火)

帰宅

夕方頃に実家を出て再び川崎に立ち寄りつつ,日付が変わる頃に帰宅.実家で何をしたかというとサナギさんを4巻くらいまで読んだことくらいか.まあサナギさんは非常にためになる漫画でした.あ,あと最近話題のサンレッドの1巻もあったので読みました.「あんな使い古されたネタばかりの漫画はダメだ」ってことで2巻以降は買ってないそうです.残念 (´・ω・`)

alt-cannadic-081012のextraをuim.elで使ってみる

とりあえずUTF-8に対応したEmacsで .emacsに以下を足してくれ.後はフォントが整ったEmacsとanthy-utf8に対応したuimがあれば・・・.自分のEmacs22ではフォントがアレで豆腐になっちゃいましたがw

(if (>= emacs-major-version 22)
    (add-hook 'uim-load-hook
              '(lambda ()
                 (setq uim-lang-code-alist
                       (cons '("Japanese" "Japanese" utf-8 "UTF-8")
                             (delete (assoc "Japanese"
                                            uim-lang-code-alist)
                                     uim-lang-code-alist))))))

ちなみにuimをanthy-utf8対応化しようとして「--with-anthy-utf8」をつけてビルドし直しても全然対応してくれなくて軽くハマりました.実は installed-modules.scm が作り直されていなかっただけだったんですが.今後は毎回distcleanしよう・・・って何か前にもこんなことがあったような・・・.

2008年10月13日 (月)

M3-2008秋

晴れてたんで今日は自転車で行ってきました.9時くらいにPiOに着くように出発.で,ほぼ予定通り到着したわけですが・・・列が見当たらないけどこれは一体・・・って前の広場とか駐輪場側じゃなくて建物の右側に列作ってんのか! ていうか列の最後尾がどこだかわからなくて折り返し地点まで行っちゃったよ (´・ω・`).全然ちゃんと数えませんでしたが200〜300人はいそうな感じでした.すごいな・・・.4年前なんて9時半について9番目だったのにw.あと会場右側って意外と収容力あるんですね.

で,最初に並んだところから動かされることなくそのまま待機.おい,そこのお前!仲間内で楽しく談笑するのはいいけど動画を見るときくらいはイヤホンくらいしやがれ! ていうかお前動画流してるだけで見てねーじゃねーか.単にiPhoneで普段動画見たりしているところを連れにアピールしたいだけちゃうんかと.気持ちはわかるがいいからイヤホン(ry・・・なんてことを心の中で思いながら待つこと2時間半弱.開場 5分前くらいになってようやく列が動き出し,開場5分後くらいには中に入れました.ペナルティがあったのかどうかは不明.

入った時点で「A」だか「B」だかにでかい列ができててビビるも早い段階だけあって「F」はガラガラ.混む前にサクッと回って「B」に寄って,後は2Fに行って「レ」でちょっと買って完了.20分もかからずに予定していた分はほぼ終了です.相変わらず早いw.よみさんもそのくらいで終わったようで,「F」横の壁際の安地で遭遇して軽くお話ししたり.何か朝,並んでたらよみさんのすぐ後ろで人が倒れたとか.ううむ,陽射しにやられたのでしょうか.イベント時の体調管理には気をつけたいものです.

よみさんと別れた後は,遅れて搬入されてきたものを買ったり,先に帰ったよみさんの買いそびれを買ったり,何か面白そうなものが無いかとうろついたりするなどしたりして14時ちょっと前に離脱.離脱した時点でもまだ結構カタログがあったようですが,最終的に入場フリーになったのかな?

で,恒例の戦利品ですが,今回はこんな感じでした.CROSS GEARさんのCDは無料頒布とは思えない装丁な上におまけ付きで超ビビりました.というか超恐縮です.あと「Februa」が超楽しみ.

M3 2008秋

さて,いつもならこれで終わりなんですが,実は今日はよみさんと別れてから会場を離脱するまでの間にちょっとした事件に遭遇してしまいました.

お腹が空いてきたんで,ロビーに出てベンチの空いているところに座って朝に買っておいたおにぎりを食べようと一口二口とかじったところで,なんと壁際で談笑していた人が突然目の前にゴロリと倒れ込んできたのです・・・.

最初足がつったのかなと悠長に思っていたんですが,何やら様子がおかしい・・・.あわてて頬張ったものを飲み込んだ頃には誰かが呼んだのか既にM3のスタッフの方が駆けつけており,すぐに施設の方を通じて救急車が手配され,たまたま居合せた医療系の本職と思しき方が診察を開始.倒れた方は途中で意識が戻るも朦朧としているようで救急隊に引き継がれていきました.無事だったのかな・・・.たまたま居合せただけとはいえ心配になります・・・.

しかし後から思い返すと,間近にいながら何一つ力になれなかったのが情けなく申し訳ない感じです・・・.今回はまわりの対応が早くて自分の出る幕は何一つ無かったわけですが,もし周りに人が全然居ないときに同じようなことが起きたらいつかの講習で習ったように行動できるだろうかとか,色々考えさせられます.もちろんこんな状況無いに越したこと無いのですが・・・.うーん.

帰省

夜になって実家に移動してみました.いつもと違う道を通ってみたらいつの間にか高速に乗ってたりして色々ドキドキでしたw.あと道中の信号とか料金所の料金表とか見てあらためて視力が低下したことを実感.泣ける.

uim-el-agentとメモリ

なんかググってる人がいるなぁとハラハラしてたらスレにそのものズバリな書込みが・・・.うーん,最初から喰いまくりなのか使っていくうちにどんどん増えていくのか・・・.中身をまったく覚えていないのでそこかしこでリークしてそうな不安に駆られる _|‾|○

[コメントを書く]

ekato 2008/10/14(火) 13:08:13
とりあえず、一個みつけたので塞いでおきます。

ところで最近、候補のページごとに uim_get_candidate() を呼ぶように色々と変更したんですが、uim-el でもやっちゃっていいですか? (すぐにはとりかからないかもしれないですけど)
nosuke 2008/10/14(火) 18:04:48
うわーこんなにもあっさりとorz
> uim-el でもやっちゃっていいですか?
是非是非バッサリやっちゃってください.
申し訳ないことに最近全然ついていけてない・・・

期限

頼まれ事がきたので期限3ヶ月だと思って引き受けたら6週間とか書いてあって悶絶.こいつはやばいかも.

2008年10月12日 (日)

洗車とか

車洗って散髪してきました.本当に毎回セットだなぁ.あと何か久しぶりに料理っぽいことをした気が.

M3

頑張ってざーっと全体(ドラマ系除く)をチェック.ボーカル系とかボーカロイドとかの興味が薄い所は相当適当ですが・・・.ていうか結局殆ど「F」だし.

2008年10月11日 (土)

移動

昼間のうちに川崎に移動してみましたよ.競艇場のあたりの混雑を避けようとしていつもと違う道を選んで進み,途中からナビに任せようとしたらナビが戻って高速乗れとか言い出してもうね.有料道路設定切って再度設定し直しても変なルート指示してくるので無視して勘に任せて走り,何度かルート再探索させてようやく狙い通りのルートが出てくれました.はぁ.元々遠回りだった上にそんなこんなんなでしばらく変な方に走ったりしたせいで割とギリギリな時間に到着 (´・ω・`)

ヒタヒタさん帰還祭

で,その後,車を置いてヒタヒタさん帰還祭に参加してきました.巨匠とかよみさんとかまあいつもの面々(要するにザクロでお別れ会した面々)で.久しぶりに見るヒタヒタさんはなんかちょっとたくましくなってました.飲んだ後に食べに行ったラーメンが重くてヤバかった・・・.

2008年10月15日から2008年10月11日までの日記を表示中

中の人情報

名前:
nosuke (のすけ)
メール:
sasugaanijaのgmail.com
「の」は「@」みたいな
関連リンク:

カレンダー

2008年10月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

<<先月分

翌月分>>

最新の10件のエントリ

最近の10件のコメント

過去ログ