TeX Alchemist Online

TeX を使って化学のお仕事をしています。

Overleaf v2 で日本語を使用する方法

この記事は,過去の記事「Overleaf で日本語を使用する方法」を,新サービス Overleaf v2 仕様にアップデートしたものです。

Overleaf(旧writeLaTeX) は,オンラインで使える LaTeX 原稿執筆環境として非常に便利です。自分のマシン内に TeX 環境を構築するのは一手間二手間かかりますし,インストールする権限がない場合や,出先の端末を使う場合などにも,環境整備の必要なくブラウザのみですぐに LaTeX 原稿を執筆できるのは好都合でしょう。

また,Google Document のような複数人による共同編集機能もあります。複数人で環境を揃えて同時共同執筆を行うことができるのは,クラウドならではのメリットでしょう。

2017年,Overleaf と同様のオンラインLaTeXエディタである ShareLaTeX というサービスが,Overleaf に買収されることが発表されました。そして,それを受けて,昨日,両者の長所を“いいとこ取り”した新サービス Overleaf v2 が公開されました。現時点ではベータ版サービスとなっていますが,旧バージョンと比べて動作も快適,見た目も綺麗になっており,SyncTeX にも対応しているなど,とてもいい感じになっていますので,早速 v2 に移行してしまってもよさそうです。

Overleaf の用途

Overleaf は,

  1. 自分の LaTeX 原稿を,自分で環境を構築することなくオンラインで作成する。
  2. 複数の著者で原稿を共同編集する。
  3. ソースとコンパイル結果のセットを閲覧専用で展示する。

といった使い方ができます。自分が愛用しているのは3番の機能(link sharing と呼ばれています)です。「このソースをコンパイルするとこんな結果になりますよ」というのを見やすく示すことができます。

Overleaf v2 による TikZ 図版の展示例

自分はこの機能を,TikZ 図版のソース例を示すのによく用いています。

Overleaf v2 で日本語を使用する

Overleaf v2 は,現時点ではバックグラウンドで TeX Live 2017 が動いています*1。ということは,(u)pLaTeX や dvipdfmx も入っているわけで,日本語を用いた和文文書も作れるはずです。 ただし,Overleaf は,v2 になっても依然としてデフォルトでは (u)pLaTeX エンジンを使う設定が用意されておりませんので,和文文書を作成するには多少設定が必要です。

公式のヘルプに Overleaf で pTeX を使う方法 の解説があるのですが,この方法では pLaTeX + dvipdf (≒ dvips + gs)という変換経路になります。日本で現在主流であろう,(u)pLaTeX + dvipdfmx の経路で作成するには,次のように設定する必要があります。

手順1:新規文書を作成して文書設定を行う

Overleaf v2 にログインして,New Project ボタンを押し,Blank Project を選び,適当なプロジェクト名で新規プロジェクトを作成します。

f:id:doraTeX:20180503180353p:plain f:id:doraTeX:20180503180406p:plain f:id:doraTeX:20180503180445p:plain

そして,右上の Menu ボタンをクリックして設定画面を出し,Compiler の設定をデフォルトの pdfLaTeX から LaTeX に変更します。

f:id:doraTeX:20180503180422p:plain f:id:doraTeX:20180503180513p:plain

手順2:latexmkrc を作成する

左上の New File ボタンを押し,latexmkrc というファイル名の新規ファイルを作成します。

f:id:doraTeX:20180503180525p:plain f:id:doraTeX:20180503181426p:plain

そして,内容として,次の内容を記載します。

pLaTeX + dvipdfmx を使用する場合

$latex = 'platex';
$bibtex = 'pbibtex';
$dvipdf = 'dvipdfmx %O -o %D %S';
$makeindex = 'mendex %O -o %D %S';
$pdf_mode = 3; 

upLaTeX + dvipdfmx を使用する場合

$latex = 'uplatex';
$bibtex = 'upbibtex';
$dvipdf = 'dvipdfmx %O -o %D %S';
$makeindex = 'mendex -U %O -o %D %S';
$pdf_mode = 3; 

こんな風になっているはずです。

f:id:doraTeX:20180503180546p:plain

これで和文文書作成設定は完了です*2。後は普通に main.tex の内容として (u)pLaTeX 文書を作成すればOKです。試しに,main.tex の中に次のソースを打ち込んでみましょう。

\documentclass[dvipdfmx,autodetect-engine]{jsarticle}
\usepackage{tikz}

\title{サンプル文書}
\author{著者}

\begin{document}
\maketitle

\begin{abstract}
日本語を用いた文書を作成します。    
\end{abstract}

\section{はじめに}

TikZ図版もテストします。

\begin{center}
\begin{tikzpicture}
\node[draw,fill=red!20!white,circle] (S) at (0,0) {はじめ};
\node[draw,fill=blue!20!white,circle] (G) at (2,2) {おわり};
\draw[very thick,->] (S) -- (G);
\end{tikzpicture}
\end{center}

\end{document}

ソースを打ち込んで Recompile ボタンをクリック,または Command + Return(Macの場合)/ Control + Enter(Windowsの場合)を押せばコンパイルされてプレビューが更新されます。

