Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

LuaTeXで原ノ味フォントを使う

これは「TeX & LaTeX Advent Calendar 2019」の8日目の記事です。
7日目の記事はやまいもさんの「jlreqでの箇条書きのインデント調整に関して。」です。9日目の記事はmunepiさんです。

本記事ではTeX Liveの環境に原ノ味フォントをインストールして LuaLaTeX で使うまでを簡単に紹介します。

2020年4月11日更新:原ノ味フォントがTeX Liveに収録され、TeX Live2020からデフォルトの日本語フォントになりましたので、これらを反映しました。

はじめに

原ノ味明朝・原ノ味角ゴシック(原ノ味フォント)は、源ノフォント(源ノ明朝・源ノ角ゴシック)を従来の日本語フォントと同様の構成に組み替えることによって、各種TeXエンジンなどで使いやすくしたフォントです。

源ノフォントは、明朝・ゴシック双方で豊富なウェイト数が揃っていて、和文に使えるフォントです。そして、これらは実用的な品質である上にオープンソースであるという、他にはない特徴をもった大変ありがたいフォントです。しかし、従来の日本語フォントとは仕組みが異なる部分があるため、各種TeXエンジンやいくつかのアプリケーションでは利用が難しいことがあります。

(この辺の細かいことは「原ノ味フォントとToUnicode CMap」で説明していますので、ご興味がある方はご覧ください。)

原ノ味フォントは2020年2月にTeX Liveに収録されました。ですのでTeX Live 2019 frozenやTeX Live 2020以降であればインストールされますが、それ以前の環境1では自分でダウンロードしてインストールする必要があります。本記事では原ノ味フォントのインストールとLuaLaTeXで使うまでを簡単に紹介します。TeX Liveは既にインストールされていて使えるようになっているところからスタートします。

既にインストールされているか確認

環境によっては原ノ味フォントが既にインストールされている場合もありますので確認してみましょう。TeX Liveを使用するユーザでコンソールやコマンドプロンプトなどを開き、以下のコマンドを実行してみます。

kpsewhich HaranoAjiMincho-Light.otf
kpsewhich HaranoAjiMincho-Regular.otf
kpsewhich HaranoAjiMincho-Bold.otf
kpsewhich HaranoAjiGothic-Regular.otf
kpsewhich HaranoAjiGothic-Bold.otf
kpsewhich HaranoAjiGothic-Heavy.otf
kpsewhich HaranoAjiGothic-Medium.otf

実行した結果、以下のように何も表示されなければ原ノ味フォントはインストールされていません。

$ kpsewhich HaranoAjiMincho-Light.otf

$ kpsewhich HaranoAjiMincho-Regular.otf

$ kpsewhich HaranoAjiMincho-Bold.otf

$ kpsewhich HaranoAjiGothic-Regular.otf

$ kpsewhich HaranoAjiGothic-Bold.otf

$ kpsewhich HaranoAjiGothic-Heavy.otf

$ kpsewhich HaranoAjiGothic-Medium.otf

$

以下のように何らかのパス名が出てくるようであれば原ノ味フォントはインストール済です。出てくるパス名は違っても構いません。古いフォントのままになっていないかバージョンを確認して、必要なら更新してもよいと思います。

$ kpsewhich HaranoAjiMincho-Light.otf
/usr/share/texmf-site/fonts/opentype/public/haranoaji/HaranoAjiMincho-Light.otf

$ kpsewhich HaranoAjiMincho-Regular.otf
/usr/share/texmf-site/fonts/opentype/public/haranoaji/HaranoAjiMincho-Regular.otf

$ kpsewhich HaranoAjiMincho-Bold.otf
/usr/share/texmf-site/fonts/opentype/public/haranoaji/HaranoAjiMincho-Bold.otf

$ kpsewhich HaranoAjiGothic-Regular.otf
/usr/share/texmf-site/fonts/opentype/public/haranoaji/HaranoAjiGothic-Regular.otf

$ kpsewhich HaranoAjiGothic-Bold.otf
/usr/share/texmf-site/fonts/opentype/public/haranoaji/HaranoAjiGothic-Bold.otf

$ kpsewhich HaranoAjiGothic-Heavy.otf
/usr/share/texmf-site/fonts/opentype/public/haranoaji/HaranoAjiGothic-Heavy.otf

