[Mplus-fonts-dev #] Re: [Mplus-fonts-dev 26] 「かきくけこ」公開しました。

Back to archive index

KANOU Hiroki kanou****@khdd*****
2003年 11月 7日 (金) 13:04:53 JST


狩野です。

[Mplus-fonts-dev 26] にて森下さん:
> eps の文字データですが、作成時に何か気をつける事とか、
> 修正すべき点とかありませんでしょうか?

最初から仮想ボディの左端とベースラインの交点が (0,0) に
なるようにしていただけると、Move() しないで済むのですが…。

> 例えば、狩野さんにご指摘いただいた、
> > パスが一部反転しているようです。「い」で言うと、左側のパスが逆向きです。
> の件は直しておかないと駄目ですか?

CorrectDirection() を使えばパスの向きを自動調整してくれるのですが、
残念ながら「あ」のように自己交差を含んだパスがあると判定がうまく
いかないようです。揃えていただけるとフォントも正しく自動作成できる
ようになります。

> それと、現状では仮想ボディ内の文字位置を確定するために 1000 x 1000 の
> 仮想ボディ枠を設置していますが、後で除去する手間が必要ですし・・・。

枠のパスの向きが今と逆向きで、文字のパスの向きが最初から正しければ
OverlapIntersect() で取り除けます。もちろん、文字のパスの重なりも
結合処理されてしまうので、編集には向きませんが。

手動編集しながら、こんな方法を思いつきました。
・枠の外側にもう一つ枠をかぶせて、枠を太さのある罫線に変更する。
・罫線の内側ぎりぎりにまた枠をかぶせる
・OverlapIntersect() する

これで動くようです。

とりあえず、スクリプトの改良版を。今度は文字数制限はありません。
「pfaedit -script mplus.pe mplus_medium_hiragana/*.eps」のように、
取り込む EPS ファイルをコマンドラインで指定してください。

#!/usr/local/bin/pfaedit -script

New()
SetFontNames("mplus-medium","mplus","mplus-medium","medium","Copyright (C) 2003 M+ Font Project")
Reencode("jisx0208")

i = 0; while (i < $argc)
	jis = Strtol($argv[i]:r:t, 16)
	Select(jis)
	Import($argv[i])
	Move(75, 10)	# 小数は構文エラーになる
	RoundToInt()
	SetWidth(1000)
i++; endloop

Reencode("iso10646-1")
Save("mplus-medium.sfd")
Generate("mplus-medium.ttf", "", 0)
Quit()



mplus-fonts-dev メーリングリストの案内
Back to archive index