DTPab

印刷やデザイン、アドビ製アプリやスクリプトなど、雑多な技術ブログ

OSをまたいで作業する際に注意すべきヒラギノフォント

言わずとしれた大人気フォントのヒラギノシリーズですが、一部の書体ではmacOSとWindowsで(何の警告もなく)濁点の大きさが変わるという鬼畜仕様があります*1

今回は少し詳しく調べた結果を記事にしました。OSをまたいで作業する可能性がある環境の方はぜひ参考にしてください。

ヒラギノフォントとは?

ご存知ない方のためにちょっとだけ説明すると、ヒラギノシリーズはスクリーン(旧大日本スクリーン、正式名称はSCREENホールディングス)がリリースしているフォントです。フォント名に「Pro」や「Pr6N」など、モリサワのフォントと同様の名前で文字セットを区別できますが、モリサワの基準とスクリーンの基準は異なります*2

ヒラギノフォントをインストールしInDesignで使うためには(僕の理解の範囲では)、下記があります。

  • スクリーン版
  • モリサワ版
  • macOSバンドル版
  • Adobe Fonts版

これらのうち、スクリーン版以外は利用できるウェイトが限られています。今回取り上げるのはモリサワ版(Morisawa Passport版)とmacOSバンドル版です。

何が問題なのか

いろいろな事情があってmacOSに搭載されるようになったヒラギノですが、DTP環境ではいま困ったことになっています。冒頭で書いたように、OSによって参照するフォントが異なり、濁点・半濁点の大きさが変わってしまうのです。
濁点の大きさなんて別に問題ないでしょ、と思いません? 僕はそう思いたいw
具体的に業務上どういうケースで困るのか、というのは仕事や案件ごとの判断かと思いますので、この記事では現象だけの説明に留めます*3

実際に起きる問題としては下記2点です。

  1. オプティカルカーニングを使用している場合、文字の字幅情報が変わり、文字の送り込みが変わる可能性がある
  2. macOSでしか提供されないフォントが存在するのでWindowsではフォントが利用できない

1について、印刷物という性質上、文字の送り込みが変わってしまうのは由々しき問題になり得ます。再版では基本的に修正のあるページしか差し替えないので、ページをまたいで本文の送り込みが変わることにより、印刷物で文字が消えてしまったり、ダブってしまったりする可能性があるということです。
2について、「ヒラギノ角ゴ」ではなく「ヒラギノ角ゴシック」と表示されるフォントがそれです。macOSバンドルのttcフォントでのみ提供されるので、Windowsでは利用できません。

OSをまたいで作業する可能性がある環境では、これらのことを把握しておかないと大きなトラブルになる可能性があるのです。

macOSにバンドルされたものはバージョン情報が正しく参照できませんと公式で謳われています*4が、情報を見ると一応それらしいものは確認できます。

著作権情報に「ver.」の表記がある…?

どうなんでしょうね?

問題の詳細と対策

濁点の大きさが変わるフォントの調査結果

macOS 12.7.1(Monterey)とWindows 10(Morisawa Passport)で検証しました。その結果、濁点の大きさが変わったフォントは下記のとおりです。

  • ヒラギノ丸ゴ Pro W4
  • ヒラギノ丸ゴ ProN W4
  • ヒラギノ角ゴ StdN W8
  • ヒラギノ角ゴ ProN W6
  • ヒラギノ角ゴ ProN W3
  • ヒラギノ角ゴ Pro W6
  • ヒラギノ角ゴ Pro W3
  • ヒラギノ明朝 ProN W6
  • ヒラギノ明朝 ProN W3
  • ヒラギノ明朝 Pro W6
  • ヒラギノ明朝 Pro W3

ざっくり見せるとこんな感じです。

青:macOS、赤:Windows(Morisawa Passport)

macOSバンドルでのみ提供されるヒラギノ

調べるまでもないですが、下記になります。

  • ヒラギノ角ゴシック W9
  • ヒラギノ角ゴシック W8
  • ヒラギノ角ゴシック W7
  • ヒラギノ角ゴシック W6
  • ヒラギノ角ゴシック W5
  • ヒラギノ角ゴシック W4
  • ヒラギノ角ゴシック W3
  • ヒラギノ角ゴシック W2
  • ヒラギノ角ゴシック W1
  • ヒラギノ角ゴシック W0

なぜOSによってフォント(グリフ)が異なるのか

macOSバンドル版で提供されているこれらのフォントは、システムにインストールされているためMorisawa Passportで提供されません*5。したがってこれらのフォントは、macOS→システムフォントを参照、Windows→Morisawa Passportを参照となります。Morisawa Passport版は濁点が大きくなっていないものが提供されているので、結果的にOSによって濁点の大きさが変わる(濁点の大きさが異なるグリフを持った書体が参照される)のです。
もちろん、InDesignを始めとするアドビのアプリケーションは、フォント自体は正しく認識できるために警告などは出しません。

どう対策するか

