この記事は旧記事をより楽な手順へと更新した改訂版となります。
卒論シーズンになり,LaTeX と格闘しておられる方も多いのではないでしょうか。昨今は LaTeX をローカル環境に構築しなくても,オンラインのクラウド環境で LaTeX 環境が使えるようになっています。また,クラウド環境ならではのメリットとして,共同執筆者とのコラボレーション(複数人同時編集,レビューコメント付与,GitHub連携など)が容易という点も見逃せません。今年は,オンライン LaTeX 環境の代表格である Overleaf に関して,日本語による初めての解説書が出版されました(ステマ)。
インストールいらずのLATEX入門 ―Overleafで手軽に文書作成
- 作者:坂東 慶太
- 出版社/メーカー: 東京図書
- 発売日: 2019/05/13
- メディア: 単行本
現在,Overleaf 上では TeX Live 2018 が動いています。TeX Live 2018 には,標準で IPA(ex) フォントが搭載されていますので,和文文書作成のための準備は整っています。pLaTeX / upLaTeX を使用するには若干準備が必要ですが,XeLaTeX / LuaLaTeX ならば比較的容易に Overleaf 上で和文文書執筆を開始できます。詳細な手順は以下の記事にまとめてあります。
ただし,実際に使ってゆくにつれて,デフォルトの IPAex フォントの品質に満足できず,より高品質なフォントを,より多書体で使いたいという願望も湧いてくるでしょう。昨今,Adobe による源ノ明朝 (Source Han Serif) / 源ノ角ゴシック (Source Han Sans) フォント( ≒ Google による Noto CJK フォント)公開のおかげで,オープンソース和文フォントをめぐる環境は急速に良くなっています。Ubuntu 18.04 においても標準で Noto CJK フォントが搭載されました。Overleaf のバックエンドが最近 Ubuntu 18.04 に更新された ことで,Overleaf でも Noto CJK フォントが使えるようになりました。その他,Overleaf で使用できる和文フォントの一覧は次の記事にあります。
XeLaTeX で Noto CJK JP フォントを使うためのプロジェクト設定
まず,Menu
の文書設定において,Compiler
の設定をデフォルトの pdfLaTeX
から XeLaTeX
に変更しておきます。
文書のプリアンブル設定
そして,プリアンブルを次のようにしておけば,次の4書体を使用できます。
- ノーマル明朝体 :Noto Serif CJK Regular
- ボールド明朝体 :Noto Serif CJK Bold
- ノーマルゴシック体:Noto Sans CJK Regular
- ボールドゴシック体:Noto Sans CJK Bold
\documentclass[xelatex,ja=standard,jafont=noto]{bxjsarticle}
使い方
\mcfamily\mdseries
,\textmc{\textmd{...}}
:Noto Serif CJK Regular\mcfamily\bfseries
,\textmc{\textbf{...}}
:Noto Serif CJK Bold\sffamily\mdseries
,\textsf{\textmd{...}}
:Noto Sans CJK Regular\sffamily\bfseries
,\textsf{\textbf{...}}
:Noto Sans CJK Bold
となります。また,\ttfamily
/ \texttt
による等幅フォントも,Noto Sans CJK が用いられるようになります。ゴシック体の出力は \gtfamily
/ \textgt
でもよいですが,\sffamily
/ \textsf
だと欧文文字も連動してサンセリフ体になるので調和します。
ウェイトの変更
使用する Noto CJK フォントのウェイトを変更するには次のようにします。ここでは,例えばフォントのウェイト差をより目立たせるべく,
- ノーマル明朝体 :Noto Serif CJK Light
- ボールド明朝体 :Noto Serif CJK Black
- ノーマルゴシック体:Noto Sans CJK Light
- ボールドゴシック体:Noto Sans CJK Black
に変更しようとしたとします。その場合,プリアンブルを次のようにします。
\documentclass[xelatex,ja=standard]{bxjsarticle} \setCJKmainfont[BoldFont=NotoSerifCJKjp-Black]{NotoSerifCJKjp-Light} \setCJKsansfont[BoldFont=NotoSansCJKjp-Black]{NotoSansCJKjp-Light} \setCJKmonofont[BoldFont=NotoSansCJKjp-Black]{NotoSansCJKjp-Light}
注意点
Overleaf でのBMP外文字
Overleaf のオンラインエディタの制約により,「𠮷」のようなBMP外文字を入力できません(入力すると文字化けします)。XeTeX の \Uchar
プリミティブを使って Unicode のコードポイントで指定することで回避しましょう。
\Uchar"20BB7 野家 % 「𠮷野家」の代わり
XeTeX 上でデフォルトで欧文文字扱いされる文字
bxjsarticle から呼ばれる xeCJK パッケージのデフォルト設定では,①
,⑵
,Ⅲ
,☃
のように,「upTeX や LuaTeX-ja のデフォルトでは和文扱いされる文字が XeTeX では欧文扱いされる」文字が色々あります。そのような文字をソース中に入力すると,XeTeX エンジンはそれを欧文フォントで出力しようとし,しかし欧文フォントにそのグリフがないため文字が欠ける,という動きをしてしまいます。それを防ぐには,次のようにして個別に和文文字扱いの登録をしておきましょう。すると期待通り和文フォントのグリフが出力されます。
\xeCJKDeclareCharClass{CJK}{`①,`⑵,`Ⅲ,`☃}
zxjatype パッケージの v.0.7 以降が入っている環境であれば,このように個別に文字を登録しなくても,一括で文字種設定をする方法が用意されています。ドキュメントクラスオプションに
\documentclass[xelatex,ja=standard,jafont=noto,prefercjk]{bxjsarticle}
のように prefercjk
オプションを付けておけばOKです。zxjatype パッケージに prefercjk
が渡され,期待通りの挙動をしてくれるようになります。
サンプル文書
以上の設定を済ませ,Overleaf + XeLaTeX + Noto CJK JP フォント によって和文多書体を実現した文書の実例が以下になります。
Overleaf + upLaTeX + dvipdfmx で和文多書体するには
Overleaf 上の upLaTeX エンジンで和文多書体を実現する続編記事はこちら。