이공계열에서 학술적인 문서를 작성할 때 LaTeX를 이용하는 경우가 많습니다.

LaTeX는 TeX 포맷을 좀 더 이용하기 쉽게 이런저런 매크로가 추가된 형식인데요, TeX 자체를 컴퓨터 프로그래밍의 대가인 도널드 크누스가 만들었다 보니 이 형식으로 글을 쓰고 결과물을 얻어내려면, 번거롭지만 직접 빌드(컴파일)과정을 거쳐야 합니다.

하지만 프로그래머에게 익숙한 흐름인 코드 작성->빌드 과정이 있다는건 곧 빌드 자동화도 가능하다는거죠! 그래서 저는 최근에 Github가 제공하기 시작한 Github Action을 이용해 제가 TeX 문서를 편집하고 커밋한 후 Github 저장소에 갱신될 때마다 그 결과가 PDF 문서 형태로 얻어질 수 있도록 자동 빌드 시스템을 구축해봤습니다.

구축 방법은 다음과 같습니다.

1. Github에 빈 레포지토리 만들기

기존 레포여도 상관은 없습니다.

2. Github Action에서 Workflow 생성

리포 탭 중에 Actions가 있습니다. 저기로 들어간 다음 Workflow를 생성해주면 됩니다.

처음 생성하면 아래와 같은 내용의 yaml 파일이 될겁니다.

3. Marketplace에서 LaTex Compilation 확장 추가

해당 확장을 클릭하면 Installation 단락에 복붙할 수 있는 코드가 제공되어 있습니다.

복붙 후 탭(개행) 수준을 맞춰주세요. 맞추지 않으면 빨간줄이 생길거에요. 대략 아래와 같이 내용이 추가됩니다.

여기서 root_file, working_directory, compiler, args는 본인의 설정에 맞게 정해주면 됩니다.

해당 확장이 기본적으로 TeX 빌드에 필요한 패키지들은 알아서 설치해두는 것 같아서 extra_system_packages에 추가적인 패키지를 적어두지 않았는데요, 혹시 빌드 시 특정 패키지가 설치되어 있지 않다는 로그가 나오면 저거 주석을 해제하고 패키지명을 적어주면 됩니다.

(로컬에서 sudo apt-get install tex-package-asdf 이런 식으로 설치한 패키지라면, extra_system_packages: tex-package-asdf 이렇게)

4. TeX 파일 경로 등 설정하기

위에 있던 root_file, working_directory가 파일 경로를 잡아줍니다.

root_file은 가장 먼저 참조할 TeX 파일입니다. 여기선 main.tex 파일인걸로 예를 듭니다.

만약 리포지토리 최상위 경로에 root_file이 있다면 working_directory는 주석 처리해도 되지만, 최상위/src 폴더 안에 있다면 working_directory는 ./src 로 해주는게 좋습니다. 그러면 root_file의 경로는 ./src/main.tex가 아니라 main.tex가 되구요.

5. Marketplace에서 Upload Artifact 확장 추가

해당 확장을 TeX 빌드 단계 다음에 추가해주면 됩니다. 대략 아래처럼요.

이 때 path를 잘 적어줘야하는데요, 예시에선 working_directory를 ./src로 잡았기 때문에 결과물도 src 폴더 안에 생성됩니다. 따라서 path를 main.pdf가 아닌 ./src/main.pdf로 잡아줘야 합니다.

만약 여러 파일을 얻고 싶다면 해당 path에 파일명 말고 경로명을 적어주면 그 안에 있는 것들을 zip으로 압축되어 제공해줍니다.

이렇게 환경을 구축하면 TeX에도 버전관리 뿐만 아니라 자동 빌드도 적용할 수 있습니다. 구축한 저장소의 링크를 아래에 공유합니다. 참고하셔도 좋고 fork 하셔도 좋습니다.

https://github.com/sappho192/latex-exercise

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

This site uses Akismet to reduce spam. Learn how your comment data is processed.