教育社会学の勉強・備忘録

教育社会学のお勉強メモ。Macユーザーのための記事もたまに書きます。

游明朝体・游ゴシック体をMac OS XのLaTeXで使う

2015年10月15日追記:Mac OS X 10.11 El Capitanではこの方法はうまくいかないようです。Mac OS X 10.10 Yosemite以前であれば問題ありません。 詳しくは以下のページをどうぞ。本記事もそのうち更新したいと思います。

TeX Live/Mac - TeX Wiki

doratex.hatenablog.jp

游書体をMac OS XLaTeXで使いたい

Mac OS X 10.9 Mavericks には、游明朝体游ゴシック体がそれぞれ2ウェイトずつついてくるようになりました(一方Windows 8.1にはそれぞれ3ウェイトずつついてくるのですが)。

游明朝体はMediumとDemibold、游ゴシックはMediumとBoldです(一方のWindows 8.1游明朝体がLight、Regular、Demibold、游ゴシックはLight、Regular、Boldです。羨ましい!)。

(ただ厳密に言うとMacの游書体とWindowsの游書体は違うものらしいです→「游ゴシック」フォントと「Yu Gothic」フォントの違い - ななふぉ

このフォントは非常に美しいフォントですが、Web上にこのフォントをLaTeXで使うための解説も特になかったようなので書きました。

ちなみに、MacTeX で TeX をインストールした方向けに書いています。

jfontmaps のアップデート

まずは、日本語フォントをLaTeXで利用可能にしてくれている設定パッケージ「jfontmaps」のアップデートを行います。最近の jfontmaps のアップデートで游書体が使えるようになったのですが、最新版のMacTeXにも jfontmaps の最新版が含まれていない場合があるため、手動でアップデートを行う必要があります。

「アプリケーション > TeXTeX Live Utility」を起動し、「更新分」タブから「jfontmaps」を探し、メニューから「作業 > 選択したパッケージを更新」で最新版に更新してください。(この際に他のパッケージもアップデートしておいても良いかもしれません。その場合は、「全てのパッケージを更新」から。)

フォントファイルの設置

ターミナルを起動し、コマンドラインから以下のコマンドを入力して下さい。游書体へのシンボリックリンクTeXのディレクトリに設置し、それをLaTeXから使えるように設定します。

$ sudo mkdir /usr/local/texlive/texmf-local/fonts/opentype/yu-osx
$ cd /usr/local/texlive/texmf-local/fonts/opentype/yu-osx
$ sudo ln -fs "/Library/Fonts/Yu Gothic Bold.otf" YuGo-Bold.otf
$ sudo ln -fs "/Library/Fonts/Yu Gothic Medium.otf" YuGo-Medium.otf
$ sudo ln -fs "/Library/Fonts/Yu Mincho Demibold.otf" YuMin-Demibold.otf
$ sudo ln -fs "/Library/Fonts/Yu Mincho Medium.otf" YuMin-Medium.otf
$ sudo mktexlsr
$ sudo updmap-sys --setoption kanjiEmbed yu-osx

これでおしまいです。LaTeXで作成した文章に游明朝、游ゴシックが埋め込まれるようになります。

ちなみに、\section類の文字が細いと感じられる場合、使えるフォントの種類を増やすためのパッケージを読み込んだのち、\section類で用いるフォントの設定を変更します。

具体的には、texファイルのプリアンブルにて次のコマンドで行うことができます。

% フォントの多様化
% otfパッケージのdeluxeオプションは、太字や丸ゴシック(游書体にはついていませんが)を使えるようにするものです。
\package[deluxe]{otf}
% \section類で使うフォントの変更
% 初期設定では \headfont は \gtfamily\sffamily となっていますが、
% これに太字にする命令である \bfseries を加えます
\renewcommand{\headfont}{\bfseries\gtfamily\sffamily}

上記の命令で効かない場合は、何か他のパッケージがバッティングしている可能性があります。その場合は、\renewcommand の前の行に以下のコマンドを追加するとうまくいくかもしれません*1

\renewcommand{\bfdefault}{bx}

2014/11/12追記(この日以前にこの記事を参考にされた方へ)

全く気づいていなかったのですが、2014年2月26日の段階で、jfontmaps が利用する上記シンボリックリンクの名前が変更されていました。例えば、以前はYuGothic-Medium.otfだったものが、YuMin-Medium.otfという名前に変わっています。上記のコマンドは既にそのように変更していますので、新しく設定する方はこのまま設定してもらえれば大丈夫です。

以前掲載していたコマンドで実行すると、タイプセット時に次のようなエラーが出るはずです。

dvipdfmx:warning: Could not locate a virtual/physical font for TFM "uphminln-h".
dvipdfmx:warning: >> This font is mapped to a physical font "YuMin-Medium.otf".
dvipdfmx:warning: >> Please check if kpathsea library can find this font: YuMin-Medium.otf
dvipdfmx:fatal: Cannot proceed without .vf or "physical" font for PDF output...

このようなエラーが出た場合、上記のコマンドをあらためて実行するか、以下のコマンドでシンボリックリンクをリネームしてください。

$ cd /usr/local/texlive/texmf-local/fonts/opentype/yu-osx
$ sudo mv "YuGothic-Bold.otf" YuGo-Bold.otf
$ sudo mv "YuGothic-Medium.otf" YuGo-Medium.otf
$ sudo mv "YuMincho-Demibold.otf" YuMin-Demibold.otf
$ sudo mv "YuMincho-Medium.otf" YuMin-Medium.otf

約9ヶ月の間、使えない情報を記載してしまっていたようです…大変申し訳ありませんでした。

おまけ――Windows 8.1の場合

jfontmapsではWindows 8.1に付属する游書体も利用できるようになっています。

僕はWindowsTeXを使ったことがないのでどうやって用いるのかはよくわかりませんが、上記に示した内容のフォント名をWindowsのものに読み替えて(YuGo-Bold.otfではなくyugothic.ttfみたいな感じで。置き換えるべきフォント名はjfontmapsの中身を覗いて確認してみてください)、yu-osxの部分をyu-winに読みかえれば行けます。多分。

根気のある方はjfontmapsのREADMEとか読んでみてください。根気のない方はこれを機にMacを買いましょう。Mac OSは非常に洗練されたOSです。

ちなみに

11月の最終週辺りにCTANに游書体が使えるようになった jfontmaps が追加されたため、TeX Live Utility から導入できるようになったのですが、それ以前は、jfontmaps を開発元からダウンロードしてくるしかありませんでした。

このページにはその内容を書いてあったのですが、もはや不要になったため、別ページに移してあります→jfontmapsをいろいろといじった記録

MacTeXをお使いでない方や、その他TeXシステムの仕組みを知りたい方にとっては、上記のページの方が役立つかもしれません。

*1:分かる人にしかわからない説明:otfパッケージのdeluxeオプションは、使えるフォントを増やすためのオプションです(TeXとフォント - TeX Wiki)。明朝体(JY2/hmc/m/nとか)、ゴシック体(JY2/hgt/m/nとか)、明朝体の太字(JY2/hmc/bx/nとか)、ゴシック体の太字(JY2/hgt/bx/nとか)、丸ゴシック(JT2/mg/m/nとか)などが使えるようになります。一方、\textbfコマンドは、「囲んだ文字を、ウェイト'b'のフォントで表示しなさい」という命令です。フォントウェイトには'l','m','b','bx'などいろいろありますが、その中の'b'を使う命令だということです。しかしotfパッケージで太字に与えられるウェイトの名前は'bx'です。このため\textbfの定義が何らかのパッケージによって'b'に書き換えられている場合、'bx'に定義しなおさなければならないのです。