自前のサーバーでplatexに対応したsharelatex環境を構築する
日本語でまとまって書いてあるサイトが少なかったので備忘録として書いてます。
CloudLaTeXなどのサービスを使えばそれまでなのですが....
2019/11/15追記
新しく書き直しました.これからはこちらを見てください.
Overleaf(旧sharelatex)環境の構築
注意
筆者はサーバーとかUbuntuに関してはド素人なので間違っているところが多いかもしれません.
こちらもわからないことが多いので訂正やコメントしてくださるとありがたいです.
この記事でできること
- sharelatexの環境構築
- sharelatexの日本語化
- platexになんとか対応させる
この記事でできないこと
コンパイラの選択欄にplatexと表示させる
構築環境
Ubuntu 14.04LTS
TeXLive 2016
参考にさせていただいたサイト
公式のwikiとこちらのサイトの組み合わせです.
sharelatex wiki
sharelatexでjarticleをつかえるようにする
sharelatexでjarticleをつかえるようにする その2
sharelatexを入れる前の準備
https://github.com/sharelatex/sharelatex/wiki/Dependencies
を参考にして
- docker
- Redis
- MongoDB
- Node.js
- Grunt command line tools
- libkrb5-dev / krb5-devel
を入れる必要があるそうです,
TeXLiveについて
$ sudo apt-get install texlive-all
を使うと色々いじれないので,
$ wget http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
$ tar -xvf install-tl-unx.tar.gz
$ cd install-tl-*
$ sudo ./install-tl
より行ってください.どのパッケージを入れるとかの詳しい説明は色んな人のを見るとわかりやすいです.ちなみに現在どのバージョンまで対応してるのかがわからないので今回は2016を使いました.
パスを通す
$ export PATH=/usr/local/texlive/2016/bin/x86_64-linux:$PATH
2016は適宜変えてください.
latexmkを入れる
# apt-get install latexmk
sharelatexの導入
$ docker run -d \
-v ~/sharelatex_data:/var/lib/sharelatex \
-p 5000:80 \
--name=sharelatex \
sharelatex/sharelatex
$ docker run -d \
-v ~/sharelatex_data:/var/lib/sharelatex \
-p 5000:80 \
--name=sharelatex \
sharelatex/sharelatex
これでsharelatexが使えるようにはなりました.
Sharelatexの日本語化
# vi sharelatex/docker-compose.yml
処理が終わるとsharelatexの階層ができています.そこにあるdocker-compose.ymlで基本的な設定ができるようになっています.
SHARELATEX_SITE_LANGUAGE: "ja"
をdocker-compose.ymlのよきところに追加.それ以外の言語も"ja"を変更すれば使えます.
sharelatexの起動
$ docker-compose up
から起動しましょう
そしたらアクセスをしてみましょう.
http://localhost:5000/
説明に沿って設定していたのならばこれでアクセスできるはず.
adminユーザーの作成
$ docker exec sharelatex /bin/bash -c "cd /var/www/sharelatex; grunt user:create-admin --email [email protected]"
確認できたらアカウントを管理するadminユーザを作成します.
を実行するとURLが表示されるのでアクセスしてパスワードを設定します.
sharelatexの終了
docker-compose down
終了するときはこれで大丈夫です.
sharelatexの構成ファイルの追加
cd overleaf/
# grunt install
上の工程までで一応LaTeXやXeLaTeXは使えます.以下よりpLaTeXをなんとか使えるようにしていきます.
単純にsharelatexを入れただけだと中身をいじれないので構成ファイル(?)を入れます.
sharelatexでplatexを使えるようにする
clsiの編集
# vi overleaf/clsi/app/coffee/LatexRunner.coffee
- else if compiler == "xelatex"
- command = LatexRunner._xelatexCommand mainFile
+ else if compiler == "platex"
+ command = LatexRunner._platexCommand mainFile
- _xelatexCommand: (mainFile) ->
+ _platexCommand: (mainFile) ->
LatexRunner._latexmkBaseCommand.concat [
- "-xelatex", "-e", "$pdflatex='xelatex -synctex=1 -interaction=batchmode %O %S'",
+ "-pdfdvi", "-e", "$latex='platex -synctex=1 -interaction=batchmode %O %S'",
# vi overleaf/clsi/app/coffee/RequestParser.coffee
- VALID_COMPILERS: ["pdflatex", "latex", "xelatex", "lualatex"]
+ VALID_COMPILERS: ["pdflatex", "latex", "platex", "lualatex"]
簡単に言えばXeLaTeXを消してpLaTeXを使うように書き換えています.
変更内容はほぼShareLatexでjarticleを使えるようにすると同じです.
編集が終わったら保存して
$ cd sharelatex/clsi
$ grunt install
platexなどの設定をするdockerfileの作成
$ mkdir overleaf/overleaf
$ vi Dockerfile
overleafの中にoverleafのディレクトリを作成してDockerfileを作成する.
platex入れたり設定いろいろます.
中身は引用先(sharelatexでjarticleをつかえるようにする その2)と同じです.
FROM sharelatex/sharelatex:latest
# platex install
RUN apt-get update \
&& apt-get install texlive-lang-cjk -y \
&& apt-get clean \
&& apt-get autoremove
# latexmk
RUN cd /usr/local/texlive/2016/bin/x86_64-linux/ \
&& sed -ri "s/$latex = 'latex %O %S';/$latex = 'platex -shell-escape %O %S';/g" latexmk \
&& sed -ri "s/$bibtex = 'bibtex %O %B';/$bibtex = 'pbibtex %O %B';/g" latexmk \
&& sed -ri "s/$dvipdf = 'dvipdf %O %S %D';/$dvipdf = 'dvipdfmx %O -o %D %S';/g" latexmk
TeXLiveのバージョンや保存場所によって適宜変更してください.
docker-compose.ymlの編集
version: '2'
services:
sharelatex:
build: "./overleaf"
....
作ったdockerfileをbuildするように編集する(buildの行を良きところに配置してください)
再起動
$ docker-compose up -d --build
Author And Source
この問題について(自前のサーバーでplatexに対応したsharelatex環境を構築する), 我々は、より多くの情報をここで見つけました https://qiita.com/tomy_hara/items/dbbeb7d46f69188f8439著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .