[M+ OUTLINE FONTS 376] Re: [M+ OUTLINE FONTS 371] Re: FontForge スクリプトの簡略化

アーカイブの一覧に戻る

KANOU Hiroki kanou****@khdd*****
2005年 1月 28日 (金) 23:50:28 JST


狩野です。

[M+ OUTLINE FONTS 371] にて村岡さん:
> これって Import("./work.d/medium/u*/u*.eps") みたいな2重のワイルドカード
> 指定は可能でしょうか? あとばらばらに指定した場合とメモリや速度で違いはあ
> るんでしょうか?

二重ワイルドカードは無理でした。不恰好ですが、こんな感じでループを回す
必要があります。

hex=Array(16)
hex[0]="0";hex[1]="1";hex[2]="2";hex[3]="3";hex[4]="4";hex[5]="5";hex[6]="6";hex[7]="7";
hex[8]="8";hex[9]="9";hex[10]="a";hex[11]="b";hex[12]="c";hex[13]="d";hex[14]="e";hex[15]="f"

row=0; while (row<16)
    col=0; while (col<16)
	dir = "./work.d/medium/u" + hex[row] + hex[col]
	if (FileAccess(dir) == 0)
		Import(dir + "/u*.eps");
	endif
    col++; endloop
row++; endloop

テンプレートで指定した場合、ループ回しながら readdir() で取ってきては
1 個ずつ読んでいるようなので、自分でファイル名を書き連ねるよりも OS 側の
メモリ消費が若干減る+ファイル数減少で速くなる程度の差しか出ないの
ではないようです。ご指摘の通り、一ディレクトリに置くファイル数がいちばん
パフォーマンスに影響すると思います。

ところで、空のテンプレートについてはどうでしょう? スクリプトからデータを
追い出すことができて好都合だと思うのですが。

> $ perl scripts/bdf2eps.pl -fw r -o work.d/test-r bdf.d/mplus_f12r.bdf \
>     bdf.d/mplus_f12r_jisx0201.bdf bdf.d/mplus_j12r.bdf
> $ fontforge -script test_r.pe
> $ fontforge -script scripts/2ttf.pe test_r

ビットマップからの構築は、結構速いのですね。ちなみに、bdfresize で
BDF を拡大してから potrace を使っても生成できることに気づきました 
(http://sourceforge.net/mailarchive/message.php?msg_id=10507660 に
手順を書いてあります)

> UCS2 onlyで受け付けたほうがプログラム的に簡潔だ、というのは認めます。と
> いうよりも、それで押し通せるならどんなに楽か(苦笑)。でも、プログラム的に
> 解決できるところは解決したほうが良いでしょう?

せっかくある機能ですから、訳に立つのであれば残しておいたほうが
いいでしょうね。ただ、文字そのもの (UCS2 であれ SJIS であれ) で指定
できる機能はこれから必要になると思います。漢字をやる時には、文字
コード順に作っていたら効率が良くありませんから。五月雨式に文字を
選んでいくのにいちいちコードを調べるのは面倒です。

おそらく、こんなふうにやるのがいいのでは。
1) 各属性を代表する文字でデザインコンセプトを固める (ちなみに、字游工房の
   場合「東国愛永三今力鬱鷹酬袋霊」の12字だったはず)
2) 部品を揃えることに配慮しながら比較的高頻度の漢字を作っていく
3) ある程度溜ったら教育漢字・常用漢字とカテゴリーを拡大しながら不足文字を
   揃えていく

狩野 宏樹  <kanou****@khdd*****>



mplus-fonts-dev メーリングリストの案内
アーカイブの一覧に戻る