このページは古いままです。

TeX と PostScript フォント

なお,ここより内山さんの dvipsk566a for Mac のページの方がここより詳しく書かれています。 そちらをぜひご参照ください。

2002年5月23日付で Windows 用 ユニバーサルインストーラ1.0.6日本語版 が出ています(ファイル名 winstjpn.exe)。 ローカルプリンタ(出力先 FILE:)でインストールします。 適当な PPD ファイルがないなら,Generic PostScript Printer としてインストールします。

EPS出力に設定するには, 「スタート」「設定」「プリンタ」でGeneric PostScript Printerを右クリックして「プロパティ」を選び, 「全般」「印刷設定」「詳細設定」で「ドキュメントのオプション」「PostScriptオプション」「PostScript出力オプション」 を「簡易PostScript(EPS)」にします。 ただし,正しい BoundingBox が付くとは限りません。

はじめに

PostScript では一般に

が使われます。TeX の dvi ファイルを PS 形式に直す dvips では, 通常は Computer Modern フォントをビットマップの Type 3 形式にして PS ファイルに埋め込みます。

しかし,dvips をうまく設定すると,Type 1 フォントを埋め込んだり, あるいはまったく埋め込まなかったりすることができます。 詳細は次のリンクをご覧ください。 ACM のページには 300dpi,600dpi,Type 1 の比較図が載っています。

Type 1 Computer Modern フォント

かつては BaKoMa フォントという Type 1 フォントがフリーでよく使われていました。 これは CTAN の fonts/cm/ps-type1/bakoma ディレクトリに入っています。

しかし,最近 Blue Sky ResearchY&Y が作った高品位の Type 1 Computer Modern フォントがフリーで供給されるようになりました。

たとえば ftp.bluesky.com/ftp-area/pub/fonts/Computer_Modern_PostScript では次のような Macintosh 用フォントが置いてあります。

-------r--           0    61830    61830 May 14 14:48 CMB10.sea.hqx
-------r--           0  2814989  2814989 Jun 11 12:58 cmps-macintosh.hqx
-------r--         568     3599     4167 Apr 10 16:18 READ.ME

同じものが CTAN では systems/mac/textures/fonts/Computer_Modern_PostScript というディレクトリにもあります。

Macintosh 用以外のものは CTAN の fonts/cm/ps-type1/bluesky ディレクトリにあります。

-r--r--r--  1 root  wheel      533 Oct 26 00:39 00Contents
-r--r--r--  1 root  wheel     3700 Sep 30 10:14 READ.ME
-r--r--r--  1 root  wheel  2842375 Sep 29 12:39 cmps-oztex.hqx
-r--r--r--  1 root  wheel  1950849 Sep 29 12:43 cmps-pc.zip
-r--r--r--  1 root  wheel  2831407 Sep 29 12:40 cmps-textures.hqx
-r--r--r--  1 root  wheel  1917739 Sep 29 12:42 cmps-unix.tar.gz
drwxr-xr-x  2 root  wheel     2048 Oct 26 12:38 pfb
drwxr-xr-x  2 root  wheel     2048 Mar  7  1997 pfm

それぞれ OzTeX 用,PC 用(PFB/PFM),Textures 用,UNIX 用(PFB/AFM)です。

AMSFonts の Type 1 版は同じく CTAN の fonts/amsfonts/ps-type1 ディレクトリにあります:

-r--r--r--  1 root  wheel      421 Oct 12 00:42 00Contents
-r--r--r--  1 root  wheel     3723 Sep 30 11:21 READ.ME
-r--r--r--  1 root  wheel  1801653 Sep 29 13:39 amsps-oztex.hqx
-r--r--r--  1 root  wheel  1009977 Sep 29 13:43 amsps-pc.zip
-r--r--r--  1 root  wheel  1719014 Sep 29 13:39 amsps-textures.hqx
-r--r--r--  1 root  wheel   887925 Sep 29 13:42 amsps-unix.tar.gz

なお, Blue Sky Research は有名な Macintosh 用 TeX システム Textures を作っているところです。 ここではプレビューアの Textures Reader も無償配布しています。

Y&Y では Crufty,Finger,XY Pic フォント(いずれも Windows 用 Type 1) を無償配布しています。

