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 からアクセスできるようになります。
使ってみる
アクセスしたらまずログインフォームが出てくるので、まずアカウントを作る必要があります。
初回は http://localhost/launchpad でAdminユーザーの作成を行います。
ローカルに保存されるだけの情報なのでテキトーに hoge@example.com
と password
とかで大丈夫だと思います。
あとはログインして普通のOverleafと同様にProjectを作って使えばOKです。
日本語対応する
Webサービスとして提供されているOverleafとはバックエンドで動いているLaTeXの環境が若干異なるようです。
とくに日本語はそのままだと全く使えないのでフォントなどを入れてあげる必要があります。
方法はいろいろ考えられます
- Dockerコンテナに日本語パッケージを入れる
- Dockerイメージに日本語パッケージを入れる(おすすめ)
- 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.rc
の OVERLEAF_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
参考
Discussion