前回の記事では,
- Overleaf で
- XeLaTeX エンジンを使い
- Overleaf に用意されている高品質なフリー和文フォント Noto CJK JP を使う
ことで,和文多書体を実現する方法を示しました。
今回は,Overleaf 上で upLaTeX エンジンを使って多書体を実現してみましょう。その準備として,まずは Overleaf 上で (u)pLaTeX エンジンを使う準備が必要です。エンジンとして LaTeX
を指定し,latexmkrc
フォントを用意して,upLaTeX + dvipdfmx を呼び出すよう指定しておきましょう。詳細は以前の記事で述べたとおりです。
otf パッケージによって導入できる7個の「スロット」
(u)pLaTeX で手軽に多書体を実現する方法としては,以前の記事でも紹介した [deluxe] オプション付き otf パッケージ + pxchfon パッケージ という組み合わせがお手軽でお勧めです。
これにより,和文フォントに対して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 でライセンスされたフリーフォントであり,気軽に使うことができます。
\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書体を同時使用した文書の実例が以下になります。
参考文献
ポイントはlatexmkrcです🙃
— 某ZR(ざんねん🙃) (@zr_tex8r) November 15, 2019
Overleafとしては「latexmkrcはどんどん活用しましょう」というスタンスだから、これもアリじゃないかな、と思ってる。
— 某ZR(ざんねん🙃) (@zr_tex8r) November 15, 2019
↓TEXINPUTS設定の例はあるhttps://t.co/htE6ecS51e#TeX https://t.co/XwgBqisc9K