Apple siliconのMacでローカルのOverleaf環境を構築する
はじめに
Apple siliconのMacでローカルのOverleaf環境を構築する。
Overleafは代表的なオンラインLaTeXエディタであるが、ローカルに環境構築することもできる。
本記事では、前提として必要なDockerの環境構築と、Overleafの環境構築、日本語に対応させる方法を説明する。
Docker環境構築
Dockerの公式ページから、Apple siliconのMac用のDeocer Desktop for Macをインストールする。
Dockerアプリを起動して、Dockerのアカウントでログインする。
Overleaf環境構築
ターミナルで以下の手順でコマンドを実行する。
- Dockerデーモンが起動していることを確認する。
以下のコマンドがエラーなしで実行されれば良い。
docker ps
エラーが出た場合は、Dockerデーモンが起動していないので、Dockアプリを起動する。
- Dockerのデフォルトプラットフォームを設定する。
Dockerコマンドが実行される際のデフォルトプラットフォームをlinux/arm64/v8
に設定する
export DOCKER_DEFAULT_PLATFORM=linux/arm64/v8
- ローカルのOverleafのファイルを配置するディレクトリを作成して、移動する。
ローカルのOverleaf用のディレクトリを作成した方が、失敗した時に削除しやすい。
ディレクトリ名は何でも良い。
mkdir overleaf_local
cd overleaf_local
- Overleafの2つのgithubレポジトリをcloneする。
git clone https://github.com/overleaf/toolkit.git ./overleaf-toolkit
git clone https://github.com/overleaf/overleaf; cd overleaf
- Dockerイメージをビルドする。
cd server-ce
make build-base
make build-community
- 初期設定とタグ付けをする。
cd ../../overleaf-toolkit
bin/init
docker tag sharelatex/sharelatex sharelatex/sharelatex:$(cat config/version)
- データを格納するディレクトリを作成する。
mkdir data/redis data/nginx data/sharelatex data/mongo data/git-bridge
- Dockerコンテナを起動する。
bin/up
起動するとログが表示される。
-
ブラウザから
http://localhost/launchpad
にアクセスし、Admin accountを作成する。 -
ターミナルに表示されるログを止める。
bin/up
の実行後、ログが表示され続けるので、Ctrl + C
で停止する。
Overleafの起動と停止
- 起動
以下のコマンドで、既に設定したが停止しているOverleafサービスを起動する。
ローカルのOverleafのファイルを配置するディレクトリによって、~/overleaf_local
を変更する。
~/overleaf_local/overleaf-toolkit/bin/start
ブラウザからhttp://localhost
にアクセスすれば、ローカルのOverleafを使える。
- 停止
~/overleaf_local/overleaf-toolkit/bin/stop
日本語に対応させる方法
日本語の文章を作成するために、LuaLaTeXや、pLaTeX、upLaTeXを使用する場合は追加で設定する必要がある。
公式の解説や日本語の解説が詳しく説明している。
- コンテナのTeX Live環境を更新する。
コンテナの起動中に、コンテナの中に入る。
docker exec -it sharelatex bash
コンテナ内で、TeX Liveを更新する。
tlmgr update --self
tlmgr install scheme-full
exit
- pLaTeXやupLaTeXを使うために、シンボリックリンクを貼る。
コンテナの内部に入る。
overleaf-toolkit/bin/shell
platexやuplatexのシンボリックリンクを貼る。
ln -s /usr/local/texlive/2023/bin/aarch64-linux/uplatex /usr/local/bin/uplatex
ln -s /usr/local/texlive/2023/bin/aarch64-linux/upbibtex /usr/local/bin/upbibtex
ln -s /usr/local/texlive/2023/bin/aarch64-linux/platex /usr/local/bin/platex
ln -s /usr/local/texlive/2023/bin/aarch64-linux/pbibtex /usr/local/bin/pbibtex
ln -s /usr/local/texlive/2023/bin/aarch64-linux/mendex /usr/local/bin/mendex
2023
やaarch64-linux
は環境によって異なるので、確認して適宜変更する。
# texliveのversionを確認する
ls /usr/local/texlive/
# プラットフォームを確認する
ls /usr/local/texlive/2023/bin/
- 変更を保存する。
コンテナに加えた変更を新しいイメージとしてコミットする。
docker commit sharelatex sharelatex/sharelatex:[tag-name]
[tag-name]
は任意の文字列を設定する。公式の解説ではwith-texlive-full
としている。
overleaf-toolkit/config
の配下にdocker-compose.override.yml
を作成し、以下を記述する。
---
version: '2.2'
services:
sharelatex:
image: sharelatex/sharelatex:[tag-name]
version
はoverleaf-toolkit/lib/docker-compose.base.yml
などのtoolkitの記述と同じにする必要がある。デフォルトではversion
を2.2
とすれば良い。
- コンテナを再起動して変更を反映させる。
bin/stop && bin/docker-compose rm -f sharelatex && bin/up
参考
- https://github.com/overleaf/toolkit/blob/master/doc/quick-start-guide.md#create-the-first-admin-account
- https://github.com/overleaf/toolkit/blob/master/doc/ce-upgrading-texlive.md
- https://github.com/overleaf/toolkit/issues/127
- https://qiita.com/hrn/items/eb7114933dfb4155e106
- https://qiita.com/lyulu/items/e9c8b3da6cbc731f169d
Discussion