Re:VIEW (LaTeX) でのフォント指定について

LaTeXでの和文フォント指定はHTML/CSSやWord等にくらべてすこぶる難解。

前提

フォントの指定 (埋め込み)

和文フォントは「フォントマップ」という複数のフォントの対応付けで指定する。
たとえばIPAexフォント(IPAex明朝・IPAexゴシック)なら ipaex と指定。

デフォルトのフォント指定

kanji-config-updmap-sysを実行して設定する。

$ sudo kanji-config-updmap-sys ipaex    # IPAexフォントを指定
$ kanji-config-updmap-sys status        # 現在のフォント指定を確認
CURRENT family for ja: ipaex
Standby family : ipa
$ sudo kanji-config-updmap-sys nofont   # フォント指定の解除
文書ごとのフォント指定

pxchfonパッケージを用いて指定する。
Re:VIEWの場合、sty/review-custom.sty で下記のように設定する。

\usepackage[ipaex]{pxchfon}

利用できるフォントマップ

kanji-config-updmap-sysで確認できる。
デフォルトで利用できるのはIPAフォントとIPAexフォントのみのようだ。

$ kanji-config-updmap-sys status
CURRENT family for ja: ipa
Standby family : ipaex

フォントマップファイルはどこに存在するか?

IPAexフォントのフォントマップファイルはptex-ipaex.map等のファイル名である。
これがどこに存在するか、下記のコマンドで検索する。
(私の環境では/mntにドライブがマウントされているので検索から除外している。)

$ sudo find / -type d -name mnt -prune -o -type f -name  ptex-ipaex.map
/usr/share/texlive/texmf-dist/fonts/map/dvipdfmx/ptex-fontmaps/ipaex/ptex-ipaex.map

このようにUbuntu環境ではTeX Live関連のファイルは /usr/share/texlive/ に置かれるようだ。

フォントマップファイルの書式

ptex-ipa.mapの内容を見てみる。

rml     H       ipam.ttf %!PS IPAMincho
rmlv    V       ipam.ttf %!PS IPAMincho
gbm     H       ipag.ttf %!PS IPAGothic
gbmv    V       ipag.ttf %!PS IPAGothic

見ての通り、横書きと縦書き用の明朝体およびゴシック体のフォントが指定されている。

フォントマップが参照するフォントファイルのパス

フォントマップが参照しているフォントは形式別に次の場所にある。

/usr/share/texlive/texmf-dist/fonts/truetype/ TrueTypeフォント
/usr/share/texlive/texmf-dist/fonts/opentype/ OpenTypeフォント

ただしここにあるのはシンボリックリンクであり、実体は別の場所にある。
たとえばIPAexフォントの場合、下記のように実体は/usr/share/fonts/opentype/にある。

$ ls -l /usr/share/texlive/texmf-dist/fonts/truetype/public/ipaex/
ipaexg.ttf -> ../../../../../../fonts/opentype/ipaexfont-gothic/ipaexg.ttf
ipaexm.ttf -> ../../../../../../fonts/opentype/ipaexfont-mincho/ipaexm.ttf
ipag.ttf -> ../../../../../../fonts/opentype/ipafont-gothic/ipag.ttf
ipagp.ttf -> ../../../../../../fonts/opentype/ipafont-gothic/ipagp.ttf
ipam.ttf -> ../../../../../../fonts/opentype/ipafont-mincho/ipam.ttf
ipamp.ttf -> ../../../../../../fonts/opentype/ipafont-mincho/ipamp.ttf

他のフォントマップファイル

では、IPAフォントとIPAexフォント以外にどのようなフォントマップファイルがあるか調べてみる。

$ ls -l /usr/share/texlive/texmf-dist/fonts/map/dvipdfmx/ptex-fontmaps/
drwxr-xr-x 1 root root 512 Jan  8 21:24 adobe
drwxr-xr-x 1 root root 512 Jan  8 21:24 apple
drwxr-xr-x 1 root root 512 Jan  8 21:24 arphic
drwxr-xr-x 1 root root 512 Jan  8 21:24 baekmuk
drwxr-xr-x 1 root root 512 Jan  8 21:24 canon
drwxr-xr-x 1 root root 512 Jan  8 21:24 cjkunifonts
drwxr-xr-x 1 root root 512 Jan  8 21:24 cjkunifonts-ttf
drwxr-xr-x 1 root root 512 Jan  8 21:24 dynacomware
drwxr-xr-x 1 root root 512 Jan  8 21:24 fandol
drwxr-xr-x 1 root root 512 Jan  8 21:24 founder
drwxr-xr-x 1 root root 512 Jan  8 21:24 hiragino
drwxr-xr-x 1 root root 512 Jan  8 21:24 hiragino-elcapitan
drwxr-xr-x 1 root root 512 Jan  8 21:24 hiragino-elcapitan-pron
drwxr-xr-x 1 root root 512 Jan  8 21:24 hiragino-pron
drwxr-xr-x 1 root root 512 Jan  8 21:24 ipa
drwxr-xr-x 1 root root 512 Jan  8 21:24 ipaex
drwxr-xr-x 1 root root 512 Jan  8 21:24 kozuka
drwxr-xr-x 1 root root 512 Jan  8 21:24 kozuka-pr6
drwxr-xr-x 1 root root 512 Jan  8 21:24 kozuka-pr6n
drwxr-xr-x 1 root root 512 Jan  8 21:24 moga-mobo
drwxr-xr-x 1 root root 512 Jan  8 21:24 moga-mobo-ex
drwxr-xr-x 1 root root 512 Jan  8 21:24 morisawa
drwxr-xr-x 1 root root 512 Jan  8 21:24 morisawa-pr6n
drwxr-xr-x 1 root root 512 Jan  8 21:24 ms
drwxr-xr-x 1 root root 512 Jan  8 21:24 ms-osx
drwxr-xr-x 1 root root 512 Jan  8 21:24 ms-win10
drwxr-xr-x 1 root root 512 Jan  8 21:24 noEmbed
drwxr-xr-x 1 root root 512 Jan  8 21:24 solaris
drwxr-xr-x 1 root root 512 Jan  8 21:24 toppanbunkyu-sierra
drwxr-xr-x 1 root root 512 Jan  8 21:24 ume
drwxr-xr-x 1 root root 512 Jan  8 21:24 unfonts
drwxr-xr-x 1 root root 512 Jan  8 21:24 yu-osx
drwxr-xr-x 1 root root 512 Jan  8 21:24 yu-win
drwxr-xr-x 1 root root 512 Jan  8 21:24 yu-win10

このように多数のフォントマップファイルが存在する。たとえば、

ではなぜ利用できないかというと、かんじんのフォントファイル本体が存在しないからである。モリサワフォント持ってないのに使えるわけはない。

IPAexフォントの例と同様に、フォントファイルを用意してシンボリックリンクを作成すれば他のフォントマップも利用できる。ただし、当然のことながらフォントのライセンス条件は順守すること。ファイルを配置した後で、おまじないとして次のコマンドを実行する。

sudo mktexlsr