なお,xxx.lanl.gov にも BaKoMa,Paradissa フォントが置かれており, Computer Modern Postscript Fonts in Adobe Type I Format という解説には「CTAN のでなくこちらを使え」と書いてあります。 この下の x-windows サブディレクトリは次のようになっていました。

-rw-r--r--   1 e-prints e-prints 3605733 Jul 23  1996 bakoma.tar.gz
-rw-r--r--   1 e-prints e-prints    2818 Jul 23  1996 bakomaFontmap
-rw-r--r--   1 e-prints e-prints 4859082 Jul 23  1996 dc.tar.gz
-rw-r--r--   1 e-prints e-prints    2301 Jul 23  1996 dcFontmap
-rw-r--r--   1 e-prints e-prints    1506 Jul 30  1996 parFontmap
-rw-r--r--   1 e-prints e-prints 1454359 Jul 30  1996 paradissa.tar.gz
drwxrwxr-x   2 e-prints e-prints    1024 Nov 20  1996 pcf
-rw-r--r--   1 e-prints e-prints    2039 Nov 23  1996 xpdf-config.tar.gz

この中から ba*pa* の4ファイルをいただいてきました。

欧文 PS フォントの指定法

まず Computer Modern および AMS フォントの Type 1 版の使い方を説明します。

UNIX なら,上記 cmps-unix.tar.gzamsps-unix.tar.gz を展開します。

cmps-unix.tar.gz を展開してできる cmpsfont ディレクトリの中の mapfiles/psfonts.cmz というファイルを dvips ディレクトリ中の psfonts.map ファイルと同じディレクトリの中に入れ, config.ps の適当なところに

p +psfonts.cmz
のように書き込みます。

amsps-unix.tar.gz を展開してできる amspsfnt ディレクトリの中の mapfiles/psfonts.amz というファイルも同様にします。

残りのファイルは適当な場所に移します。 たとえば /usr/local/share/texmf/fonts/type1 というディレクトリを作り,その中に cmams というディレクトリを作り,その中に該当する pfb ファイルを入れました。

TeX のほうは変更する必要はありません。

これで dvips を使うと, ビットマップの代わりに Type 1 フォントが組み込まれます。

なお,LaTeX 固有のフォント(line10lcircle10)は, cmps 配布には入っているのに, mapfiles のサンプルには入っていないようです。 次のように書き込んだファイルを作って, config.ps から読み込ませてください。

lasy10          LASY10          <lasy10.pfb
lasy5           LASY5           <lasy5.pfb
lasy6           LASY6           <lasy6.pfb
lasy7           LASY7           <lasy7.pfb
lasy8           LASY8           <lasy8.pfb
lasy9           LASY9           <lasy9.pfb
lasyb10         LASYB10         <lasyb10.pfb
lcircle10       LCIRCLE10       <lcircle10.pfb
lcirclew10      LCIRCLEW10      <lcirclew10.pfb
lcmss8          LCMSS8          <lcmss8.pfb
lcmssb8         LCMSSB8         <lcmssb8.pfb
lcmssi8         LCMSSI8         <lcmssi8.pfb
line10          LINE10          <line10.pfb
linew10         LINEW10         <linew10.pfb
logo10          LOGO10          <logo10.pfb
logo8           LOGO8           <logo8.pfb
logo9           LOGO9           <logo9.pfb
logobf10        LOGOBF10        <logobf10.pfb
logosl10        LOGOSL10        <logosl10.pfb

ちなみに,pfb ファイル中の lcircle1.pfblcirclew.pfb はそれぞれ lcircle10.pfblcirclew10.pfb に改名してしまいました。

注: この中の logo* フォントは METAFONT にしか使えません。 METAPOST と書こうとすると META O T になってしまいます。 METAPOST のロゴを使いたいなら, 上のマップファイルの logo で始まる行を消すか % でコメントアウトしてください。 もっとも,METAPOST は logo フォントでなく通常のフォントで MetaPost と書いてもいいことになっていますし, MetaPost のマニュアルもその書き方になっていますので, わざわざ logo フォントを使うこともないでしょう。

追記: 上記の解決法を松山@JIP様に教えていただきました。 実現方法のポイントは以下の通りです。

PDF ファイルの作り方

