MiKTeXDockerized (rev. 1.2)
설치 ¶
- 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
- 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
- 유틸리티 관련