Edited at

MacユーザがLaTeXでPDFにMSフォントを埋め込む方法

More than 1 year has passed since last update.

某研究会に原稿を投稿する際、MS明朝とMSゴシックを埋め込めと指定があったので設定しました。

ただし、LaTeXを使って作る全ての書類がダサいMSフォントになるのは勘弁なので、ファイルごとにフォントを変えられる設定をします


環境


  • OS: macOS Sierra

  • Tex ディストリビューション: TexLive (2016)

  • TeXエンジン: pLaTeX

今回はエディタには非依存ですが、参考までにTexPadを紹介しておきます。めちゃくちゃ便利なTex用エディタです。

Texpad · Smoothest way to write LaTeX


はじめに

日本語フォントは、フォントマップと呼ばれるマップファイルに、文書中の明朝体とゴシックをどのフォントファイルを対応づけるか記述して指定しているようです。

どのフォントマップを利用してフォントを埋め込むかは、

sudo kanji-config-updmap-sys status

で確認できます。ただし、これはdvipdfmxを利用して生成される全てのPDFに適応される設定です。

フォントマップの中身は、デフォルトで設定されているipaexのマップファイルptex-ipaex.mapなら以下のようになっています。


ptex-ipaex.map

rml H :0:ipaexm.ttf

gbm H :0:ipaexg.ttf
rmlv V :0:ipaexm.ttf
gbmv V :0:ipaexg.ttf

つまりrmlは明朝体、gbmはゴシックの指定です。この例なら、明朝体はipaexm.ttf、ゴシックはipaexg.ttfというフォントファイルとマッピングされています。

HとVは、何を意味するか知らなくてもフォント埋め込みできたので調べてないです。

MSフォントを埋め込むフォントマップはデフォルトでTexLiveにあります。

/usr/local/texlive/2016/texmf-dist/fonts/map/dvipdfmx/jfontmaps/ms/の中です。

4種類ありますが、どうやらpLaTeXではptex-ms.mapを使うようです。


ptex-ms.map

rml H   :0:msmincho.ttc

rmlv V :0:msmincho.ttc
gbm H :0:msgothic.ttc
gbmv V :0:msgothic.ttc

ちなみに、自分でマップファイル作った時は、/usr/local/texlive/texmf-local/fonts/cmap/に入れて、sudo mktexlsrを実行すればいいみたい。


Texファイルへの記述

Texファイルのプリアンブルで、dvipdfmxに対してMSフォントを埋め込むフォントマップを指定します。


sample.tex

\AtBeginDvi{\special{pdf:mapfile ptex-ms.map}}


このように書くだけです。


フォントファイルの設置

これだけでは、MS明朝とMSゴシックのフォントファイル(msmincho.ttcとmsgothic.ttc)が見つからないと言われることがあります。その時は、/usr/local/texlive/texmf-local/fonts/truetype/の中にフォントファイルをぶち込みましょう。ディレクトリtruetypeがない場合はmkdirで作りましょう。

ちなみに、/usr/local/texlive/2016/texmf-dist/fonts/の下に置かないのはTexLiveのアップデート時に消されないようにするためです。

フォントファイルは、MicrosoftOfficeをインストールする時にフォントも一緒にインストールしている場合は、Macがシステムで管理しているフォントフォルダ内にあるはずです(場所は調べてください)。私の場合は、MicrosoftOfficeはインストールしたものの、フォントをシステムにインストールしていなかったので少し面倒でした。その場合は、MS明朝は/Applications/Microsoft\ Word.app/Contents/Resources/Fonts/msmincho.ttcに、MSゴシックは

/Applications/Microsoft\ Word.app/Contents/Resources/DFonts/msgothic.ttcにあります。

Finderからでも、ApplicationsフォルダでWord.appを右クリック(Ctl+クリックまたはトラックパッドを二本指クリック)して「パッケージの中身を表示」でたどり着けます。あと、WordじゃなくてもExcelでもPowerPointでもOK。

最後に、更新のためのコマンドを実行します。

sudo mktexlsr


埋め込まれたことの確認

Adobe Acrobat ReaderでPDFを開いて、ファイル>プロパティ>フォントを見てください。所望のフォントが「埋め込みサブセット」となって入れば埋め込み成功です。