HOME / コンピュータTips / FreeBSD / GhostScriptを美麗にインストール

Date: 2019/12/14 |  このエントリーをはてなブックマークに追加  |  Tags:

コンピュータTips/FreeBSD/GhostScriptを美麗にインストール

2000?/??/??

なにを美麗にインストールするかというと、美しい印刷のための必要最低限のインストールです。

まずは、FreeTypeとVFlibとghostscriptの関係を理解する必要あります。

ghostscriptは、いわゆるpostscriptクローンですが、そのままでは日本語フォントを、まともに使うことはできないと考えてよいと思います(CID Fontを使う方法はありますが、MacのCDを読んだりする必要があるので、ここでは記述しません。要望があったら記述します)。

今でこそ、日本語フォントは主にWindowsで利用するTrueTypeがたくさん出回っています。市販している大日本スクリーンのヒラギノシリーズのフォントを購入すれば、PSプリンタ標準ともいえるモリサワフォントに匹敵するほどの美しいフォントフェイスを利用することが出来ます。

VFlibは日本語フォント周りを管理するためのドライバのようなものだと思えばよいと思います。これで、日本語フォントまわりに、 TrueTypeどころか、書体クラブフォントをはじめ、いろんなフォントを使うことができるようになるのです。歴史的に日本語フォントの実装には苦労があったので、そのためにVFlibにはいろんなフォントを利用するよう実装されています。しかし、要は手っ取り早く、明朝とゴシックなどが綺麗に印刷できれば良いと考えている人が多いと思います。

VFlibはTrueTypeFontを使うことができますが、そのエンジンにはフォントのヒント情報を使うためのコードが無いそうです。ヒント状態がないフォント展開では、たとえばmの3本の縦棒の太さが小さな文字のときに揃わなかったりします。人間の目はバランスに対して厳しいので、そこに違和感を感じてしまいます。

そこで、もう少し賢いFreeTypeをつかいます。FreeTypeはフォントをバラしてビットマップ化するためのライブラリのようなものなので、それだけで日本語フォントを管理する機能はありません。そこで、TrueTypeの展開にFreeTypeを使い、VFlibで日本語フォントを管理するように、ghostscriptをコンパイルします。(注意、ただし全くWindowsと同じ展開をするわけではありません。)

そのままghostscriptをportsでインストールすると、Watanabeフォントを使うことになります。フリーで公開されているフォントに対して意見を言うのは気を引けますが、フォントはアーティファクトですのでやはり美しさで選びたいものです。PortsではFreeTypeを使わないようなので、順を追ってインストールします。

portsでFreeTypeのインストールをする。

/usr/ports/print/freetype/で普通にインストールするだけです。

portsでVFlibのインストールをする。

watanabeフォントをダウンロードすると、時間がかかるのでMakefileを編集して削除します。FreeTypeを使うようにします。

# diff Makefile.org Makefile
13,14c13,14
< DISTFILES= ${DISTNAME}${EXTRACT_SUFX} \
< watanabe-vf.tar.Z
---
> DISTFILES= ${DISTNAME}${EXTRACT_SUFX}
> # watanabe-vf.tar.Z
38,40d37
< ${MKDIR} ${PREFIX}/share/fonts/watanabe_font
< tar -C ${PREFIX}/share/fonts/watanabe_font \
< -xzf ${DISTDIR}/watanabe-vf.tar.Z

どのバージョンのdiffかわからないので、短いし手で編集するとよいでしょう。

VFlibでのフォントの指定

/usr/local/share/VFlib/2.25.1/vfontmapにて、truetypeフォントを指定します。truetypeフォントはどこにあってもよいです。細かい指定は、vfontmap内にあります。そこのgothとminを変更します。

たとえば、こんな感じです

min:\
:ft=freetype:\
:ff=/usr/local/share/fonts/dshirmn2.ttc:
goth:\
:ft=freetype:\
:ff=/usr/local/share/fonts/dshirkg2.ttc:

以上は、千都ヒラギノフォントのヒラギノ明朝2とヒラギノ角ゴシック2の指定です。

portsでVFghostscriptをインストールする

/usr/ports/japanese/vfghostscript55/にあります。古いバージョンだと、CIDフォントがつかえません。あたらしいものを使うことをお勧めします。

以上で日本語フォントが美しく印刷可能なghostscriptが出来上がります。日本語ドキュメントをa2psでレーザプリンタに出力したら、モリサワフォントを内蔵したPSプリンタに勝るとも劣らない品質で出力できるでしょう。番外.afmフォントをインストールする

日本語は上記で完璧ですが、courierなどは代理フォントで出力されるため、本物のcourierと違い文字のステム(文字の線の幅)が揃ってないと思います。IllustratorなどをWindowsで使っていれば、そのディレクトリに本物のcourierやHelveticaが入っていると思います。Sun使いならどっかにDisplay PostScriptのためのフォントが入っています。しかし、このフォントの利用に対する規約がどうなっているかわからないので注意はしてください。


