자체 서버에서 platex를 지원하는 sharelatex 환경 구축

일본어로 정리해 써 있는 사이트가 적었으므로 비망록으로서 쓰고 있습니다.
CloudLaTeX 등의 서비스를 사용하면 그때까지입니다.

2019/11/15 추가



새로 고쳐 썼습니다. 앞으로는 여기를보십시오.
Overleaf (이전 sharelatex) 환경 구축

주의



필자는 서버라든지 우분투에 관해서는 도 아마추어이므로 잘못되어 있는 곳이 많을지도 모릅니다.
이쪽도 모르는 것이 많기 때문에 정정이나 코멘트 해 주시면 고맙습니다.

이 기사에서 할 수 있는 일


  • sharelatex 환경 구축
  • sharelatex 일본어
  • platex에 어떻게든 대응시킨다

  • 이 기사에서 할 수없는 일



    컴파일러 선택란에 platex로 표시

    구축 환경



    우분투 14.04LTS
    TeXLive 2016

    참고로 한 사이트



    공식 wiki와 이 사이트의 조합입니다.
    sharelatex wiki
    sharelatex에서 jarticle을 사용할 수있게 만들기
    sharelatex에서 jarticle을 잡을 수 있도록 그 2

    sharelatex를 넣기 전에 준비



    htps : // 기주 b. 코 m / 멋쟁이 x / 멋쟁이 x / うぃき /
    참고로
    - 도커
    - 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
    

    이제 sharelatex를 사용할 수 있습니다.

    Sharelatex 일본어


    # vi sharelatex/docker-compose.yml
    

    처리가 끝나면 sharelatex의 계층이 만들어집니다. 거기에 있는 docker-compose.yml로 기본적인 설정을 할 수 있게 되어 있습니다.

    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 )와 같습니다.

    Dockerfile
    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 편집



    docker-compose.yml
    version: '2'
    
    services:
        sharelatex:
            build: "./overleaf"
    ....
    

    만든 dockerfile을 build하도록 편집한다 (build의 행을 좋은 곳에 배치해 주세요)

    재부팅


    $ docker-compose up -d --build
    

    여기까지 일단 latex를 선택하면 platex를 사용하여 컴파일할 수 있게 됩니다.

    가능하다면 이런 느낌

    좋은 웹페이지 즐겨찾기