W32TeX の dvips における和文フォントの指定

W32TeX の dvips における和文フォントの指定

- ut の投稿
返信数: 0

  platex>dvips>ps2pdfでのIPAex埋め込み
  2015年 09月 09日(水曜日) 16:16
  https://okumuralab.org/tex/mod/forum/discuss.php?d=1658

というトピックを拝読して、私自身は普段 dvips は使ってないですし、PDF/A にするかどうかということも別にして、W32TeX の dvips で和文フォントを指定したり、それを Ghostscript で表示したり pdf にするにはどうするのかというのを確認してみました。

(「そんなのチラシの裏にでも書いておけ」 と言われそうですが、間違いは指摘していただければと思って、こちらに書かせていただきます)

参照したのは、

  ・ DVIPDFM-W32.txt and dvipsk-w32.txt
   2013年 06月 12日(水曜日) 21:38 - Akira Kakuto の投稿
   https://okumuralab.org/tex/mod/forum/discuss.php?d=1035

  ・ A new program: ps2otfps.exe
   2013年 09月 30日(月曜日) 14:06 - Akira Kakuto の投稿
   https://okumuralab.org/tex/mod/forum/discuss.php?d=1110

  ・ TeX Wiki: Ghostscript/Windows
   http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?Ghostscript%2FWindows
   Last-modified: 2015-07-07 (火) 21:56:40 (65d)

で、これらによりますと、

  ・ [2013/09/30] 以降の W32TeX であって、

  ・ 使用したい和文フォントが OpenType のヒラギノ、小塚、モリサワのいずれかの場合、

には、以下のようにすればいいようです。

(1) 当該 OpenType フォントのコピー

使いたい和文フォントを Ghostscript の Resource/CIDFont/ フォルダにコピーします。その際、ファイル名を PostScript 名にリネームして、拡張子は取り除いておきます。

(2) map 指定の追加

dvips 実行時に、和文用の map の指定を追加します。例えば、filename.dvi があって、これを、和文フォントとしてヒラギノを指定した PostScript に変換したい場合には、

  dvips -u+hiragino-ps.map filename

とすると、/HiraMinPro-W3-H や /HiraKakuPro-W6-H という名前が書き込まれた filename.ps ができます。

dvips 用の和文 map としては、hiraginopron04-ps, hiraginopron-ps, hiragino-ps; kozukapr6n04-ps, kozukapr6n-ps, kozuka-ps; morisawapr6n04-ps, morisawapr6n-ps, morisawa-ps; standard04-ps, standard-ps が用意されています。

(3) ps2otfps.exe を通す

(2) で出来た filename.ps には、/HiraMinPro-W3-H のようにフォント名が書き込まれていますが、これは “/CIDFont-CMap” の形になっているので、/CIDFont と /CMap に分解する必要があります。

Ghostscript の Resource/Font/ フォルダに “HiraMinPro-W3-H” というファイルが既にあって、その中で、“/HiraMinPro-W3-H” は “/HiraMinPro-W3” と “/H” に分解されるということが書かれていれば、(2) の filename.ps は Ghostscript でそのまま表示したり pdf に変換したり出来ます。

でも、使用する和文フォントとすべての CMap との組み合わせについて、Resource/Font/ フォルダに必要なファイルをあらかじめ用意しておくのは大変です。

ここで、「“/HiraMinPro-W3-H” は “/HiraMinPro-W3” と “/H” に分解される」 という指示は、HiraMinPro-W3-H というファイルの中でなく、filename.ps の中に直接書かれていてもよくて、[2013/09/30] 以降の W32TeX に含まれている ps2otfps.exe というプログラムが、それをやってくれます。

なので、(2) の filename.ps を ps2otfps.exe で処理して、

  ps2otfps filename.ps new_filename.ps

のようにしますと、new_filename.ps には、「“/HiraMinPro-W3-H” は “/HiraMinPro-W3” と “/H” に分解される」 という指示が追加されます。

これで、この new_filename.ps は、Ghostscript で表示すると和文がヒラギノで表示され、ps2pdf で pdf にすると、ヒラギノが埋め込まれます。

ちなみに、

  ・ 手元の W32TeX が古くて和文用の map や ps2otfps.exe がない場合

には、map は dvipsk-w32.tar.xz をもらってくればその中に入っています。dvipsk-w32.tar.xz には ps2otfps.exe も入っていますが、dll が古くて使えないので、上掲の、

  ・ A new program: ps2otfps.exe
   2013年 09月 30日(月曜日) 14:06 - Akira Kakuto の投稿
   https://okumuralab.org/tex/mod/forum/discuss.php?d=1110

を参考に、%%BeginFont: ~ %%EndFont の部分を直接書き足したらうまくいきました。

また、

  ・ 指定したい和文フォントが IPA や IPAex などの TrueTypeフォントの場合

には、Ghostscript の lib/cidfmap というファイルの “% Substitutions” や “% Aliases” の部分に当該エントリを追加したら、とりあえずうまくいったように見えます。

IPA や IPAex は 明朝・ゴシック各一書体なので Aliases だけで済むかと思いますが、もしも map を自作するのであれば、TeX Live 用の jfontmaps というパッケージを CTAN からもらってくると参考になります (パッケージに収録されている map は dvipdfmx 用のものですが、PostScript 名も記載されています.W32TeX 収録の dvips 用の map 群も、これらが元になっているようです)。