フォント Font Forge 新しいページはコチラ

提供: yonewiki
移動: 案内, 検索
(軽微なエラーの項目)
(不具合)
 
1行: 1行:
 
[[フォント]]に戻る。←Font Forgeのインストール方法もこちら。
 
[[フォント]]に戻る。←Font Forgeのインストール方法もこちら。
  
==''概要''==
+
=='''概要'''==
 
フォントを作れる
 
フォントを作れる
  
==''用語解説''==
+
=='''用語解説'''==
 +
*拡張子.sfd = スプライン フォント データベース
 +
:FontForgeのフォント編集状態を保存する独自形式
  
 +
*拡張子.ttc .ttf .otc .otf
 +
:よく使われるフォントの拡張子。ttはTrue Type(古くからあるフォント形式です。どれくらい古いかは知りません)。otはOpen Type(後発で機能強化されています)。末尾のcはコレクションでttcの場合は4フォントまで纏めることができます。fはフォントで単一のフォントのファイルです。
  
==''仕組み''==
+
*カーニング
 +
:字詰め設定です。文字と文字の間に対して設定するので、ASCIIコードだけでも95文字 95Glyphあるので、95×95とおりの設定が必要です。文字のカタチをクラス分けしたらば、もうちょっと設定する数は少なくなると思います。Glyphにきっちりとした法則を適用していないとクラスとして纏めることはできないです。設計は大事。
 +
 
 +
*Glyph(グリフ)
 +
:字形をいいます。出来上がって表示されているのが文字。形式がフォント。
 +
 
 +
*送り幅
 +
:カーニングを設定する前に送り幅を設定しよう。デフォルト値とGlyph毎の設定があってGlyphは編集ウィンドウで黒い線が出てるので必要に応じて変更するとよいかもひれません。プロポーショナルフォントの方が疲れるわな。
 +
 
 +
*等幅フォント プロポーショナルフォント
 +
:等幅は名前のとおり、全てのGlyphが同じ間隔になるようにフォントが設計されているモノ。つまりGlyphの送り幅が全部のGlyphで同じだということです。日本語の場合は日本語が半角英数ASCII範囲だけが日本語文字の2分の1になっていれば等幅を名乗っています。これは国際的な感覚としてはプロポーショナルなんですけど、日本では半角の数が1行にたいして奇数と偶数とかになるとフォントがずれます。比較的、等幅は読みにくいです。読み物に対してのGlyphで使われるプロポーショナルは送り幅やカーニングが最適化されています。
 +
 
 +
*
 +
 
 +
=='''仕組み'''==
 
*保存
 
*保存
: グリフをダブルクリックすると個別のグリフを編集するためのウィンドウが表示されます。一文字一文字を保存する意味での保存ではなく、FontForgeが管理する全体に対して保存されます。なので、保存しないで終わらせておいたグリフがある場合、その次のグリフを編集したときに保存した際には、保存しないでおいといた全てのグリフも保存されます。ようするにすべての作業が保存されるという感じです。
+
: グリフをダブルクリックすると個別のグリフを編集するためのウィンドウが表示されます。一文字一文字を保存する意味での保存ではなく、FontForgeが管理する全体に対して保存されます。なので、保存しないで終わらせておいたグリフがある場合、その次のグリフを編集したときに保存した際には、保存しないでおいといた全てのグリフも保存されます。ようするに、メインウィンドウの保存もグリフ表示ウィンドウの保存のどちらで保存しても、すべての作業が保存されるという感じです。
 +
 
 +
