読者です 読者をやめる 読者になる 読者になる

fontforgeを使ってMiguフォントの濁点を巨大化してみたときのメモ

M+(1|2)(P|VM)+IPAG circleやその新バージョンMiguフォント(http://mix-mplus-ipa.sourceforge.jp/migu/)の特徴として、半濁点(゜)が大きめになっているという点がありますよね。
M+ と IPAフォントの合成フォント(旧バージョン)
M+とIPAの合成フォント(新バージョン)
M+ と IPAフォントの合成フォント配布 - きりんシステム ダイアリー(2006-03-15)(半濁点巨大化の手順)

で、それを真似?してfontforgeでMiguフォントの濁点(゙)の巨大化も試してみたのでその手順をメモしておく。かなり荒削りなメモ。
加工につかったフォントはMigu 1M。
Miguフォント : M+とIPAの合成フォント

1.fontforgeでMigu 1Mを開いて仮名グリフを探す

"表示>移動"(またはCtrl+Shift+>)からHiraganaと打つと楽

2.加工する前にいろいろ計測する

拡大後に元の文字と太さを一緒にするため。
平仮名の「が」でやってみる。↓の頂点1と頂点2の座標を、マウスで選択して右クリック>"情報を得る…"で調べる。ここでは1(643, 741), 2(703, 773)となった。

そこから2点間のx軸、y軸それぞれの方向の距離を求めておく。ここではx軸(マジェンタ)方向が|643-703|=60、y軸(シアン)方向が|741-773|=32となった。(|x|はxの絶対値を表す)

3.いよいよ濁点を拡大する

濁点を構成する制御点をすべて選択した状態で"エレメント>変形>変形"(又はCtrl+\)、そこから"一様に拡大縮小"、ここでは拡大率を130%に。

4.ここでまたしても計算

先ほどと同様に拡大後の頂点1, 2の座標を調べる。1(598.45, 754.5),2(676.45, 796.1)となった。
ここで1, 2間の直線距離は最初より30%分伸びてるはずなので濁点の部分だけ太さが130%になってる。この太さを最初の太さに戻したい。そのため、以下の計算をする。

|598.45-(676.45-60)|=18
|754.5-(796.1-32)|=9.6

一般化すると、最初の頂点1, 2の座標を(x1, y1)、(x2, y2)、拡大後の頂点1, 2の座標を(x1', y1')、(x2', y2')、絶対値を|x|で表すと

|x1'-(x2'-|x1-x2|)|
|y1'-(y2'-|y1-y1|)|

この二つを求める。上二つをdx、dyとおく。この場合dx=18、dy=9.6である。
x1 < x2、y1 < y2、x1' < x2'、y1' < y2'なのでうまく字を入れ替えれば絶対値が外れるかもしれないけど符号間違えが面倒なので絶対値のままで。

5.太さを合わせる

↓の4点を選択した状態で先と同じように"エレメント>変形>変形"(又はCtrl+\)、今度は"移動"を選んでX、Yにはさっきのdx(=18)、dy(=9.6)をそれぞれ入れて実行。これで太さが揃う(揃ってるはず)。

6.必要と有らば濁点の位置を調整する

濁点全体を選択した状態でマウスなどで移動させる

7.これを残りの文字にもやる

一部「ぼ」「グ」「ゴ」「ダ」「ズ」「ヷ(ワ゛)」「ヹ(ヱ゛)」「ヺ(ヲ゛)」の文字が、濁点と他の画が合体していて上記の手が使えないので、その辺りの文字は手作業での調節も入れてそれっぽく仕上げる。

8.フォントを出力する

やらなくてもいいかもしれないけど編集したグリフ全体に"エレメント>重複処理>重なりあう図形を結合"や"エレメント>座標を丸める>整数に"とかやっといてもいいかも。"ファイル>フォントを出力"で出力。


比較画像。UbuntuGNOME端末でフォントサイズは10。あんまり変化ないですね!

出来上がったフォントの公開はライセンス周りがよく分かってないので控えとく。
意外と計算が面倒だったな…

当ブログに於いて、私tasutenによって創作されたことが自明である著作物に対しては、別途明示のある場合を除き全てCC0が適用されます。