TeX Alchemist Online

TeX を使って化学のお仕事をしています。

美文書第7版の TeX 環境で dvips + ps2pdf を使うには

およそ3年ごとに改訂が続けられている『LaTeX2e 美文書作成入門』は,今年1月にとうとう改訂第7版が出版されました。

[改訂第7版]LaTeX2ε美文書作成入門

[改訂第7版]LaTeX2ε美文書作成入門

第6版に引き続き,第7版でもMac用セットアップツール開発に携わらせていただきました。本記事はそのサポート情報を提供します。(美文書ユーザのみならず,2017年3月9日以前に MacTeX 2016 のインストール/ヒラギノ設定をしたユーザにも同じ問題が発生します。)

対象

  • 美文書第7版(2017年1月25日発行の第7版第1刷)付属のMac用セットアップツールを用いて,OS X El Capitan (10.11) または macOS Sierra (10.12) に,美文書第7版の付属セットアップツールでTeX環境をセットアップした方
  • 2017年3月9日以前に,私の記事「MacTeX 2016 のインストール&日本語環境構築法 (El Capitan 以前/以後両対応)」の方法で OS X El Capitan (10.11) または macOS Sierra (10.12) に MacTeX 2016 をヒラギノ埋め込み設定でセットアップした方

現象

和文文字が含まれる書類を (u)pLaTeX + dvips + ps2pdf (Ghostscript) で処理しようとすると,和文文字が文字化けして,正しくPDFが生成できません。(関連:[TeX Forum:2114])

原因

美文書第7版付属セットアップツールでは,ヒラギノフォントを埋め込んだPDFを作成するため,10.11 / 10.12 上においては

# perl cjk-gs-integrate.pl --link-texmf --force
# kanji-config-updmap-sys hiragino-elcapitan-pron

をインストール時に実行します。

cjk-gs-integrate.pl によって,システムに同梱されたヒラギノフォントへのシンボリックリンクをTEXMFLOCAL内に作成し,kanji-config-updmap-sys によってヒラギノを使うように DVIware の設定を行います。

しかし,ここで問題が生じます。以前の記事「TeX界の El Capitan 迎撃戦記」で詳しく述べた,OTC版ヒラギノフォントにまつわる問題です。

  • 10.11 以降のヒラギノフォントは,10.10以前のような通常の OpenType フォント(拡張子 .otf)ではなく,拡張子 .ttc の OpenType Collection (OTC) 形式のフォントとなっている。
  • TeX Live 2016 の dvipdfmx はOTC形式に対応しており, フォントマップ設定 hiragino-elcapitan-pron によってOTC形式のヒラギノフォントを埋め込むよう設定される。
  • しかし Ghostscript はOTC形式のフォントに対応していない。
  • そのため,美文書第7版付属の cjk-gs-integrate.pl は,TEXMFLOCAL内にOTC形式のヒラギノフォントへのシンボリックリンクは張るが,Ghoscript のヒラギノ用設定は行わないようになっている。つまり,Ghostscirpt はヒラギノフォントを「知らない」状態になる。
  • 一方,kanji-config-updmap-sys は dvipdfmx と dvips の設定を一斉に行う。 すなわち,dvipdfmx と dvips の両方を「ヒラギノ埋め込み設定」にしてしまう。

そのため,この状態で (u)pLaTeX + dvips + ps2pdf (Ghostscript) で処理しようとすると,和文文字が文字化けしてしまうことになるわけです。

対処

id:aminophen さんのご尽力のおかげで,cjk-gs-integrate.pl に改修がなされ,2017/03/09 の r43443 で TeX Live に収録されました。

この改修により,OTF版ヒラギノが見つからない環境で cjk-gs-integrate.pl が実行された場合,「ヒラギノフォントの PostScript 名に対して他の和文フォントへのエイリアス設定を行う」ようになりました。具体的には,Ghostscript の Resources/Init/cidfmap.aliases の中に,/HiraMinProN-W3/HiraKakuProN-W6 などのOTF版ヒラギノフォントの PostScript 名を,小塚フォント,MSフォント,IPAフォントなど,システム内に見つかった他の和文フォントへエイリアスを張る設定を書き込みます。これにより,ヒラギノフォントは埋め込まれませんが,代替和文フォントを埋め込むことで,ps2pdf (Ghostscirpt) で処理する際の文字化けが防止できます。

ユーザの行うべき対処

次のように,TeX Live レポジトリを更新した上で,cjk-gs-integrate を再実行してください。

$ sudo tlmgr update --self --all
$ sudo cjk-gs-integrate --link-texmf --force

これで dvips + ps2pdf が正しく機能するようになります。