=='''不具合'''==
 +
 FontForgeでは等幅の全角文字のフォントファイルを出力すると文字間にもうひとつ全角スペースがはいったくらいの2倍くらいの文字間隔になるという不具合があるようです。いままで半角文字のフォントしか作ったことなかったので気が付かなかったです。
 +
 
 +
 
 +
 そもそも日本語における等幅とは、英語圏のフォントからみると真に等幅とはいえない。似非等幅でして、なんとも都合よく、英文字は半角で日本語は全角で、両方がきっちり1:2の文字幅になっていることが要求されるのが、我々の言う最高の等幅なのです。こういうのは世界標準では等幅ではなくプロポーショナルフォントと分類されます。FontForgeも世界標準で作られているので、そんなことは細かく配慮されていません。
 +
 
 +
 
 +
 世界標準で考えれば、英文字はきっちり半分の文字幅で英文字以外の全角文字は1文字として考えるプロポーショナルフォントで、日本語システム的には等幅ってフォントに明記しちゃおうって感じ。
 +
 
 +
 
 +
 FontForgeの不具合で半角文字を1文字として考えて、全角は2文字になるみたいな不具合があります。この場合、フォントの設定方法は一文字づつがもっているフォントの文字幅をすべて調整する必要があります。これは不具合とも関係なく実施しなければならない日本語圏特有の手法になります。一文字づつの幅って大変そうって感じですが、複数のフォントを大量に選択した状態で文字幅は設定できます。アウトラインエディタでみたときの細い黒い線がそうです。半角は1024。全角は2048に設定するのが一般的です。一文字の大きさEMは2048となります。文字の高さは、高さと深さを足して2048になっていればよいです。英文字特有のベースラインという考え方がありまして、これを考慮する必要があります。
 +
 
 +
 
 +
 ですから、メニュー[エレメント]-[フォント情報]の[一般情報]のタブは高さ+深さが2048。EM大きさが2048 輪郭を拡大縮小はOn 下線の位置は-256 オーバーラインを意味するHeightは102くらいが一般的です。縦書きメトリックも是非Onにしたいものです。
 +
 
 +
 
 +
 [OS/2]のタブにある[その他]タブでOS/2バージョンを1選択することで、不具合を回避して、きちんと文字幅どおりにフォントが構成されます。PFMファミリーの値はセリフでよいです。これが国際標準の扱いに準じた情報です。そのかわり、[Panose]タブでは幅の比率で等幅を選択すると割とうまくいきます。あとはフォント名としての等幅は太字や斜体と同じ扱いで名前を付ければたいていのアプリで分類がうまく作動します。
 +
 
 +
 
 +
 しかし、バージョン1を選択してもうまくいかないケースでは、大変ですがttf/otf/ttc/otcフォントファイルを作成してから、バイナリ―をいじる必要が出てきます。実際はfontファイルからcmapなどの情報を抜き出すttxコマンドでフォント情報を取り出して、その情報を編集して、また再結合させるという手順になります。
 +
 
 +
 
 +
 ttxの入手は[[PDF_内部構造_テキスト#.2FEncoding|コチラ]]の記事で説明していますので省略します。フォントファイルのあるフォルダへ移動してから以下のコマンドを実行します。$env:windir\Fontsに移動してしまうと、ファイルの操作がやりにくくなるので、フォントフォルダからファイルを作業用にどこかのディレクトリコピーして、そこでやるのがいいと思います。
 +
 
 +
 
 +
ttx -t OS/2 MeiryoKe_Gothic.ttf
 +
 
 +
 
 +
 のようにするとフォントに含まれるOS/2テーブルという部分が抽出できます。上記の例ではMeiryoKe_Gothic.ttxというファイル名になります。
 +
 
 +
 
 +
  出来上がったttxテキストを開くとxAvgCharWidth=nnnnというようなnに数字が当てられた部分がみつかると思います。ここのnnnnの値を1024のような半角文字の幅に該当する値にして保存します。
 +
 
 +
 
 +
 そして
 +
 
 +
ttx -m MeiryoKe_Gothic.ttf MeiryoKe_Gothic.ttxとして、再度結合して、フォントファイルをインストールします。Windows10だとフォントファイルを右クリックして全ユーザにインストールとかですね。
 +
 
 +
 
 +
 これでうまくいくといいのだけど。
  
==''エラー''==
+
=='''エラー'''==
===''重大なエラー''===
+
==='''重大なエラー'''===
 
フォントファイルを書き出す時に整合性チェックを実施します。警告的なエラーがかなり多いです。特に問題となることがある場合は出力できません。
 
フォントファイルを書き出す時に整合性チェックを実施します。警告的なエラーがかなり多いです。特に問題となることがある場合は出力できません。
  
23行: 82行:
  
  
===''軽微なエラーの項目''===
+
==='''軽微なエラーの項目'''===
 
*Self Intersection
 
*Self Intersection
 
:フォント内にパス同士が交差する箇所がある。
 
:フォント内にパス同士が交差する箇所がある。
29行: 88行:
 
*Wrong Direction
 
*Wrong Direction
 
:フォント作成のルール、外側の輪郭は時計回り、内側の輪郭は反時計回り、に反している。
 
:フォント作成のルール、外側の輪郭は時計回り、内側の輪郭は反時計回り、に反している。
 
  
 
*Missing Points at Extrema
 
*Missing Points at Extrema
46行: 104行:
 
*Self Intersections(自己に交点が存在する)
 
*Self Intersections(自己に交点が存在する)
 
*Bad Directions(外側の輪郭は時計回り、内側の輪郭は反時計回り、に反している)
 
*Bad Directions(外側の輪郭は時計回り、内側の輪郭は反時計回り、に反している)
*Missing Extrema(極値における失敗)
+
*Missing Extrema(極値における失敗) ※cautiously の方は慎重に修正する。
 
*Too Many Points(点が多すぎる)
 
*Too Many Points(点が多すぎる)
 +
*保存する前に、修正した箇所にマークを乗せる。
  
  

2022年7月25日 (月) 00:00時点における最新版



個人用ツール
名前空間

変種
操作
案内
ツールボックス