f:id:doraTeX:20180503182217p:plain

さらに,Auto Compile を On に設定しておけば,少し編集するたびに直ちにプレビュー画面が更新されて便利です。

f:id:doraTeX:20180504172645p:plain

もう少し実践的なサンプルとして,jlreq.cls を用いた縦書き組版のサンプルも示しておきます。青空文庫のデータを用いた宮沢賢治『セロ弾きのゴーシュ』です。

活用例:日本語の入った TikZ 図版を作成する

Overleaf を用いて TikZ 図版を作成する場合,LaTeX エンジンとしてデフォルトの pdfLaTeX を用い,文書クラスとして standalone クラスを用いるのが簡単です。これを用いると,余白がない図版単独の形のPDFが作成できます。先程の ケクレンの構造式 はそのように作成しています。

しかし,この方法の場合,

といった欠点があります。そこで,Overleaf で (u)pLaTeX + dvipdfmx + TikZ + preview パッケージ という組合せを用いて,「日本語入り・複数ページ対応」の TikZ 図版を作成してみましょう。

手順1:preview パッケージの dvipdfmx 用ドライバを準備

まず,上記の設定を行い,Overleaf 上で (u)pLaTeX + dvipdfmx の和文文書を作成します。

preview パッケージは,デフォルトでは dvipdfmx 用のドライバが用意されていませんので,ZRさんの記事 からリンクが張られている,prdvipdfmx.def を入手します。

そして,Overleaf 画面左上の Upload ボタンを押し,次のダイアログで prdvipdfmx.def をアップロードします。

f:id:doraTeX:20180503180727p:plain f:id:doraTeX:20180503180735p:plain

手順2:preview パッケージの使用設定

プリアンブルを次のように設定します。

\documentclass[dvipdfmx,autodetect-engine]{jsarticle}
\pagestyle{empty}
\usepackage[dvipdfmx,nosetpagesize]{graphicx}
\usepackage{tikz}
\usepackage[dvipdfmx,active,tightpage]{preview}
\PreviewEnvironment{tikzpicture} % tikzpicture 環境を切り出す
\setlength\PreviewBorder{10pt} % 余白設定

これで,tikzpicture 環境のみを切り出した,日本語入りの複数ページ図版を作成することができます。

補足

なお,\usepackage[dvipdfmx,nosetpagesize]{graphicx} の部分は,次の理由により必要となります。

  • \usepackage{tikz} は pgf.sty → pgfcore.sty → graphicx.sty という流れで graphicx パッケージを呼び出す。
  • 現在の graphicx パッケージはデフォルトで setpagesize オプションが有効となっており,jsarticle が設定した \stockwidth, \stockheight をもとにページサイズを設定する \special を発行して dvipdfmx に渡してしまう。
  • その結果 preview パッケージが設定する用紙サイズの設定が効かなくなってしまう。
  • よって graphicx パッケージが勝手に用紙サイズを設定しないよう nosetpagesize オプションを与えておかなければならない。

別の方法1:LuaTeX-ja を利用する

Overleaf v2 に入っているのは TeX Live 2017 なので,LuaTeX-ja も利用することができます。LuaTeX-ja を使えば,latexmkrc を使用することなく,より簡単に和文文書を作成することができます。

手順1:新規文書を作成して文書設定を行う

Overleaf v2 にログインして,New Project ボタンを押し,Blank Project を選び,適当なプロジェクト名で新規プロジェクトを作成します。

そして,右上の Menu ボタンをクリックして設定画面を出し,Compiler の設定をデフォルトの pdfLaTeX から LuaLaTeX に変更します。

手順2: LuaTeX-ja を用いて和文フォント埋め込んだ和文文書を作成するための基本設定を行う

プリアンブルを次のように設定すると,IPAex フォントを埋め込んだ和文文書を LuaTeX-ja で作成することができます。

\documentclass{ltjsarticle}
\usepackage[ipaex]{luatexja-preset}

実践的サンプルとして,やはり jlreq.cls を用いた縦書き組版の例も示しておきます。

また,LuaTeX-ja であれば,standalone クラスと日本語を共存させることも容易です。

ただし,LuaTeX-ja はコンパイル速度が遅いため,Overleaf 上で実行すると,しばしば compile timeout エラーを引き起こしやすいという欠点があります。compile timeout エラーでコンパイルできない場合は,次の XeLaTeX を用いる案も検討するとよいでしょう。

別の方法2:XeLaTeX で日本語を使用する

文書の設定において,Compiler の設定をデフォルトの pdfLaTeX から XeLaTeX に変更し,プリアンブルを

\documentclass[xelatex,ja=standard]{bxjsarticle}

とすれば,XeLaTeX を用いて日本語文書を作成することができます。

*1:旧Overleafから移行したプロジェクトは TeX Live 2016 でコンパイルされ,新規作成したプロジェクトは TeX Live 2017 でコンパイルされるようです。

*2:以前の記事ではこの後IPAexフォントの埋め込み設定のステップがありましたが,TeX Live 2016 以降のdvipdfmxはデフォルトでIPAexフォントを埋め込みますので,現在ではその設定は必要なくなりました。