SNSへはこちら

macOS MojaveでBasicTeX2019の環境構築(ヒラギノ使用)

新しくしたマシンで、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 を入れないと、uplatexUniJIS2004-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 コマンドを実行してもらえれば出来ると思います。