build4440

font.iniについて、bend_tailさんも不思議に遭遇していたようですが。つーかウチの環境、IPA*|VL*|kochi*のままだと毎回表示フォントが変わるんだけど(笑

恐らくxftあたりからフォントリストを取得してIPA*|VL*|kochi*にマッチした時点で検索取りやめてる。で、取得するフォントリストの順番が毎回バラバラだからfontswitch.ini構築時に毎回違うフォントが優先される、と……そんなところか。

考えてみればIPA*|VL*|kochi*ってのは正規表現のようななにかなのだから、書かれている順番でフォントの優先順位を定義しているわけではないな……。どこかにフォントの優先順位を指定できる仕組みが必要ってことだ。っていうかそもそもそれさえあればわざわざ言語別のリスト作らなくても良いじゃん。

現在(予測)
ある文字がどの言語に所属しているか調査→その言語にどのフォントが指定されているか調査→そのフォントで表示しようとする→無いときの動作は謎。
改善案
ある文字を優先順位1番目のフォントで表示しようとする→無ければ2番目のフォントで表示→なければ3番目……

改善案の良いところとしては動作が素直なところと、CSSでfont-familyが指定されている場合の動作に組みこめてしまう点。font-familyの優先順位→設定ファイルの優先順位という順番で検索すれば良いだけだ。悪いところは日本語版は日本語フォントの優先順位を、韓国語版は韓国語のフォントの優先順位を上げておく必要がある、つまり各国語版でカスタムする項目が増える点。

つーかexcellentとかverygoodとかgoodとか言葉で優先順位を定義するんでなくて、使いたいフォントから順番に書いとくとか、そんな感じにすればいいのさ!japaneseとか付けなくても問題ないでしょ、try-firstとかどーでもいいでしょ!

あ、そういえば狭いテキストエリアで変換してると悲しいことになる問題がいつのまにか修正されてました。ステキ。