オンラインLaTeX環境の Overleaf で日本語文書を作成する

2020/05/16

LaTeX Overleaf 研究

t f B! P L
Overleaf は WebベースでLaTeXが使える環境です。

日本語の原稿を扱う場合は、Cloud LaTeXを使う方法もありますが、Overleafでも日本語を扱うことができます。ここではOverleafの日本語文書に対するヘルプに掲載されている方法で日本語を扱う方法を説明します。

日本語を扱うためのLaTeXのパッケージはpLaTeXや XeLaTeX等さまざまなものがあります。パッケージによっては日本語縦書き文書にも対応しています。OverleafはTeXLiveを内部では使用しているようですので、これらの日本語対応のパッケージも使用することができます。

pdfLaTeXでCJKutf8パッケージを使う

pdfLaTeXを使いたい場合は CJKutf8 パッケージを使用することで日本語が処理できます。

CJKなので、中国語(Chinese)、日本語(Japanese)、韓国語(Korean)が扱えます。日本語に関しては \begin{CJK*}{UTF8}{min}\end{CJK*} で囲った部分が日本語として扱われ、それ以外のブロックは英語版として処理されます。minを gothに変えるとゴシック体になります。他のフォントを使うのは簡単ではないようです。

一応日本語は使えますが、フォントはきれいではないし、CJK環境で囲むのも面倒ですね。

XeLaTeXでxeCJKパッケージを使う

XeLaXeX は OpenType と TrueTypeのフォントを使うことができます。また xeCJK パッケージが CJK のサポートをします。

CJKutf8の時と違って、CJK*環境で囲まなくても日本語が使えます。フォントに関してはOverleafはIPAフォントがデフォルトで使えますが、使いたいフォントをOverleafのプロジェクトフォルダにアップロードすれば他のフォントも使えます。

\setCJKmainfont{IPAMincho} メインフォントの指定
\setCJKsansfont{IPAGothic} sans family フォントを使う部分でのフォントの指定
\setCJKmonofont{IPAGothic} monospace family フォントを使う部分でのフォント指定(verbatimなど)

pLaTeX(upLaTeX)を使う

日本のジャーナルやカンファレンスでは日本語特化のLaTeX(pLaTeXなど)が使われることが多いです。ドキュメントクラスも jsarticleやjsbookを基にしたクラスが使われます。pLaTeXは縦書きもサポートしています。

OverleafでpLaTeXを使うには Overleafのメニューからの設定だけでは使用できず、設定ファイルを作っておく必要があります。コンパイラはLaTeXを選びます。

latexmkrc ファイルを作ってOverleafプロジェクトに追加し、以下を設定します。
$latex = 'platex';
$bibtex = 'pbibtex';
$dvipdf = 'dvipdfmx %O -o %D %S';
$makeindex = 'mendex %O -o %D %S';

upLaTeXを使う場合は上記 platex を uplatex に、pbibtex を upbibtex にかえます。

サンプル(pLaTeX)
サンプル(upLaTeX)

LuaLaTeX で luatex-ja パッケージを使う

luatex-jaパッケージは pLaTeXをLuaLaTeX用にポーティングしたものです。LuaLaTeXのスクリプトが使え、OpenType及びTrueTypeのフォントが使えます。
日本語を使うにはドキュメントクラスを ltjbook、ltjarticle、ltjreportなどを使います。それ以外のクラスでは、\usepackage{luatexja}とすることで日本語を扱うこともできます。

また、他のフォントを使いたい場合は、luatexja-fontspecパッケージも使えます。
\usepackage[match]{luatexja-fontspec}
\setmainjfont{TakaoMincho}
\setsansjfont{TakaoGothic}
\setmonojfont{Komatuna}

LuaLaTeXは非常に高機能で様々な設定ができます。

サンプル

まとめ

オンラインで使える非常に便利なLaTeX環境であるOverleafで日本語を使う方法を紹介しました。

学会等指定がある場合はpLaTeXを使うのがよいのでしょうけど、フォントの切り替えや他の日本語非対応クラスと合わせて使う場合はLuaLaTeXがよさそうな感じがします。LuaTeX-jaとして活発な活動がされているようです。ただLuaLaTeXはコンパイル時間が他より長いですね。

最近は jsarticle を基にした BXjscls もあるようです。LaTeXで日本語を扱う方法がたくさんのやり方があるのでそのうち整理したいと思っています。



QooQ