この記事は,過去の記事「Overleaf で日本語を使用する方法」を,新サービス Overleaf v2 仕様にアップデートしたものです。
Overleaf(旧writeLaTeX) は,オンラインで使える LaTeX 原稿執筆環境として非常に便利です。自分のマシン内に TeX 環境を構築するのは一手間二手間かかりますし,インストールする権限がない場合や,出先の端末を使う場合などにも,環境整備の必要なくブラウザのみですぐに LaTeX 原稿を執筆できるのは好都合でしょう。
また,Google Document のような複数人による共同編集機能もあります。複数人で環境を揃えて同時共同執筆を行うことができるのは,クラウドならではのメリットでしょう。
2017年,Overleaf と同様のオンラインLaTeXエディタである ShareLaTeX というサービスが,Overleaf に買収されることが発表されました。そして,それを受けて,昨日,両者の長所を“いいとこ取り”した新サービス Overleaf v2 が公開されました。現時点ではベータ版サービスとなっていますが,旧バージョンと比べて動作も快適,見た目も綺麗になっており,SyncTeX にも対応しているなど,とてもいい感じになっていますので,早速 v2 に移行してしまってもよさそうです。
【目次】
Overleaf の用途
Overleaf は,
- 自分の LaTeX 原稿を,自分で環境を構築することなくオンラインで作成する。
- 複数の著者で原稿を共同編集する。
- ソースとコンパイル結果のセットを閲覧専用で展示する。
といった使い方ができます。自分が愛用しているのは3番の機能(link sharing と呼ばれています)です。「このソースをコンパイルするとこんな結果になりますよ」というのを見やすく示すことができます。
Overleaf v2 による TikZ 図版の展示例
自分はこの機能を,TikZ 図版のソース例を示すのによく用いています。
- 素因数分解の可視化
- ヒルベルト曲線
- シェルピンスキー・ギャスケット
- コッホ雪片
- ケクレン(TikZ を用いた化学構造式描画パッケージである chemfig パッケージ を使用)
Overleaf v2 で日本語を使用する
Overleaf v2 は,現時点ではバックグラウンドで TeX Live 2018 が動いています。ということは,(u)pLaTeX や dvipdfmx も入っているわけで,日本語を用いた和文文書も作れるはずです。 ただし,Overleaf は,v2 になっても依然としてデフォルトでは (u)pLaTeX エンジンを使う設定が用意されておりませんので,和文文書を作成するには多少設定が必要です。
公式のヘルプに Overleaf で pTeX を使う方法 の簡単な解説があります。ここではより詳細な手順を解説いたします。
手順1:新規文書を作成して文書設定を行う
Overleaf v2 にログインして,New Project
ボタンを押し,Blank Project
を選び,適当なプロジェクト名で新規プロジェクトを作成します。
そして,右上の Menu ボタンをクリックして設定画面を出し,Compiler
の設定をデフォルトの pdfLaTeX
から LaTeX
に変更します。
手順2:latexmkrc を作成する
左上の New File
ボタンを押し,latexmkrc
というファイル名の新規ファイル(注意:拡張子 .tex
は不要ですので除去してください)を作成します。
そして,内容として,次の内容を記載します。
pLaTeX + dvipdfmx を使用する場合
$latex = 'platex'; $bibtex = 'pbibtex'; $dvipdf = 'dvipdfmx %O -o %D %S'; $makeindex = 'mendex %O -o %D %S'; $pdf_mode = 3; $ENV{TZ} = 'Asia/Tokyo'; $ENV{OPENTYPEFONTS} = '/usr/share/fonts//:'; $ENV{TTFONTS} = '/usr/share/fonts//:';
upLaTeX + dvipdfmx を使用する場合
$latex = 'uplatex'; $bibtex = 'upbibtex'; $dvipdf = 'dvipdfmx %O -o %D %S'; $makeindex = 'mendex -U %O -o %D %S'; $pdf_mode = 3; $ENV{TZ} = 'Asia/Tokyo'; $ENV{OPENTYPEFONTS} = '/usr/share/fonts//:'; $ENV{TTFONTS} = '/usr/share/fonts//:';
こんな風になっているはずです。
これで和文文書作成設定は完了です*1。後は普通に 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の場合)を押せばコンパイルされてプレビューが更新されます。
さらに,Auto Compile を On に設定しておけば,少し編集するたびに直ちにプレビュー画面が更新されて便利です。
もう少し実践的なサンプルとして,jlreq.cls
を用いた縦書き組版のサンプルも示しておきます。青空文庫のデータを用いた宮沢賢治『セロ弾きのゴーシュ』です。
和文フォントについて
TeX Live のデフォルトでは,和文フォントとして IPAex フォントが使用されますが,Overleaf では,より高品質なオープンソース和文フォントである Noto CJK JP フォント が使用できます。また,様々なウェイトの Noto CJK JP フォントを同時併用した多書体文書も作成できます。詳細は次の記事をご覧ください。
活用例:日本語の入った 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
をアップロードします。
手順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 環境のみを切り出した,日本語入りの複数ページ図版を作成することができます。
- サンプル:東大化学の設問数推移グラフ (upLaTeX + dvipdfmx + TikZ + preview パッケージ)
補足
なお,\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 2018なので,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 クラスと日本語を共存させることも容易です。
- サンプル:2015年東大化学第3問に登場した図 (LuaTeX-ja + standalone クラス + TikZ + chemfig)
ただし,LuaTeX-ja はコンパイル速度が遅いため,Overleaf 上で実行すると,タイムアウト制限1分である無料版アカウント(有料アカウントでは4分まで緩和されます)では compile timeout
エラーを引き起こしやすいという欠点があります。compile timeout
エラーでコンパイルできない場合は,次の XeLaTeX を用いる案も検討するとよいでしょう。
別の方法2:XeLaTeX で日本語を使用する【最もお手軽】
まず,Menu
の文書設定において,Compiler
の設定をデフォルトの pdfLaTeX
から XeLaTeX
に変更しておきます。
そして,プリアンブルを
\documentclass[xelatex,ja=standard,jafont=noto]{bxjsarticle}
とすれば,XeLaTeX を用いて日本語文書を作成することができます。縦書きができないなど,(u)pLaTeX や LuaTeX-ja に比べれば日本語組版品質は若干劣りますが,カジュアルな用途であれば XeLaTeX でもそれなりに使える組版品質が得られることでしょう。また,LuaTeX-ja に比べコンパイルも高速で, compile timeout
エラーに出会う確率も低いです。
なお,jafont=noto
は,高品質なオープンソース和文フォントである Noto CJK JP フォント を使用するするためのオプションです。詳細は次の記事をご覧ください。
- サンプル:東大化学の設問数推移グラフ (XeLaTeX + bxjsarticle クラス + preview パッケージ)
*1:以前の記事ではこの後IPAexフォントの埋め込み設定のステップがありましたが,TeX Live 2016 以降のdvipdfmxはデフォルトでIPAexフォントを埋め込みますので,現在ではその設定は必要なくなりました。