Ghostscriptで日本語TrueTypeフォントを使う方法 (実験)

(2000-11-18: GS-CJKメーリングリストができています!)

(2000-03-24: 山田泰司さんによる Tips on PostScript では, このページの方法を改良して CJK の TrueType フォントを表示させています!)

最近のGhostscriptは OCF や CID という形式のPostScriptフォントに 対応していますから,日本語PostScriptフォントさえ持っていれば 日本語を表示することができます。 でも,PostScriptフォントはTrueTypeフォントに比べて高価ですし, 取り扱えるアプリケーションがそれほどありませんから, 品質の良いPostScriptフォントを持っている人は少ないことでしょう。 それに比べてTrueTypeフォントは安く手に入るので, Ghostscript では VFlib や FreeType に TrueTypeフォントを ラスタライズさせることによって日本語表示を実現するのが一般的です。

ところで,最近の Ghostscript には TrueType フォントをラスタライズする 機能があり,簡単に欧文TrueTypeフォントが表示できるようになっています。

この機能を利用すれば VFlib や FreeType なしでも日本語TrueTypeフォントの 表示ができるのではないかと試行錯誤した結果,試しに表示してみるくらいなら 簡単にできることがわかりました。 まだ様々な問題があり,実用には程遠いと思いますが, このページでは Ghostscript (5.99) 単体で日本語TrueTypeフォントを 表示する方法について書いていきます。

※ ちなみに 内山さんのページによれば,Adobe の Value Pack で安く日本語CIDフォントを入手できるようです。

手順

最小限の概略だけを示します。 ディレクトリ・ファイル名,フォント名,その他は適当に読み換えてください。

  1. /usr/local/share/ghostscript/5.99/lib/gs_ttf.ps にパッチ(2000-02-29更新)をあてる。
  2. まだ置いていなければ,/Resource/CMap/ 以下に H, V, ... などの CMap を置く。 ftp://ftp.oreilly.com/pub/examples/nutshell/cjkv/adobe/ から入手できます。(日本語に関係があるのは aj12 と aj20。)
  3. /Resource/CIDFont/MS-Mincho を作る。
    (/usr/local/share/ghostscript/fonts/msmincho.ttc)
    .loadfakettcidfont pop
    
  4. /Resource/TrueType/ に UnicodeShift-JIS を置く。
  5. /usr/local/share/ghostscript/fonts/ もしくは /Resource/Font/ に MS-Mincho-H などを作る。
    /MS-Mincho-H
    /H /CMap findresource
    [/MS-Mincho /CIDFont findresource]
    composefont pop
    

以上です。たとえば

/MS-Mincho-H findfont 100 scalefont setfont
100 100 moveto <4e6b 4c5a 3d28 392c> show

で,私の名前が表示されると思います。^^;

これで MS-Mincho を普通の CIDフォントだと思って使うことができます。 もちろん Ryumin-Light という別名を付けたり, H 以外の CMap を適用することもできます。

なお,ここで配布している gs_ttf.ps.diff はパブリックドメインとします。

問題点

山積みです……。現在まともな形に書き直していますのでしばらくお待ちください……。

表示例

松田さんの例と 比較できるように文章とサイズをそろえてみました。 フォントが違いますが,オリジナルのVFlibと同程度の品質であることがわかります。

sample: HGHeiseiMinchoW3
HGHeiseiMinchoW3 (18 point / 96 dpi)

sample: HGPHeiseiMinchoW3
HGPHeiseiMinchoW3 (18 point / 96 dpi)

関連情報

  1. Aladdin Ghostscript tester / beta filesets
  2. GhostscriptでCIDフォントを使う (田中哲さん)
  3. GhostscriptでOCFフォントを使う (内山孝憲さん)
  4. Ghostscriptと日本語 (田中哲さん)
  5. GhostscriptとFreeType (松田一朗さん)
  6. Ghostscriptによる日本語PDFの表示 (片山紀生さん)
  7. Tips on PostScript (山田泰司さん)

鈴木秀幸 (Hideyuki Suzuki) <hideyuki@sat.t.u-tokyo.ac.jp>
$Id: truetype.html,v 1.43 2001/02/04 04:07:07 hideyuki Exp $