#title LaTeX 작업 흐름 자동화 #keywords arara,bibtex,latexmk,makeindex,workflow,자동화,texify,latex == 개요 == * 일반적으로 `tex` 파일을 인쇄에 적합한 최종 출력물로 만들기 위해서는 상호 참조, 참고문헌, 찾아보기 생성 등을 위해 다음과 같이 여러 번의 명령을 실행하여야 한다. {{{#!bash # pdflatex foo # makeindex foo # bibtex foo # pdflatex foo}}} * 이러한 과정을 자동화하기 위해 개발된 방법이 몇 가지 있는데, 이들은 대체로 편리한 텍 작업 환경을 지원하는 편집기나 통합 개별 환경 내부에서 사용된다. == LaTeX Workflow 자동화 도구 == === LaTeXMk === * Perl로 작성된 도구로 대부분의 workflow가 자동화된다.{{{#!bash # latexmk foo}}} * (pdf)latex 실행 루트는 다음과 같이 지정한다. * pdflatex (default) {{{#!sh # latexmk -pdf foo}}} (`-pdf` 옵션은 따로 지정하지 않아도 된다.) * latex => dvi {{{#!sh # latexmk -dvi foo}}} * latex => ps {{{#!sh # latexmk -ps foo}}} * latex+dvips+ps2pdf {{{#!sh # latexmk -pdfps foo }}} * latex+dvipdfmx {{{#!sh # latexmk -pdfdvi foo }}} * 실행 엔진은 다음과 같이 지정한다. * xelatex {{{#!bash # latexmk -xelatex foo}}} * lualatex {{{#!sh # latexmk -lualatex foo}}} * 옵션을 추가할 수 있다.{{{#!bash # latexmk -xelatex -latexoption="-synctex=1" foo}}} * 참고문헌 목록 생성을 위한 백엔드인 bibtex과 biber는 스크립트가 자동으로 선택한다. 자동으로 선택이 되지 않을 때는 latexmkrc 파일을 이용하여 백엔드 프로그램을 강제할 수 있다. * komkindex로 makeindex를 대체하려면 작업 폴더에 latexmkrc 파일을 만들고 다음 한 줄을 써넣는다.{{{#!bash $makeindex = 'komkindex -s kotex';}}} * 사용자 설정 가능한 RC 파일은 {{{$HOME/.latexmkrc}}} 또는 작업 폴더의 {{{latexmkrc}}}이다. * 그밖에 continuous preview, clean aux files 등등 여러 가지 기능을 가지고 있다. * TeXworks에 xelatexmk 추가 (Windows라면 프로그램 위치를 {{{C:\usr\texlive\2014\bin\win32\latexmk.exe}}}로 한다.) * attachment:xelatexmkadd.png * 설명서{{{#!bash # texdoc latexmk}}} === [arara] === * 비교적 최근에 개발된 Java로 개발된 LaTeX workflow 자동화 도구 * [arara] 지시자를 파일에 다음과 같이 써넣고, {{{ % arara: pdflatex: {synctex: yes} % arara: makeindex: {style: foo} % arara: pdflatex: {synctex: yes}}}} * arara로 이 파일을 컴파일하면, 위의 지시자에 지정된 순서대로 실행된다. * 설명서{{{#!bash # texdoc arara}}} === SpiX === * shell script와 LaTeX 문서의 통합 * [https://framagit.org/spalax/spix | 홈페이지] * [http://www.ktug.org/xe/index.php?mid=KTUG_open_board&document_srl=245475 |간략한 소개] * 장점: shell script를 그대로 써넣는 것에 가깝기 때문에 원하는 거의 모든 동작을 TeX 문서 자체에 지시할 수 있음. * 단점: Windows에서 안 된다. {{{ %$ xelatex $texname }}} === LLMK === * Light LaTeX Make * [https://github.com/wtsnjp/llmk | github 저장소] * `texdoc llmk` * TOML이라는 간단한 마크업 언어를 이용하여 Workflow를 지시한다. {{{ % +++ % latex = "xelatex" % +++ }}} === texify === * MiKTeX에 포함된 LaTeX workflow 자동화 도구