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

Date: 2017/06/25 |  このエントリーをはてなブックマークに追加  |  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フォントでは試したことがないので何もいえませんが。


コンピュータTips/FreeBSD

Recent Updates

ディスクの不良を確認する(iostat -EnのError等)

ディスク関係のスタックをざっくり書くと次の様になっています 例、SAS Expanderを使う場合、 例、AHCIなどを使う場合、 これらのエラーは、次の様なコマンドで知ることができます。 出力結果例 このなかで、 たとえば、SATAディスクを利用している際に負荷が上がってしまい、ディスクの応答が間に合わないシチュエーションでは、Transport Errorが一気に …
»続きを読む

2017年、新年明けまして、おめでとうございます。

日記/2017年、新年明けまして、おめでとうございます。

新年明けまして、おめでとうございます。今年もよろしくお願いします。 昨年中は、皆様にお世話になりました。 昨年は、コツコツと3年程前から行ってきた改革がある程度完成された年で、この先5年、10年を見据えて、次のフェーズへと進む為の土台が完成した年でもありました。 それにキャッチアップする形で、個々の従業員一同が、役割を自覚し、明確に動けた年であったかと考えています。 …
»続きを読む

RSA鍵認証のみにし、Password認証を無効化する

意外に覚えきれなくて、いつも忘れるので、メモついでに残しておきます。 古いOpenSSHや、SunSSHの場合は、これも無効にします。 ユーザ目線でのザックリとした説明を。OpenSSHではなく別のSSH実装も含めて考えているので、OpenSSHのソースをじっくり読んだわけではないため、間違ってたらすみません。 まず、Password認証を無効にする場合、 PasswordAut …
»続きを読む

Nexus7 2013をMarshmallow(Android 6.0)化

OTAでない方法で。 だいたい ここに書いてある方法 なんだけど、adbなどが一式使えている状態で。 まずは自分の機種のものをダウンロードする。僕のは、 Android 6.0 Marshmallow for Nexus 7 2013 Wi-Fi 。tgzを展開し、zipも解いておく。 まずはboot loaderへ。 bootloader自体のアップデート。一式、updat …
»続きを読む

OS X 10.11 El Capitanで、phpのモジュールインストール

Yosemiteからのアップデートは割と簡単です。なぜならYosemite時に、すでにapache 2.4になり、php 5.5になっているから(笑 アップデート前に、まずはphp.iniとhttpd.confをバックアップしておきましょう きになるなら、hostsとかapache以下全てをバックアップしておいてもいいかも。 後はEl Capitanにアップデートする。 アッ …
»続きを読む

EasyAcc Powerbank PB4000CB

スマフォTips/モバイルバッテリー/モバイルバッテリー製品レビュー/EasyAcc Powerbank PB4000CB

薄型のモバイルバッテリーEasyAcc Powerbank PB4000CBです。 今や、モバイルバッテリーは大型のものが好まれるのか、隙間無く商品があります。20,000mAh越えで、「でけえ!」とか言ってますけど、大きいのを探せば、100Wh(27,000mAh)、200Wh当たり前、探せば500Wh(135,000mAh)とか、もっともっとあるのです。用途がどんどん異なっていくので …
»続きを読む

EC Technology Sports Headsets S10-JWH07B

デバイスTips/Bluetooth/EC Technology Sports Headsets S10-JWH07B

Bluetoothのスポーツヘッドセット、 S10-JWH07B について。 今までブログに記載することはなかったのですが、実は割とBluetoothと言うか無線型のヘッドフォンを沢山持っています。赤外線や独自物、Bluetoothなどいくつもストックを持っていたりします。普通の人からするとマニアです。でも、マニアからみるとそうでもないレベルです。 ただ「ヘッドフォンの音質」というの …
»続きを読む

静岡県内をVPNでつなぐ(割と特殊な例)

静岡というのはある意味特殊な土地で、ほとんどのインターネットプロバイダのPOIは静岡でつながれておらず、NTT西圏内のどこかで繋がっているので、大抵大阪折り返しになる。仮に静岡県内にPOIがあっても、だいたい静岡でルーティングしてないので、やっぱり東京折り返しになってたりする。例え 同じプロバイダを使っていたとしても 。 だから静岡←→静岡のVPNは、静岡←→東京や、静岡←→大阪よりも遅 …
»続きを読む

最新  |  << 前ページ  |  次ページ >>  |  最初