TeX Alchemist Online

TeX のこと,フォントのこと,Mac のこと

Overleaf + upLaTeX + Noto CJK JP フォント + 源柔ゴシック による和文多書体の実現

f:id:doraTeX:20191116120546p:plain

前回の記事では,

  • Overleaf で
  • XeLaTeX エンジンを使い
  • Overleaf に用意されている高品質なフリー和文フォント Noto CJK JP を使う

ことで,和文多書体を実現する方法を示しました。

doratex.hatenablog.jp

今回は,Overleaf 上で upLaTeX エンジンを使って多書体を実現してみましょう。その準備として,まずは Overleaf 上で (u)pLaTeX エンジンを使う準備が必要です。エンジンとして LaTeX を指定し,latexmkrc フォントを用意して,upLaTeX + dvipdfmx を呼び出すよう指定しておきましょう。詳細は以前の記事で述べたとおりです。

doratex.hatenablog.jp

otf パッケージによって導入できる7個の「スロット」

(u)pLaTeX で手軽に多書体を実現する方法としては,以前の記事でも紹介した [deluxe] オプション付き otf パッケージ + pxchfon パッケージ という組み合わせがお手軽でお勧めです。

doratex.hatenablog.jp

これにより,和文フォントに対して7個のスロットが用意されることになります。この各々に実際の何らかの和文フォントを割り当てて呼び出す,という考え方になります。

  • \mcfamily\ltseries:明朝体・細
  • \mcfamily\mdseries:明朝体・中
  • \mcfamily\bfseries:明朝体・太
  • \gtfamily\mdseries:ゴシック体・中
  • \gtfamily\bfseries:ゴシック体・太
  • \gtfamily\ebseries:ゴシック体・極太
  • \mgfamily:丸ゴシック体

pxchfon パッケージのプリセット

Overleaf で用意されている Noto CJK JP フォントを使うためには,pxchfon パッケージに noto-otc プリセットを指定するとよいでしょう。このプリセットを指定すると,上記7スロットには次のように各 Noto CJK フォントがセットされます。

  • \mcfamily\ltseries:Noto Serif CJK Light
  • \mcfamily\mdseries:Noto Serif CJK Regular
  • \mcfamily\bfseries:Noto Serif CJK Bold
  • \gtfamily\mdseries:Noto Sans CJK Regular
  • \gtfamily\bfseries:Noto Sans CJK Bold
  • \gtfamily\ebseries:Noto Sans CJK Black
  • \mgfamily:Noto Sans CJK Medium

Noto フォントが見えるように latexmkrc を設定

Overleaf のバックエンドでは,Ubuntu 18.04 が動いています。Ubuntu では,Noto フォントなどのOS標準フォントは /usr/share/fonts 以下(すなわち TeX ディストリビューションの管轄外の場所)にインストールされています。XeLaTeX や LuaLaTeX で fontspec を使った場合は,このディレクトリ内のOS標準フォントが LaTeX エンジンからそのまま「見える」ようになっていますが,upLaTeX + dvipdfmx の組み合わせではこのディレクトリはサーチされません。そのため,upLaTeX エンジンで単に

\usepackage[noto-otc]{pxchfon}

と指定しただけでは,「フォントが見つからない」という旨のエラーが出て失敗してしまいます。

そこで,upLaTeX + dvipdfmx を起動させるために用意した latexmkrc ファイル内に,次のように環境変数の指定を記述することで,/usr/share/fonts 以下のフォントが upLaTeX + dvipdfmx からも「見える」ようになります。

$ENV{OPENTYPEFONTS} = '/usr/share/fonts//:';
$ENV{TTFONTS} = '/usr/share/fonts//:';

なお,最後の //: のところでスラッシュが二重になっている点を見落とさないよう注意してください。これは「以下のディレクトリを再帰的に検索する」という意味になります。

丸ゴシック体も使うには

noto-otc プリセットでは,\mgfamily に対して Noto Sans CJK Medium すなわちゴシック体の中くらいのウェイトのフォントが割り当てられています。以前の記事でも述べたように,この7個のスロットはあくまで「スロット」に過ぎず,\mgfamily だからといって実際に「丸ゴシック」の形状をしたフォントを割り当てなければいけないわけではありません。ですからこれは別に問題ではないのですが,それでも「\mgfamily で本物の丸ゴシック体を出したいのだ」という向きもあるでしょう。

しかし,macOS や Windows のバンドルフォントなど商用フォントを Overleaf のサーバ上にアップロードして使用するというのは,ライセンス上問題があります。そこで,Overleaf ではオープンソースフォントを上手く活用するとよいでしょう。近年は,Adobe による源ノ明朝 (Source Han Serif) / 源ノ角ゴシック (Source Han Sans) フォント( ≒ Google による Noto CJK フォント)公開のおかげで,オープンソース和文フォントをめぐる環境は急速に良くなっています。ここでは,源ノ角ゴシックから派生して作られた丸ゴシック体フォントである げんじゅうゴシック を使ってみましょう。このフォントは SIL Open Font License 1.1 でライセンスされたフリーフォントであり,気軽に使うことができます。

jikasei.me

\mgfamily で源柔ゴシックX を使うための設定

ここからダウンロードできるフォントバンドルのうち,ここでは GenJyuuGothicX-Monospace-Medium.ttf を使うことにしてみましょう。それを Overleaf のプロジェクト内にアップロードしておきます。

そして

\setmarugothicfont{GenJyuuGothicX-Monospace-Medium.ttf}  

とすれば,pxchfon の機能により,\mgfamily源柔ゴシックX Medium(等幅版)が割り当てられます。

サンプル文書

以上の設定を済ませ,Overleaf + upLaTeX + otfパッケージ + pxchfon + Noto CJK JP フォント + 源柔ゴシックX によって和文フォント7書体を同時使用した文書の実例が以下になります。

www.overleaf.com

参考文献