Docker를 사용하여 LaTeX 환경에서 기사 작성

4847 단어 대학생 명사LaTeX
이 글은 도쿄학예대학 초산연구실 어드벤트 칼렌다 2020의 19일째 글이다.
내가 속한 연구실에는 매월 1일 세미나 자료(글)가 제출한 연구진척 보고서가 있다.
나는 Docker로 LaTex 환경에서 이 세미나의 자료를 만들었다.
LaTeX 환경에서 Docker를 사용한 기사 제작에 대해 설명합니다.

원래 TeX가 뭐야?


TeX는 레이아웃 소프트웨어로 MacOS, Windows, Linux 등 OS 환경이 다르더라도 똑같은 동작을 한다.
또 TeX 파일은 텍스트 파일로 GiitHub 등을 통해 버전 관리·재활용이 용이하다.

그럼 LaTex는 뭐예요?


LaTeX는 Leslie Lamport의 기능이 강화된 TeX입니다.
LaTeX 기능은 문장의 논리적 구조와 시각적 레이아웃을 분리하여 고려하여 문서의 재사용성을 높일 수 있도록 지원한다.
또한 장절, 단락, 도형, 표, 공식의 번호, 디렉터리, 인덱스와 인용 문헌을 자동으로 처리할 수 있다.

TeX의 동작 원리


TeX 파일에서 PDF 파일을 생성하기 전의 동작은 그림과 같습니다.

TeX에서는 조판 결과를 dvi 파일의 중간 파일에 쓰고 dvi 파일을 dvi 드라이버라고 불리는 소프트웨어에 넘겨 PDF를 만든다.

Docker를 사용하여 LaTeX의 기사 작성


라텍스의 환경 구축이지만 인산염에 라텍스를 넣으면 여분의 편집기 등이 있을 수 있다.
따라서 Docker를 사용하여 LaTex 컴파일과 PDF 생성을 수행합니다.
이 Docker를 사용한 컴파일링 및 PDF 생성 프로세스는 다음 그림과 같습니다.

TeX 파일의 제작 및 편집은 호스트에서 수행되며 Docker 컨테이너 내에서 컴파일되고 PDF가 생성됩니다.

Docker 이미지 가져오기


Docker 이미지 사용paperist/docker-alpine-texlive-ja.
알피니트 기반 이미지로 LaTeX로서의 인상은 경량(1Gb 정도)이다.docker pull 명령을 사용하여 이미지를 가져옵니다.
docker pull paperist/alpine-texlive-ja

문서 파일(.tex) 준비 및 컨테이너 제작


먼저 문장 서류를 준비해라.
# ファイルの作成
touch doc.tex
내용이 잠시 알맞다.
doc.tex
\documentclass[a4j, twocolumn]{jsarticle}

\begin{document}
  Hello, World!
\end{document}
방금 가져온 이미지 시작 용기 이름 doc.tex 을 기반으로 현재 디렉터리를 Docker 용기 내 latex-complile 와 공유합니다.
$ docker run --rm --name latex-compile -it -d -v ${PWD}:/workdir paperist/alpine-texlive-ja

컨테이너 내에서 PDF 작성 및 컴파일


Docker 컨테이너 내에서 명령을 실행할 때 사용/workdir.
컨테이너 안에 LaTeX가 있는 환경docker exec은 명령을 사용할 수 있다.
$ docker container exec -it latex-compile bin/ash -c "uplatex doc.tex && dvipdfmx doc.dvi"
컴파일링이 정상적으로 통과되면 카보네이트에서 PDF 파일을 확인할 수 있습니다.

Makefile에서 컴파일러 기술하기


방금 Docker 명령이 너무 길었습니다. uplatex 임무로 기술하는 것이 좋습니다.
또한 Make 작업에서 Makefile라는 Docker 용기가 없으면 컨테이너를 시작하고 latex-compile 명령을 실행합니다.
Makefile
.PHONY: compile
compile:
    docker ps -a | grep latex-compile || docker run --rm --name latex-compile -it -d -v ${PWD}:/workdir paperist/alpine-texlive-ja
    docker container exec -it latex-compile bin/ash -c "uplatex doc.tex && dvipdfmx doc.dvi
이렇게 하면 다음 명령으로 편집된 문서 파일(doc.tex)의 PDF를 생성할 수 있습니다.
make compile
또한 본 보도의 해설 내용을 포함하는 세미나 자료의 템플릿은 아래 창고에서 공개한다🙇‍♂️

참고 자료

  • paperist/alpine-texlive-ja, https://hub.docker.com/r/paperist/alpine-texlive-ja/
  • Paperist/docker-alpine-texlive-ja, https://github.com/Paperist/docker-alpine-texlive-ja
  • 좋은 웹페이지 즐겨찾기