$ kpsewhich HaranoAjiGothic-Medium.otf
/usr/share/texmf-site/fonts/opentype/public/haranoaji/HaranoAjiGothic-Medium.otf

$

バージョンを確認するには出てきたパス名を使って以下のようにします。

$ otfinfo -v /usr/share/texmf-site/fonts/opentype/public/haranoaji/HaranoAjiMincho-Light.otf
HaranoAjiMincho-Light version 20200215;ttx 4.3.0

$ otfinfo -v /usr/share/texmf-site/fonts/opentype/public/haranoaji/HaranoAjiMincho-Regular.otf
HaranoAjiMincho-Regular version 20200215;ttx 4.3.0

$ otfinfo -v /usr/share/texmf-site/fonts/opentype/public/haranoaji/HaranoAjiMincho-Bold.otf
HaranoAjiMincho-Bold version 20200215;ttx 4.3.0

$ otfinfo -v /usr/share/texmf-site/fonts/opentype/public/haranoaji/HaranoAjiGothic-Regular.otf
HaranoAjiGothic-Regular version 20200215;ttx 4.3.0

$ otfinfo -v /usr/share/texmf-site/fonts/opentype/public/haranoaji/HaranoAjiGothic-Bold.otf
HaranoAjiGothic-Bold version 20200215;ttx 4.3.0

$ otfinfo -v /usr/share/texmf-site/fonts/opentype/public/haranoaji/HaranoAjiGothic-Heavy.otf
HaranoAjiGothic-Heavy version 20200215;ttx 4.3.0

$ otfinfo -v /usr/share/texmf-site/fonts/opentype/public/haranoaji/HaranoAjiGothic-Medium.otf
HaranoAjiGothic-Medium version 20200215;ttx 4.3.0

$

この場合は 20200215 が原ノ味フォントのバージョンです。

インストール

原ノ味フォントがインストールされてなければインストールします。

ダウンロード

まずはダウンロードしましょう。

それぞれのDownloadからharanoaji.zipharanoaji-extra.zipをダウンロードすればよいです。

インストール先のディレクトリ・フォルダ

インストール先のディレクトリ・フォルダを決めて堀ります。インストールする環境で管理者権限が使えるのであれば、以下のコマンド

kpsewhich --var-value=TEXMFLOCAL

管理者権限が使えなければ、TeX Liveを使用するユーザで以下のコマンド

kpsewhich --var-value=TEXMFHOME

を実行して表示されるパス名を確かめます。例えば、

$ kpsewhich --var-value=TEXMFLOCAL
/usr/share/texmf-site

$

であれば /usr/share/texmf-site です。あるいは

$ kpsewhich --var-value=TEXMFHOME
/home/username/.local/share/texmf

$

であれば /home/username/.local/share/texmf です。

こうして得られたパス名の下にインストール先のディレクトリ・フォルダを掘ります。名前は fonts/opentype/public/haranoaji/ のようにすればよいでしょう。

つまり、さきほどの最初の例の場合は
/usr/share/texmf-site/fonts/opentype/public/haranoaji/
というディレクトリ・フォルダを掘ります。2番目の例の場合は
/home/username/.local/share/texmf/fonts/opentype/public/haranoaji/
というディレクトリ・フォルダを掘ります。

解凍してフォントファイルを置く

ダウンロードした原ノ味フォントのファイル2つ(haranoaji.zipharanoaji-extra.zip)を解凍します。フォントファイル(拡張子が .otf のファイル)が14個出てくるので、それらのファイルを先ほど掘ったインストール先のディレクトリ・フォルダにコピーします。

TeXから見つけられるようにする

インストールする環境で管理者権限が使えるのであれば、管理者権限で mktexlsr を実行しておきましょう。

インストールできたか確認

インストールできたか確認するため「既にインストールされているか確認」のときと同じコマンドを実行してみます。

kpsewhich HaranoAjiMincho-Light.otf
kpsewhich HaranoAjiMincho-Regular.otf
kpsewhich HaranoAjiMincho-Bold.otf
kpsewhich HaranoAjiGothic-Regular.otf
kpsewhich HaranoAjiGothic-Bold.otf
kpsewhich HaranoAjiGothic-Heavy.otf
kpsewhich HaranoAjiGothic-Medium.otf

置いたフォントファイルのパス名が出てくるようになれば完了です。出てこなければ何かが間違っていますので、手順を再確認してみましょう。

