== 장점과 단점 == === 장점 === 1. MiKTeX 특유의 MPM 시스템 덕분에 작은 크기의 이미지만 설치하고도 이후의 작업에 지장이 없다. 패키지나 유틸리티가 필요해지면 스스로 다운로드받는다. 1. 현재 MiKTeX (21.X)은 갱신이 빠르고 상당히 안정적이다. TeX Live와 큰 차이가 없다. 1. texmf를 추가하여 운영할 수 있기 때문에 사용자 패키지를 활용하는 것이 가능하다. (KTUG 사설저장소 패키지들을 미리 설치해둔 후에 등록하여 쓸 수 있다.) 1. Linux MiKTeX은 실행 속도에서도 만족스럽다. 1. 호스트 운영체제가 무엇이든 상관없이 동일하게 동작한다. 1. docker에서 돌아간다는 것이 장점이다. ( Microsoft Windows는 docker를 돌리기 위해서 WSL2를 동작시킬 것이고, WSL2는 Hyper-V를 동작시킬 것이다. 이경우 VMware, VirualPC등이 실행되지 않거나, 실행되더라도 자체 VM를 사용하지 못하고 Hyper-V에서 실행되므로 실행 속도등에서 손실이 많다고 알려져 있다. ) === 단점 === 1. tlmgr이 없는 것은 단점이다. 그 결과 KTUG 사설저장소를 통합적으로 운용하지 못한다. 1. MPM 다운로드가 서버 사정으로 동작하지 않을 가능성을 배제할 수 없다. 1. docker에서 돌아간다는 것이 단점이다. == 설치 == * miktex docker image {{{ docker pull miktex/miktex }}} * miktex/miktex이 ARM 아키텍처를 제공하지 않는 듯한데, M1 Mac에서 Rosetta2로 어찌어찌 되는지 어떤지 해보지 않아서 모릅니다. 시도해보신 분은 추가바람. * build container {{{ docker run -ti \ --name \ -v miktex:/miktex/.miktex \ -v :/miktex/work \ miktex/miktex }}} * ``````은 기억하기 쉬운 container 이름으로. (이하 ```mymiktex```으로 예를 들 것임.) * ``````는 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= 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 }}} == Docker 운영 팁 == * Windows는 Pro면 Hyper-V, Home이면 wsl2로 사용하는 것을 추천함. === Docker daemon 실행 방법 === * Windows, Mac OS에서는 [https://www.docker.com/products/docker-desktop|Docker Desktop]을 이용하는 것이 제일 쉽다. * OpenSUSE의 경우, 다음과 같이. {{{ sudo systemctl start docker }}} * Ubuntu에서는 {{{ sudo service docker start }}} === 사용자에게 docker 그룹 권한 주기 (Linux) === {{{ sudo usermod -G docker -a }}}