濁点の大きさが変わる問題は、そもそも対策する必要があるかどうかは環境次第です。
この現象を「問題だ」と捉えるなら、何か対策を講じる必要があります。

macOSにしかバンドルされないフォントはフォント名がわかりやすいので、使わない、とするのが原則でしょう。

該当フォントを避ける

UD版を使う、Pr6版を使うなど、別のフォントで逃げるのが最も簡単で確実でしょう。しかしデザインやフォントの決定権がないことが多いDTP界隈ではそも難しい。

スクリプトで機械的にチェックする

InDesignのスタートアップスクリプトという仕組みを利用して、ドキュメントが開いた際に該当のフォントが使われていれば警告を出す、といったことは可能です。

フォント情報に直接アクセスすると非常に重たいので、FontコレクションオブジェクトのeveryItem()を使って調べたい要素を取り出すのがおすすめです。変数tgtDocにドキュメントオブジェクトが入っているとすると、下記のようなコードでフォント情報がチェックできます。

// チェックするフォントの一覧
// Font.fullName の値 : ダイアログに表示させるフォント・ウェイト名
var targetFontLib = {
    "Hiragino Mincho Pro W3": "ヒラギノ明朝 Pro W3",
    "Hiragino Mincho Pro W6": "ヒラギノ明朝 Pro W6",
    "Hiragino Mincho ProN W3": "ヒラギノ明朝 ProN W3",
    "Hiragino Mincho ProN W6": "ヒラギノ明朝 ProN W6",
    "Hiragino Kaku Gothic Pro W3": "ヒラギノ角ゴ Pro W3",
    "Hiragino Kaku Gothic Pro W6": "ヒラギノ角ゴ Pro W6",
    "Hiragino Kaku Gothic ProN W3": "ヒラギノ角ゴ ProN W3",
    "Hiragino Kaku Gothic ProN W6": "ヒラギノ角ゴ ProN W6",
    "Hiragino Kaku Gothic StdN W8": "ヒラギノ角ゴ StdN W8",
    "Hiragino Maru Gothic ProN W4": "ヒラギノ丸ゴ ProN W4",
    "Hiragino Maru Gothic Pro W4": "ヒラギノ丸ゴ Pro W4",
};
var resultString = []; // 結果表示用に準備する一時的な配列
var docFonts = tgtDoc.fonts.everyItem();
var docFontsList = docFonts.fullName; // 値は配列になる
for (var i = 0, len = docFontsList.length; i < len; i++) {
    for (var k in targetFontLib) {
        if (docFontsList[i] === k) {
            resultString.push(targetFontLib[k]);
            break;
        }
    }
}
if (resultString.length > 0) { alert(resultString.join("\r")); }

これをイベントリスナーに登録すれば、一応仕組みとして気づくことはできるでしょう。ただ一部のフォント(うまく参照できなくなった合成フォント)でdocFonts.fullNameプロパティにアクセスするタイミングでエラーが起きることがわかりました。そもそもそういう合成フォントがあるとPDF書き出し時にフォントが見つからないと警告が出る(から気付ける)のであまり問題ではないのですが、スクリプトがエラーで止まってしまうのは困るので、現在対処法を検討中です(なのでイベントリスナーまで仕込んだ最終版をここに載せていません。上記情報だけで自力実装できる方はお試しください)

余談

インストールされているすべてのヒラギノシリーズフォントをInDesignのドキュメントに漏れなくダブりなく文字列として挿入して、その文字列に同名のフォントを当てる処理をスクリプトにしました。

フォントを適用する際オーバーフローしているとうまく当たらないので、もしオーバーフローしてしまう場合は最初からオーバーフローしないテキスト設定にした上で実行してください。
11行目の/ヒラギノ/の部分を変えると、任意の書体ファミリーを参照できます(/ /の内側は正規表現です)。

gist.github.com

参考

macOSバンドル版ヒラギノフォントバージョン履歴|ヒラギノサポート

*1:古くはmacOS間でも起きます。macOS 10.11.2以前かそれ以降かで、システムにインストールされているヒラギノの濁点の大きさが変わります。ただ現状そんなに古いOSを使うはずがないので、今回はmacOSとWindowsという比較にしています。

*2:ヒラギノフォントの文字セット仕様:文字セット仕様(OpenType)|ヒラギノサポート

*3:例えば、macOSとWindowsを使ってドキュメントAとドキュメントBのPDFを出力した際、AとBで濁点の大きさが違うといったことが起こります。これを「問題がある」とするかは仕事や案件の性質や会社の方針、商習慣などによって変わると思うので、それはご自身の環境で判断してくださいということです。
参照:OS X El Capitan(10.11.2)搭載のヒラギノフォントと弊社製品版フォントについて|ヒラギノサポート

*4:参照:OS X El Capitan(10.11.2)搭載のヒラギノフォントと弊社製品版フォントについて|ヒラギノサポート

*5:モリサワに確認したところ、そういうものだそうです