LuaLaTeXで原ノ味フォントを使う

簡単な例

最新のLuaTeX-ja環境2であれば、以下のようにすると原ノ味フォントを使うことができます。

\documentclass{ltjsarticle}

\usepackage[haranoaji,nfssonly]{luatexja-preset}

\begin{document}

\section{吾輩は猫である}

吾輩は猫である。名前はまだ無い。

\end{document}

少し古いLuaTeX-ja環境3の場合は上記のソースでは原ノ味フォントになりません。その場合は以下のようにするとよいでしょう。

\documentclass{ltjsarticle}

\usepackage[nfssonly]{luatexja-preset}
\ltjnewpreset{HaranoAji}{%
  mc-l = HaranoAjiMincho-Light.otf,
  mc-m = HaranoAjiMincho-Regular.otf,
  mc-bx = HaranoAjiMincho-Bold.otf,
  gt-m = HaranoAjiGothic-Regular.otf,
  gt-bx = HaranoAjiGothic-Bold.otf,
  gt-eb = HaranoAjiGothic-Heavy.otf,
  mg-m = HaranoAjiGothic-Medium.otf}
\ltjapplypreset{HaranoAji}

\begin{document}

\section{吾輩は猫である}

吾輩は猫である。名前はまだ無い。

\end{document}

マルチウェイト

原ノ味フォントはマルチウェイトなので、以下のようにして太字を使う4こともできます。これはIPAフォントやIPAexフォントのようなウェイトが一つしかないフォントでは基本的にできませんし、無理やり太字にするとみっともなくなってしまいます。原ノ味フォントなら問題ありません。

\documentclass{ltjsarticle}

\usepackage[haranoaji,deluxe,match,nfssonly]{luatexja-preset}

\begin{document}

\section{吾輩は\textbf{}である}

吾輩は\textbf{}である。名前はまだ\textbf{無い}\end{document}

少し古いLuaTeX-ja環境の場合は以下のよう5にします。

\documentclass{ltjsarticle}

\usepackage[deluxe,match,nfssonly]{luatexja-preset}
\ltjnewpreset{HaranoAji}{%
  mc-l = HaranoAjiMincho-Light.otf,
  mc-m = HaranoAjiMincho-Regular.otf,
  mc-bx = HaranoAjiMincho-Bold.otf,
  gt-m = HaranoAjiGothic-Regular.otf,
  gt-bx = HaranoAjiGothic-Bold.otf,
  gt-eb = HaranoAjiGothic-Heavy.otf,
  mg-m = HaranoAjiGothic-Medium.otf}
\ltjapplypreset{HaranoAji}

\begin{document}

\section{吾輩は\textbf{}である}

吾輩は\textbf{}である。名前はまだ\textbf{無い}\end{document}

原ノ味フォントだからできること

ここまでの内容はLuaTeXであれば原ノ味フォントである必要はなく、源ノフォントでも同様のことができます。では、何か原ノ味フォントを使うメリットはあるでしょうか。

LuaTeXが出力したPDFは、各フォントにToUnicode CMapというものが埋め込まれています。源ノフォントの場合はPDFからテキストを抽出する(コピペする)ためにはToUnicode CMapが必須です。一方、原ノ味フォントの場合はToUnicode CMapが無くてもテキスト抽出できます。そこで、pdf-rm-tucというツールを使うとToUnicode CMapを削除することができ、PDFのファイルサイズを小さくすることができます。また、条件によってPDFに埋め込まれたToUnicode CMapに起因する問題が発生することもある6のですが、その問題を解消できるかもしれません。

詳しいことは「原ノ味フォントとToUnicode CMap」をご覧ください。

おわりに

TeX Liveの環境に原ノ味フォントをインストールして、LuaTeXで使うところまでを紹介しました。

いまどきのLuaTeXの場合は普通に源ノフォントを使うことができるため、原ノ味フォントのメリットはToUnicode CMapを消せばPDFのサイズを小さくすることができる、ぐらいかなぁと思っています。XeTeXならToUnicode CMap周りでもっとメリットがありそう7ですが、現状ではXeTeXは日本語組版に向いていないのではないかと思います。

