MiKTeXDockerized (rev. 1.2)

EDRSPIHCRSSRSS

MiKTeXDockerized

설치

  • miktex docker image
    docker pull miktex/miktex
    
    • miktex/miktex이 ARM 아키텍처를 제공하지 않는 듯한데, M1 Mac에서 Rosetta2로 어찌어찌 되는지 어떤지 해보지 않아서 모릅니다. 시도해보신 분은 추가바람.
  • build container
    docker run -ti \
      --name <unique_name> \
      -v miktex:/miktex/.miktex \
      -v <working_dir>:/miktex/work \
      miktex/miktex
    
    • <unique_name>은 기억하기 쉬운 container 이름으로. (이하 mymiktex으로 예를 들 것임.)
    • <working_dir>는 host측 작업 디렉토리. Windows라면 C:/MyTeXWork과 같은 방법으로 지정한다.
  • starting/stopping container
    docker start mymiktex
    docker stop mymiktex
    
  • executing container
    docker exec -ti mymiktex /bin/bash
    
    • /bin/bash를 실행하면 docker container 시스템 내부의 bash가 열린다. 이 시스템은 Debian Linux이다.
    • /bin/bash 대신 컴파일 명령을 줄 수 있다. ex) docker exec -ti mymiktex xelatex --shell-escape --synctex=1 mytex.tex

MiKTeX 관리

  • container를 /bin/bash entry point로 열어서 작업한다.
  • update
    mpm --admin --update
    mpm --update
    
    • 둘 다 하는 것이 좋음
  • local repository (texmf) 등록
    initexmf --register-root=<path_to>
    initexmf --admin -u
    initexmf -u
    
    • path_to는 container 내부에서 인식하는 경로를 적어야 한다.
  • 폰트 관련
    ln -s /miktex/.miktex/texmfs/install/fonts/truetype \
       /usr/local/share/fonts/truetype
    ln -s /miktex/.miktex/texmfs/install/fonts/opentype \
       /usr/local/share/fonts/opentype
    
    • 위의 두 명령을 (docker 내부에서) 실행해두는 것이 좋다.
    • Noto Sans/Serif CJK나 나눔글꼴 같은 것은 apt 명령으로 실행한다. apt install fonts-noto-cjk
      • apt로 설치하거나 /usr/share/fonts 등에 설치한 폰트를 적용하게 하려면 폰트 이름으로 (파일 이름이 아니고) 불러야 한다.
    • MiKTeX이 제공하는 (CTAN 등재) 폰트들을 자동 다운로드/설치되게 하려면 폰트의 파일 이름으로 fontspec 명령들을 사용해야 한다. 예) \setmainfont{texgyretermes-regular.otf}
    • 그렇지 않으면 mpm 명령으로 직접 인스톨해야 할 수 있다.
      mpm --install tex-gyre
      
  • 유틸리티 관련
    • arara를 사용하려면 default-jre 설치. apt install default-jre.
    • spix 사용하려면, 다음 명령을 실행할 것.
      ln -s `which python3` /usr/local/bin/python
      
    • pygmentize를 사용하려면, 다음 명령을 실행할 것.
      apt install python3-pip
      pip3 install pygments