予断ですが、英語フォントは法律的にフォントフェイスが著作権で保護できないそうで、別名で同じような形のフォントを作ることができます。ただし、フォントデータそのものはソフトウェアに及ぶ著作権で保護でき、フォント名は商標で保護できるとのこと。代理フォントは拡大したオリジナルフォントのアウトラインを取り、それを縮小したものが多いそうです。そういうデータはフォントのヒント情報がなく、ステム情報などが落ちているために、縮小したときに「m」の三本の線が不ぞろいだったりしてしまいます(もちろんmぐらいあとで編集すればなんとでもなりますが、そういうノウハウはオリジナルを作った人しかないということです)。上記の法律話は法律の専門家ではないので話半分で聞くこと。

英文のType1フォントは、オリジナルを使いたいと思います。

フォントファイル(*.pfb)とメトリックファイル(*.pfm)を、/usr/local/share/ghostscript/fontにコピーする。

/usr/local/share/ghostscript/5.50vflib/Fontmapを書き換える。

持っているファイルによりますが、こんな感じの変更ですむでしょう。

#/Symbol /StandardSymL ;
/Symbol (sy______.pfb) ;
#/Times-Roman /NimbusRomNo9L-Regu ;
#/Times-Italic /NimbusRomNo9L-ReguItal ;
#/Times-Bold /NimbusRomNo9L-Medi ;
#/Times-BoldItalic /NimbusRomNo9L-MediItal ;
/Times-Roman (tir_____.pfb) ;
/Times-Italic (tii_____.pfb) ;
/Times-Bold (tib_____.pfb) ;
/Times-BoldItalic (tibi____.pfb) ;
#/Courier /NimbusMonL-Regu ;
#/Courier-Oblique /NimbusMonL-ReguObli ;
#/Courier-Bold /NimbusMonL-Bold ;
#/Courier-BoldOblique /NimbusMonL-BoldObli ;
/Courier (com_____.pfb) ;
/Courier-Oblique (coo_____.pfb) ;
/Courier-Bold (cob_____.pfb) ;
/Courier-BoldOblique (cobo____.pfb) ;
#/AvantGarde-Book /URWGothicL-Book ;
#/AvantGarde-BookOblique /URWGothicL-BookObli ;
#/AvantGarde-Demi /URWGothicL-Demi ;
#/AvantGarde-DemiOblique /URWGothicL-DemiObli ;
/AvantGarde-Book (agw_____.pfb) ;
/AvantGarde-BookOblique (agwo____.pfb) ;
/AvantGarde-Demi (agd_____.pfb) ;
/AvantGarde-DemiOblique (agdo____.pfb) ;
#/Helvetica /NimbusSanL-Regu ;
#/Helvetica-Oblique /NimbusSanL-ReguItal ;
#/Helvetica-Bold /NimbusSanL-Bold ;
#/Helvetica-BoldOblique /NimbusSanL-BoldItal ;
/Helvetica (hv______.pfb) ;
/Helvetica-Oblique (hvo_____.pfb) ;
/Helvetica-Bold (hvb_____.pfb) ;
/Helvetica-BoldOblique (hvbo____.pfb) ;

Courierだけ変更するだけで、一応a2psの英文字が本物のcourierになります。小さく印刷されるので文字のステムが揃って非常に綺麗です。

<余談>

私は、必要なソフト以外インストールすることがどちらかというと嫌いなタイプです。そういうことを前提に下記を読んでください。

ghostscriptは5.0以降、日本語のCIDフォントをType1フォントと同じ要領で利用することが出来ます。

今回はやりませんでしたが、CIDフォントのファイルが手に入れば、それをインストールすることでVFlibもFreeTypeも必要がなくなります。

しかし、CIDフォントはMacからプリンタにインストールして利用するもので、Macのファイルシステムのなかでしか存在しません。したがって、WindowsやUNIXのように、ファイルの実体を取り出すことは難しいと考えてよいと思います。Display PostScriptを持ったSunのOpenWindowでさえ、日本語フォントは平成明朝と平成ゴシックのTrueTypeです(ただしCID decodeエンジンは持っているようです。)

MacのCDROMを読むことが出来るツールを利用すると、いくつかのCIDフォントはフォントファイルの実体を取り出すことが出来ます。 DynaFontは吸い出すことができ、規定の方法でgs5.50にインストールすると利用することができましたが、個人的にDynaFontを使うことが無いために実験だけ行なって利用しておりません。

ではモリサワフォントを購入してインストールすればモリサワリュウミンとモリサワゴシックBでPSプリンタの出来上がりではないか!と印刷にこだわる人は思うかもしれません。残念ながらモリサワフォントはMacにインストールする際も、ファイルが実体化することがないのです。CDROMには暗号化されて入っているためモリサワフォントのMac版CDROMを買っても、利用することが出来ません。たとえファイルを取り出すことが出来ても、暗号フォント(psにはそういう規格があるのです)になっているので、そのままではghostscriptでは使うことが出来ないのです。

ヒラギノフォントのCID版がMacで発売されたようで、DynaFontのように抽出可能なら、VFlibもTrueTypeも利用せずに日本語フォントが使えるでしょう。Mac用ヒラギノCIDフォントでは試したことがないので何もいえませんが。