原ノ味フォントのメリットが大きいのはpTeXやupTeXでしょう。特にpTeXで源ノフォントを使うには工夫が必要なため、原ノ味フォントのメリットが最大限享受できる環境であると言えると思います。TeX LiveのpTeXやupTeXで和文フォントを扱う仕組みであるptex-fontmaps 20200217.0で原ノ味フォントのプリセットが追加されたので、TeX Live 2019をそれ以降に更新できる8なら設定が必要9ですがpTeXやupTeXでも簡単に使うことができます。さらにTeX Live 2020ではデフォルトが原ノ味フォントに変わったので、特に設定する必要もなく原ノ味フォントが使えます。

本記事では原ノ味フォントを各種TeXエンジンで使いやすいフォントとして紹介しましたが、TeX以外の環境でもメリットはあります。例えば、楽譜作成プログラムLilyPondで日本語に源ノフォントを使うと、日本語のテキスト抽出ができないPDFになってしまいますが、原ノ味フォントならばできます10

最後になりますが、こうしたフォントの違いに興味を持たれた方は「原ノ味フォントとToUnicode CMap」が参考になるのではないかと思いますので、ご覧いただければと思います。


  1. TeX Liveを更新すれば原ノ味フォントもインストールされるのですが、原ノ味フォントが収録される少し前にLaTeXの大幅な変更が入ったようなので更新せずにそのまま使う方がよい場合も多々あると思います。 

  2. LuaTeX-ja 20191117.0で原ノ味フォントがプリセットに入りluatexja-presetパッケージにharanoajiオプションが使えるようになりました。TeX Live 2019をこれ以降に更新するかTeX Live 2020以降であればこのプリセットが使えます。さらにLuaTeX-ja 20200323.0でデフォルトの日本語フォントが原ノ味フォントになったので、TeX Live 2020以降ではluatexja-presetパッケージを使わなくても原ノ味フォントになります。 

  3. TeX Live 2019初版などが該当します。 

  4. TeX Live 2020以降でも、マルチウェイトにするにはluatexja-presetパッケージにdeluxeオプションが必要です。デフォルトが原ノ味フォントになったのでharanoajiオプションがなくても原ノ味フォントになります。 

  5. mg-m(丸ゴシック)は、原ノ味フォントには存在しないため代替フォントを割り当てる必要があります。元々はluatexja-presetパッケージに原ノ味フォントのプリセットが入った当初の設定と同じHaranoAjiGothic-Heavy.otfにしていました。しかし、LuaTeX-ja 20200517.0でluatexja-presetパッケージの設定がHaranoAjiGothic-Medium.otfに変わった(ptex-fontmapsの設定に合わせた)ため、ここの設定もそれに合わせて変更しました。 

  6. ToUnicode CMapを逆変換によって生成した場合に問題が発生することがあります。XeTeXはxdvの時点でUnicodeが失われてしまうので、xdvipdfmxは逆変換でToUnicode CMapを生成するしかなく、問題が発生しやすいと思います。LuaTeXの場合は元のUnicodeを知っている状態でPDFを生成するので、必ずしも逆変換の必要がなく、問題にならないことが多いかもしれません。 

  7. XeTeXはToUnicode CMapの生成がどうしても逆変換になってしまうため、源ノフォントだと条件によってテキスト抽出に問題が発生します。原ノ味フォントならば最初からToUnicode CMapを生成せず埋め込みもしませんので、逆変換に起因するテキスト抽出の問題も発生しません。 

  8. 更新したくないなら、本記事の方法で原ノ味フォントをインストールしてから、ptex-fontmaps 20200217.0以降に入っている原ノ味フォントのマップファイルをどこかに置いて、dvipdfmxの -f オプションで必要なマップファイルを指定してやることで使えます。 

  9. 管理者権限が使えるならば $ sudo kanji-config-updmap-sys --jis2004 haranoaji などを実行すれば設定できます。 

  10. LilyPondはGhostscriptでPDFを生成していますが、この場合GhostscriptはToUnicode CMapを生成しないようです。源ノフォントはテキスト抽出にToUnicode CMap必須なので無ければできないのに対して、原ノ味フォントなら必須ではないので問題なくできる、ということです。 

trueroad
細田 真道 / Masamichi Hosoda, 楽譜作成プログラム LilyPond コミッタ, GNU 公式文書フォーマット Texinfo コミッタ, 原ノ味フォント, 第10回 日本OSS奨励賞受賞, FIT2018 FIT論文賞受賞
http://www.trueroad.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away