Garamondx 欧文フォントパッケージ併用時の pLaTeX 問題点

自作漢詩文集『狂溟集』を LaTeX で組んでいて,久々に tarticle.cls(縦組クラス)を使ったところ,\section 命令のなかに記述した OTF パッケージ \CID 命令の出力で,文字化けが出た。しかも,通常ボールド(太字)明朝で組まれるはずがミディアム(標準ウェイト)で出力されてしまう。問題の LaTeX 原稿は次のとおり。

\documentclass[12pt,b5paper]{tarticle}% 縦組
\usepackage[osf,swashQ]{garamondx}% Garamond fonts
\usepackage[deluxe,expert,multi,jis2004,burasage]{otf}% OTF 和文(齋藤氏)
\begin{document}
\section{永井荷風『\protect\CID{15395}東綺譚』勘違い恋愛小説}
『\CID{15395}東綺譚』は,「玉の井の私娼街を背景として人事に添えて夏から秋への季節の移り
ゆくさまを描写」(p. 116)した風俗小説にして,作者の意図として「玉の井という昭和の私娼窟を
風物詩的に後世に伝え残そうとした」(p. 117),「作中人物の生活や事件が展開する場所や背景を
情味を以て克明に描き写した一種の随筆的小説」(p. 116。引用はいずれも新潮文庫版
『\CID{15395}東綺譚』の秋庭太郎による解説)と評される。
\end{document}

\CID{15395} は「」という字を出力する命令である。\section 命令のなかではマクロをそのままでは使用できず展開を抑止するために \protect 命令を前置している。\section 命令の内でも外でも \CID{15395} をマークアップしているが,前者では「」に化けてしまっている(下に示した図の左側を参照)。縦組でなくて,pTeX 標準横組の article.cls でも同じである。奥村先生の新ドキュメントクラス jsarticle.cls だときちんと出力される。普段,私は奥村先生の新ドキュメントクラスしか使わないから,これまで気づかなかったのだろう。pLaTeX 標準ドキュメントクラスのバグかと考えてしまった。

ログを確認すると以下が出ていた。

LaTeX Font Warning: Font shape `JT1/cidj/b/3' undefined
(Font)              using `JT1/hmc/m/n' instead on input line 5.

\CID 命令で使用するフォントの JT1(和文縦)エンコーディング,cidj ファミリ,b シリーズ,3 シェイプの組み合わせ(JT1/cidj/b/3)が未定義である,というワーニング。このため substituted fonts 代替フォント(JT1/hmc/m/n)を用いたと報告している。cidj ファミリが使われなければ Unicode にしかない(JIS X 0208 で定義されていない)グリフ「」をポイントできないのは当然である。

Adobe-Japan1-6 の広大な文字空間をサポートする OpenType フォントパッケージ OTF のスタイルファイル otf.sty を確認すると,たしかに b というシリーズの定義はなく,ボールドは bx となっている。和文のボールド書体の定義は,通常はこのとおり bx である。なのに,どうしてボールドのシリーズが b になっているのか。

Garamondx フォントパッケージ(16 世紀フランスのタイポグラファーがデザインした Garamond フォントを,西欧の書物のクラシックな気品ゆえに,私は好んで用いる)にその原因があると気づいた。\usepackage{garamondx} を外すと,果たして,文字化けすることなく,ボールド書体で,セクションがしかるべく出力された。garamondx.sty の中味を確認してみる。あったあった。\renewcommand*{\bfdefault}{b} という定義行。ボールドシリーズのデフォルト値を b に再定義していたのである。原因判明。ちなみに,garamondx.sty のバージョンは 2014/03/11 1.07,platex は TeX Live 2015, 3.14159265-p3.6-141210-2.6 である。

となると対策は,\bfdefaultbx に再再定義してやればよいということになる。

\documentclass[12pt,b5paper]{tarticle}% 縦組
\usepackage[osf,swashQ]{garamondx}% Garamond fonts
\usepackage[deluxe,expert,multi,jis2004,burasage]{otf}% OTF 和文(齋藤氏)
\renewcommand{\bfdefault}{bx}% OTF 文字化け・ウェイト対策
…

これでうまく組めるようになった。下図の左側が問題発生時の PDF で,右側が対策を施した PDF である。

20151110-garamondx-with-ptex.png
問題あり(左)/対策済み(右)

奥村先生の新ドキュメントクラスは \section 命令をゴシックで組むように調整されていて,フォント定義を設定し直しているから問題が出ないわけである。Garamond や Helvetica といった欧文フォントパッケージはボールド書体を b シリーズで定義しているものが多いので,和文と併用するときは上記のような注意が必要といえそうである。