[[TeX/Font/MakeFont]] *FontForge を使う [#l9a63111] FontForge を使うと、''.pfb'', ''.tfm'', ''.enc'' まで FontForge で作成することができます。 **ギリシア文字 [#hbb23fc1] 最近は(古典)ギリシア文字を含む OTF フォントがいくつも配布されていますので、それを TeX で使ってみることにします。簡単に扱うために、CB.enc を用います(cbfonts パッケージの中に入っています)。 +FontForge で .otf ファイルを開く。 +「ファイル」->「別名で保存」で .sfd ファイルにしておく。 +「エンコーディング」->「エンコーディングを読み込み」で CB.enc を読み込む。 +「エンコーディング」->「エンコーディング変換」で「CBencoding」を選択(下の方にあります)。 +適当に調整して保存。 +「ファイル」->「フォントを出力」で .pfb(Type 1 バイナリ)を選択。「オプション」で「TFM と ENC を出力」にしておく。 +これで .afm, .enc, .tfm, .pfb ファイルができる。 +.map, .fd ファイルを作る。 +tex testfont でテーブルを出力して確認する。 dvipdfmx で PDF に変換するときに次のようなエラーが出て、いくつかの文字が欠落する場合があります。 ** WARNING ** Obsolete four arguments of "endchar" will be used for Type 1 "seac" operator. この時は、問題となっているグリフを右クリックして「参照を解除」しておくと、この問題を回避することができます。 **.map [#w59a71b1] ''.map'' ファイルを以下のように作ります。 tfm フォント名 "" <enc <pfb tfm には ''.tfm'' ファイルのファイル名(最初の . より前)を、フォント名には FontForge で作った際のフォント名を、enc には ''.enc'' ファイルのファイル名(最初の . より前)を、pfb には ''.pfb'' ファイルのファイル名(最初の . より前)を入れます。 **出力のテスト [#o16ee212] 上で用意したファイルすべてを同じフォルダの中に入れておきます。 $ tex testfont . . . Name of the font to test = tfm *\table\end $ dvipdfmx -f map testfont tfm のところには、''.tfm'' ファイルのファイル名(最初の . より前)を入力し、map のところには ''.map'' ファイルのファイル名(最初の . より前)を入力します。PDF ファイルを見てみます。 **Tips [#ee4beaa7] ***リガチャ・カーニング [#z6eca4bc] もとのファイルが ''.pfb'' だけだと、リガチャやカーニングの情報が欠落しています。FontForge では[ファイル(F)]ー[カーニング情報の統合(M)]([File] - [Merge Feature Info])で次のファイルからこれらの情報を読み込むことができます。 -''.afm'' -''.ofm'' -''.tfm'' -''.pfm'' 次のページを参考にしてください。 -http://edt1023.sayya.org/fontforge/ja/filemenu.html ''.afm'' や ''.pfm'' があれば pf2afm や afm2tfm を使うことによって tfm ファイルを作ることができます。 -TeX/Font/Type1 -[[TeX/Font/Type1]] ***存在しない文字とのカーニングが設定されている場合 [#q3fe026d] 何らかの理由で,そのフォントセットに存在しない文字との間のカーニングが設定されている場合,その .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の[メトリック]—[カーニングをすべて削除]を実行します. **参考 [#e65ff650] -[[TeX QA 48266:http://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/48266.html]] -[[TeX QA 48267:http://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/48267.html]] -[[TeX QA 48268:http://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/48268.html]] -[[TeX QA 48310:http://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/48310.html]]