📝

Overleafをローカル環境で起動する

に公開

OverleafはWebブラウザ上でLaTeXの文書を作成・共同編集できるとても便利なLaTeXエディタです。

OverleafはWebサービスとして提供されていますが、オープンソースのエディタであるため自分のPC上で立ち上げることもできます。

ローカルで起動する場合は共同編集はできませんが、自分ひとりで簡易的に使いたい場合は十分な機能を持っています。

環境構築手順

0. 前提

環境構築には次のものが必要です

  • git
  • docker

1. リポジトリをcloneします

overleaf/toolkit をcloneします。

git clone https://github.com/overleaf/toolkit.git ./overleaf-toolkit

cd ./overleaf-toolkit

2. bin/initを実行し、configファイルを作ります

bin/init

3. bin/up を実行するとdocker composeが動いてOverleafが起動します

bin/up

http://localhost からアクセスできるようになります。

使ってみる

アクセスしたらまずログインフォームが出てくるので、まずアカウントを作る必要があります。

login

初回は http://localhost/launchpad でAdminユーザーの作成を行います。

sign-up

ローカルに保存されるだけの情報なのでテキトーに hoge@example.compassword とかで大丈夫だと思います。

あとはログインして普通のOverleafと同様にProjectを作って使えばOKです。

project

日本語対応する

Webサービスとして提供されているOverleafとはバックエンドで動いているLaTeXの環境が若干異なるようです。

とくに日本語はそのままだと全く使えないのでフォントなどを入れてあげる必要があります。

方法はいろいろ考えられます

  1. Dockerコンテナに日本語パッケージを入れる
  2. Dockerイメージに日本語パッケージを入れる(おすすめ)
  3. DockerHub上の日本語対応イメージを指定する

方法1. Dockerコンテナに日本語パッケージを入れる

手っ取り早い対応としては、起動中のoverleafのDockerコンテナに入って日本語文書用のファイルをダウンロードする方法です。

# Dockerコンテナに入る
bin/shell
# docker exec -it sharelatex bash でも可

# パッケージマネージャを更新
tlmgr update --self

# LuaLaTeX系の日本語パッケージ等をインストール
tlmgr install \
  collection-luatex \
  collection-langjapanese \
  xkeyval

Recompileすると、すぐ反映されてエラーなく日本語の文書が作れるようになっています。

なお上記はコンパイラをLuaLaTeXにしていることを前提としているので、Overleafの左上の「Menu」ボタンから設定を開いてコンパイラをLuaLaTeXに変更する必要があります。

ただし、この方法はコンテナを削除してまた立ち上げたらリセットされてしまいますので一時的な対応となります。

方法2. Dockerイメージに日本語パッケージを入れる(おすすめ)

./config/docker-compose.override.yml というファイルを作って変更したい要素を書けばコンテナ環境を変更できますのでこれを利用してカスタマイズしたDockerイメージを使うことができます。

まず、 ./config/ にDockerfileと docker-compose.override.ymlを作成します。

./config
├── Dockerfile
├── docker-compose.override.yml
...

./config/Dockerfile は公式のイメージに日本語パッケージを追加するように書いておきます

FROM sharelatex/sharelatex:latest

# コンテナのパッケージマネージャを更新
RUN tlmgr update --self

# LuaLaTeX系の日本語パッケージ等をインストール
RUN tlmgr install \
    collection-luatex \
    collection-langjapanese \
    xkeyval

./config/docker-compose.override.yml には作成したDockerfileを使ってビルドするように書いておきます。

services:
  sharelatex:
    build:
      context: ..
      dockerfile: config/Dockerfile
    # ビルドしたイメージに名前をつける(必須)
    image: local/my-sharelatex:latest

image:の部分に書くイメージ名は適当で大丈夫そうですが、省略してしまうと bin/up したときにoverrideがうまく働かなかったので項目自体は必須のようです。

これで bin/up で立ち上げると日本語対応できているはずです。

方法3. DockerHub上の日本語対応イメージを指定する

もっと楽な、自分でDockerfileを書かなくていい方法としては、日本語対応済みのOverleafのDockerImageをDockerHubから拾ってくる方法です。

config/overleaf.rcOVERLEAF_IMAGE_NAMEという変数を書き換えることで参照先を変更できます。(デフォルトは公式のsharelatex/sharelatex です)

例えば tuetenk0pp/sharelatex-full公式イメージ sharelatex/sharelatex に TeX Liveのfullを足し合わせたイメージとなっている ので、これを参照すれば日本語対応できます(なおTeX Liveのfullはファイルサイズが大きく、上記Imageは約14GBあるのでご注意を)。

# Uncomment the OVERLEAF_IMAGE_NAME variable to use a user-defined image.
OVERLEAF_IMAGE_NAME=tuetenk0pp/sharelatex-full

参考

https://ja.overleaf.com/learn/latex/Japanese

GitHubで編集を提案

Discussion