これは上記のようにして作った PS ファイルを Adobe の Acrobat Distiller で処理するのが最も良いようです。 Acrobat をインストールして, PS ファイルをマイコンピュータかエクスプローラでダブルクリックするだけで, PDF ファイルができます。 この PDF ファイルをダブルクリックすれば Exchange(Acrobat Reader)で画面表示できますし, 印刷もできます。 PS プリンタのない場合にもきれいに印刷できるので便利です。

Acrobat がない場合は, Ghostscript を使います。 日本語化された Ghostscript なら, 次のように打ち込めば日本語の文書も含めて一応PDF化できます。

gswin32c -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sPAPERSIZE=a4 -sOutputFile=xxx.pdf xxx.ps

また,pdftex を使うという手もあります。 これなら dvi を介さずに直接 PDF が作れます。 ただし pdftex は今のところ日本語化されていません。 角藤さんがバイナリ配布されています。

dvipdfmの日本語化 によって状況が一変しました!
dvips によるリガチャ等の文字化けについては Weird characters in dvips output をご覧ください。

外字の使い方

欧文の外字を収めたファイル, たとえば TestFont.afm というテキスト形式のフォントメトリックファイルと, TestFont.ps という Type 1 フォントがあったとしましょう。 これを使うには,まず dvips 付属の afm2tfm で tfm を生成します:

afm2tfm TestFont.afm
これで TestFont.tfm ができますので, これを test.tfm と改名して tfm の入れ場所に入れておきます。

TestFont.ps のほうは Type 1 フォントの入れ場所 (たとえば /usr/local/share/texmf/fonts/type1/local の下) に入れておきます。

そして,dvips ディレクトリ(たぶん /usr/local/share/texmf/dvips) の中の psfonts.map の最後に

test  TestFont  <TestFont.ps
のように書いておきます。 これは,test というフォントを TeX で使おうとしたときに, PostScript の名前では TestFont というフォントが使われ, その定義(Type 1 形式)が TestFont.ps というファイルに入っていることを示します。

これを (p)LaTeX2e で使うためには, 次のような utest.fd というファイルを作って, (p)LaTeX2e が読み込めるところに入れておきます。

\ProvidesFile{utest.fd}
\DeclareFontFamily{U}{test}{}
\DeclareFontShape{U}{test}{m}{n}{<->test}{}

実際の使用には pifont パッケージを使うのが簡単でしょう。頭に

\usepackage{pifont}
と書いておいて,16進数で
\Pisymbol{test}{"43}
のように指定します(実際にはマクロ定義しておくと便利です)。 サイズは文脈に合わせて自動的に変わりますし, \Large などのコマンドでもサイズを変えることができます。

なお,dvips(k) で Windows 補助漢字領域を使う方法については, 松田さんの 日本語対応 gswin 4.03 ミニ情報 に書かれています。

和文 PS フォントの指定法

和文の virtual font があることを前提にします。 もしなければ,桜井さんの vftool を使って作ります。配布先は

ftp://ftp.math.s.chiba-u.ac.jp/tex/vftool-1.2.tar.gz
です。

浅山さんの DOS 版(DPMI 版)にも vftool12.zip として入っています。 この入手先は アスキーとそのミラー の dos ディレクトリです。

上記の和文 virtual font では, プリンタフォントを rml,rmlv,gbm,gbmv のような短い名前で呼び, dvips ディレクトリの psfonts.map の中で

rml      Ryumin-Light-H
rmlv     Ryumin-Light-V
gbm      GothicBBB-Medium-H
gbmv     GothicBBB-Medium-V
のように指定して読み返させます(プリンタによっては
rml      HeiseiMin-W3-H
rmlv     HeiseiMin-W3-V
gbm      HeiseiKakuGo-W5-H
gbmv     HeiseiKakuGo-W5-V
のようにしなければならないかもしれません)。

min10 を使ったら rml に置き換えるのが virtual font の仕事です。 その際に min10.tfm というメトリックが使われます。 JIS フォントでは,jis を指定すると jis.tfm というメトリックを使いますが, 結局 rml に置き換えます。

同じような機構を使えば,和文書体が増やせます。

[付記] 加藤文明社 さんが TeX と PS について出版の立場でうまくまとめてくださっています。

追加リンク


奥村晴彦

Last modified: 2004-09-23 16:24:47