新しくしたマシンで、BasicTeX 2019 を入れました。MacTeX は最初から多くのパッケージが同梱されていますが、2〜3GB と無駄にサイズがデカイので、個人的にはそういうのは嫌いです。なので Basic の方を選びました。
今回、macOS Mojave にてヒラギノフォントを使用する設定に苦しんだので本記事でまとめたいと思います。
症状
uplatex
で日本語明朝体を含む文書をタイプセットし dvipdfmx
で dvi ファイルを pdf に変換する際、UniJIS2004-UTF16-H のエンコーディングファイルが無いぞと怒られる。jarticle でも jsarticle でも同様の症状。
しかしながら、platex
を用いて pdf を生成した時は特にエラー無く出来る。めでたしめでたし...なら良かったんだけど、platex は半角カタカナやら丸数字やら外字の使用がやたら面倒くさい。これらに対応している uplatex でどうにか使えないものかと調べました。
この時参考にしたのは TeX Wiki のヒラギノ埋め込みのページ。
原因
adobemapping というパッケージを入れる必要があるようです。このサイトを見ていてふと気づきました。
解決法
一応最初からインストール手順を示します。
BasicTeXシステムのインストール
Tex WikiであるミラーサイトでBasicTeX.pkgをダウンロード、インストール
フォント関係のパッケージをインストール
tlmgr
を使いまくります。アプデを行った後に各種パッケージをインストールです。
$ sudo tlmgr update --self --all
$ sudo tlmgr repository add http://contrib.texlive.info/current tlcontrib
$ sudo tlmgr pinning add tlcontrib '*'
$ sudo tlmgr install japanese-otf-nonfree japanese-otf-uptex-nonfree ptex-fontmaps-macos cjk-gs-integrate cjk-gs-integrate-macos adobemapping
先程も記載したように adobemapping を入れないと、uplatex
で UniJIS2004-UTF16-H が無いと怒られます(platex
では影響なし)。
また、Wiki では cjk-gs-integrate の記載がなく、依存関係でインストールされないようでしたので追加しておきました。
フォント設定スクリプトをrun
とりあえずフォントのマップファイルを更新しちゃいましょう。
$ sudo cjk-gs-integrate --link-texmf --cleanup
$ sudo cjk-gs-integrate-macos --link-texmf
$ sudo mktexlsr
以下は macOS のバージョンによって異なるので、Wiki で確認してください。High Sierra以上は以下で出来ます。
$ sudo kanji-config-updmap-sys --jis2004 hiragino-highsierra-pron
その他ツールを入れる
必須/あると便利 なものを入れます。今回のフォント問題には関係ありませんが。
以下に説明を軽く入れておきます。
- uplatex:
platex
の Unicode 対応版。特殊文字等を含んだドキュメントを作成するのに必須。platex
の代わりに実行。 - latexmk: 参照利用時の2回コンパイル等をしなくても良いように、よしなに組んであるビルドツール。インストールすると
latexmk
コマンドが使用可能に。 - jsclasses: BasicTeX の場合、
jsarticle
等はデフォルトで入っていないため、使いたい場合は手動で入れる必要がある。 - listing: ソースコードを埋め込むのに便利な環境を提供するパッケージ。
$ sudo tlmgr install uplatex latexmk jsclasses listing
TeX 関係のものでは無いですが、Skim という PDF ビューワを入れておくと色々と良いです。
とりあえずやってみよう
ということで、実際に pdf を生成できるかやってみましょう。
% a.tex
\documentclass[uplatex]{jsarticle} % uplatex 使用時には[uplatex]と指定が必要
\begin{document}
aaa
あああ
オオオオ % pLaTeXではここでエラーになる
\end{document}
これを保存したら、以下のようなコマンドを実行してちゃんと出来るか確かめます。
$ uplatex -kanji=utf8 -no-guess-input-enc a.tex
$ dvipdfmx a.dvi
$ open -ga Skim a.pdf
どうやら、いい感じみたいです。皆さんお試しあれ。
もちろん、platex
を使いたいときも先程の [uplatex]
を削除して platex
コマンドを実行してもらえれば出来ると思います。