TeX/Font/MakeFont

FontForge を使う

FontForge を使うと、.pfb, .tfm, .enc まで FontForge で作成することができます。

ギリシア文字

最近は(古典)ギリシア文字を含む OTF フォントがいくつも配布されていますので、それを TeX で使ってみることにします。簡単に扱うために、CB.enc を用います(cbfonts パッケージの中に入っています)。

  1. FontForge で .otf ファイルを開く。
  2. 「ファイル」->「別名で保存」で .sfd ファイルにしておく。
  3. 「エンコーディング」->「エンコーディングを読み込み」で CB.enc を読み込む。
  4. 「エンコーディング」->「エンコーディング変換」で「CBencoding」を選択(下の方にあります)。
  5. 適当に調整して保存。
  6. 「ファイル」->「フォントを出力」で .pfb(Type 1 バイナリ)を選択。「オプション」で「TFM と ENC を出力」にしておく。
  7. これで .afm, .enc, .tfm, .pfb ファイルができる。
  8. .map, .fd ファイルを作る。
  9. tex testfont でテーブルを出力して確認する。

dvipdfmx で PDF に変換するときに次のようなエラーが出て、いくつかの文字が欠落する場合があります。

** WARNING ** Obsolete four arguments of "endchar" will be used for Type 1 "seac" operator.

この時は、問題となっているグリフを右クリックして「参照を解除」しておくと、この問題を回避することができます。

.map

.map ファイルを以下のように作ります。

tfm フォント名 "" <enc <pfb

tfm には .tfm ファイルのファイル名(最初の . より前)を、フォント名には FontForge で作った際のフォント名を、enc には .enc ファイルのファイル名(最初の . より前)を、pfb には .pfb ファイルのファイル名(最初の . より前)を入れます。

出力のテスト

上で用意したファイルすべてを同じフォルダの中に入れておきます。

$ tex testfont
. . .
Name of the font to test = tfm
*\table\end
$ dvipdfmx -f map testfont

tfm のところには、.tfm ファイルのファイル名(最初の . より前)を入力し、map のところには .map ファイルのファイル名(最初の . より前)を入力します。PDF ファイルを見てみます。

Tips

リガチャ・カーニング

もとのファイルが .pfb だけだと、リガチャやカーニングの情報が欠落しています。FontForge では[ファイル(F)]ー[カーニング情報の統合(M)]([File] - [Merge Feature Info])で次のファイルからこれらの情報を読み込むことができます。

次のページを参考にしてください。

.afm.pfm があれば pf2afm や afm2tfm を使うことによって tfm ファイルを作ることができます。

存在しない文字とのカーニングが設定されている場合

何らかの理由で,そのフォントセットに存在しない文字との間のカーニングが設定されている場合,その .tfm ファイルをうまく扱えないことがあります.たとえばtestfontで次のようなメッセージが現れます.

$ tex testfont
This is TeX, Version 3.141592 (Web2C 7.5.4)
(/usr/local/teTeX/share/texmf-dist/tex/plain/base/testfont.tex

Name of the font to test = somefont
! Font \testfont=somefont not loadable: Bad metric (TFM) file.
<to be read again> 
                  \spaceskip

カーニングをまとめて削除するにはFontForgeの[メトリック]—[カーニングをすべて削除]を実行します.

参考


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-03-30 (土) 04:06:21