💻
【Lato+Noto‘SansJP=LatoSansJP】FontForgeを使った和欧混植フォントの自作
どうも。オオニシタカヤです。
これまで、何度も「Lato」というフォントが好きだと言って、強引に環境を変更してきました。
今回は、Latoそのものを改造しちゃいます。あちゃあ。
困った困った
最近、Let’s Notionの制作を再開させたのですが、ある問題に直面しました。
Latoは日本語グリフがないため、PhotoshopなどでOGP画像を作成しようとすると、文字化けしてしまうのです。
仕方なく、NotoSans系のフォントで代用していたのですが、やっぱりNotoSansの英文がちょっとダサいんです;;
加えて、「Notionary」や「Techniques」はLatoだからムズムズするし;;
だからといっていちいち、日文と英文でフォントを変えるのは、かなり面倒くさく持続的じゃないので、フォントを合成する方法を探しました。
ちなみに
Adobeのillustratorとindesignでは、「合成フォント」という機能があり、フォントを選んで分類分けするだけで、混植フォントができちゃうのです。
しかしなぜか、PhotoshopやPremiereProでは対応する兆しなし。Adobeさーん!
フォントの基礎知識
このサイトのFontForge講座は、初心者に易しくてかなり重宝しました。ありがとうございます;;
フォントには.otfと.ttfの2種類があるらしい
どうやら、フォントのフォーマットは、OpenType(*.otf)とTrueType(*.ttf)の2種類が一般的らしく、前者は3次ベジェ曲線、後者は2次ベジェ曲線を使っているらしい。(らしいです)
OpenTypeは新形式でどんどん主流になってきているものの、互換性のためにotfをttfにしたい人は結構いるみたいです。(みたいです)
(この辺の記事は、直接的な参考にはならなかったけど、fontforgeの使い方にちょっと役立ちました)
CIDフォントとは
CIDフォントの意味は、未だによく分かってません。
CID フォントというのは、主に、グリフ数の多い CJK (中国語/日本語/韓国語) フォントで使われます。
これは、欧文などで使われる通常の CFF 形式を、大量のグリフに対応できるようにした拡張版です。
CID フォントでは、各グリフに、Unicode などとは別に、"Adobe-Japan-6" などの文字コレクションで定義された CID の番号が割り当てられています。
CID は、Unicode とは全く別のものであり、異体字一つ一つに CID が割り当てられていたり、縦書き用グリフにも独立した CID があるなど、Unicode と比べると、一つ一つのグリフが独立しています。
ただし、CID 値自体は、通常のテキスト描画では使われません。
使われるのは主に DTP ソフト上などで、詳細なフォント処理を行う時です。
とりあえず、CIDフォントの場合は、
- 編集するサブフォントを選択する必要がある
- 「CID」>「単一化」で非CIDフォントにすることができる。
- Unicodeが重複するかもしれない
- エンコーディングがカスタム状態になっているため、メニューの「エンコーディング」>「エンコーディング変換」>「ISO 10646-1 (Unicode, 完全)」を実行し、Unicode に変換する必要がある。
みたいです。
合成の注意点
注意する点は 2点。
- otfとttfは、EMの値が異なるため、めんどくさい
- フォントによって、グリフの位置や高さ、深さ、EMの大きさが異なるため、合わせる必要がある。
- 統合するフォントに縦書き情報がある場合は、縦書きメトリックをONにする必要がある。
- 「エレメント」>「フォント情報」を開き、「一般情報」の項目の「縦書きメトリックが存在」のチェックを ON
- そのため、ベースとなるフォントの中に、不要なグリフがないか確認する必要がある。
- 削除したいグリフを選択して、「エンコーディング」>「グリフの切り離し・削除」を実行
統合時の順番
FontForgeには、「フォントの統合」機能があり、これがまた優秀。
ポイントは、重複するグリフがあったときは、ベースとなるフォントのグリフが残るということ。
今回、日本語グリフのないLatoに、NotoSansJPの日本語グリフだけを入れたいので、ベースをLato、統合するフォントをNotoSansJPにします。
準備
NotoSansJPをotfからttfに
基本的にotfとttfを統合するのはやめたほうが良いらしいので、NotoSansJPをttfにします。
逆にLatoをotfにしたほうがいい説もあるんですが、まじでわからないのでまたやります。
フォントの名前を変更する
「エレメント」>「フォント情報」からフォントの名前を変更しておくといいでしょう。
Latoをベースにしたとき、FontBook(mac)に入れて試そうとしたとき、既存のLatoフォントと干渉してしまうので、この時点から別のフォントとして扱う必要があります。
フォントの大きさを変更する
これも、実際にやってみてわかったことなんですが、フォントってデフォの大きさがぜんぜん違うんですね。
「エレメント」>「フォント情報」から、フォントの大きさを揃えてあげましょう。
大きい方に揃えるのか小さい方に揃えるのか、ベースを変えるのか統合するフォントを変えるのか、何が良いのかさっぱりわからないので、それは今度試してみます。
統合
ガッチャンコする準備はできたので、フォントを統合!そして書き出し!FontBookに入れて使ってみると…
できた!!かれこれ5時間。おつかれさまでした。
あとは、RegularだけでなくBoldとかもやってみて、バリエーションを揃えてあげましょう。
これは秘密なんですが、FontBookに入れるとき、めちゃくちゃエラー出てました。
試行錯誤してると出ないケースもあったけど、どうしたら出ないかも分かんないので、もうガン無視してます。