ベクトルフォントの利用

dvips はデフォルトでは pk フォントを使うようになっています。 これは、プリンタに密接した設定で、例えば A というプリンタにとっての 最適な解像度と B というプリンタのそれが違う場合は いちいち dvips の config.ps を変更しなければなりません。 これを解決する方法が、ベクトルフォントの利用です。

ベクトルフォントについては、実はいまいちよくわかっていません。 ここでは、AMS が配布しているフォントを使った設定の仕方を説明します。


インストール

インストールには ports を利用します。

# cd /usr/ports/print/cmpsfont
# make install
# cd /usr/ports/print/amspsfnt
# make install

フォントの本体は /usr/local/share/texmf/fonts/type1/ に入ります。

なお、4.4-RELEASE で japanese/ptex-euc をインストールした場合は、 これらに相当するものはすでにインストールされているようです。

config.ps の設定

dvips の設定ファイルである /usr/local/share/texmf/dvips/base/config.ps を変更します。 書き込み許可が落ちていますので、まずは許可を出してから 次のように変更します。

# cd /usr/local/share/texmf/dvips/base
# cp -p config.ps config.ps.orig
# chmod +w config.ps

変更前
config.ps
* p +cmfonts.map
* p +lafonts.map
* p +cyrfonts.map
* p +eufonts.map

変更後
config.ps
p +cmfonts.map
p +lafonts.map
p +cyrfonts.map
p +eufonts.map
p +/usr/local/share/texmf/dvips/mapfiles/psfonts.cmz
p +/usr/local/share/texmf/dvips/mapfiles.ams/psfonts.amz

なお、4.4-RELEASE で japanese/ptex-euc をインストールした場合は、 psfonts.cmz と psfonts.amz は /usr/local/share/texmf/dvips/bluesky にあります。

ちなみに、/usr/local/share/texmf/dvips/mapfiles/ には psfonts.cm, psfonts.cmx, psfonts.cmz の 3つのマップファイルがあります。 これらはそれぞれ次のような意味です。

  psfonts.cm   PSファイルにフォントを埋めこまない
              (プリントアウトするごとに使う。つまり出来栄えがマシンによって変わる)
  psfonts.cmx  PSファイルに ASCII フォントを埋め込む。
  psfonts.cmz  PSファイルに バイナリフォントを埋め込む。
  
もし psfonts.cm を使いたければ、p +/usr/... の最後を psfonts.cmz ではなく、psfonts.cm に変更すればOKですが、 バイナリフォントを埋め込むのがよいと思います。

トラブルシューティング

dvips を使って dvi ファイルを ps ファイルに変換するとき、 lcircle10.pfb や lcirclew10.pfb がない、 といってうまく変換できないことがあります。 このようなときは、とりあえず /usr/local/share/texmf/fonts/type1/ の lcircle1.pfb や lcirclew.pfb を代用しておきます。

# cd /usr/local/share/texmf/fonts/type1/
# ln -s lcircle1.pfb lcircle10.pfb
# ln -s lcirclew.pfb lcirclew10.pfb
# cd /usr/local/share/texmf
# cp -p ls-R ls-R.bak
# mktexlsr

このあと、mapfile に lcircle* の情報を書き加えておきます。

# cd /usr/local/share/texmf/dvips/mapfiles
# cp -p psfonts.cmz psfonts.cmz.orig
# chmod +w psfonts.cmz
# vi psfonts.cmz

書き加える内容
psfonts.cmz
lcircle1 LCIRCLE1 <lcircle1.pfb
lcircle10 LCIRCLE10 <lcircle10.pfb
lcirclew LCIRCLEW <lcirclew.pfb
lcirclew10 LCIRCLEW10 <lcirclew10.pfb

他にも、pfb ファイルはあるが、psfonts.cmz に記載されていない フォントとして、次が挙げられます。

これらも、lcircle* たちと同様に psfonts.cmz に書き加えておくとよいで しょう。書き加えた psfonts.cmz です。

プリンタフォントの利用

計算機に入っている日本語フォントより、PSプリンタに入っている 日本語フォントの方が美しい場合があります。 その場合には、計算機のフォントを埋め込むよりも、 PSプリンタのフォントを使うような設定にした方がよいでしょう。 やり方は、/usr/local/share/texmf/dvips/base/psfonts.map の 最後にある min, goth などの日本語フォントに関する記述を変更します。 なお、psfonts.map は書き込み禁止になっていますので、 書き込み許可を出してから作業をします。

変更前
psfonts.map
rml Ryumin-Light-H <`min
gbm GothicBBB-Medium-H <`goth
rmlv Ryumin-Light-V <`min
gbmv GothicBBB-Medium-V <`goth

変更後
psfonts.map
rml Ryumin-Light-H
gbm GothicBBB-Medium-H
rmlv Ryumin-Light-V
gbmv GothicBBB-Medium-V

<`min などが「計算機にある min フォントを埋め込め」という 命令ですが、これを削除することにより適当な所 (今の場合は PS プリンタ)からフォントを取ってくるようになります。

システム全体ではなく、個人的にプリンタフォントを使いたい場合には、 ~/.dvipsrc というファイルを使います。 「変更後」の4行を例えば ~/.myfonts.map というファイルで保存し、
~/.dvipsrc
p +~/.myfonts.map
と書いておけば、そのユーザのみがプリンタフォントを使うことになります。

なお、この ~/.dvipsrc は上の方でやった psfonts.cmz の追加を 個人的にのみ行うときにも使えます。


FreeBSD の部屋


Last modified: Wed Apr 20 16:12:43 JST 2011