EnablingShellEscape (rev. 1.3)

EDRSPIHCRSSRSS

Enabling Shell Escape

개요

  • TeX 컴파일 시 shell-escaping을 가능하게 해주는 기능이 있다. 이를 통해서 외부 프로그램을 실행하고 그 결과를 이용하여 조판하여야 할 때가 있다. 예를 들면,
    • lualatex이나 pdflatex에서 pstricks 그림을 포함할 때 pst2pdf를 쓰는 경우
    • minted와 같이 python을 실행해야 하는 경우
    • GnuplotTex과 같이 gnuplot을 실행해야 하는 경우
  • 그러나 보안 상의 이유로 TeX Live는 이 기능을 제한적으로 안전한 프로그램만을 허용하고 기본적으로는 동작하지 않도록 해두었다. 허용된 프로그램 중 대표적인 것이 epstopdf이다.

shell escape 활성화

  • TeX Live의 기본 설정을 shell escape 항상 허용으로 만들 수 있으나, 이를 사용하지 않을 것을 강력히 권장
  • 예컨대 foo.tex에 대하여 shell escape가 필요하다면, 명령행에서 다음과 같은 컴파일 옵션을 준다.
    # pdflatex --shell-escape foo
    
  • 참고로 MiKTeX
    # pdflatex --enable-write18 foo
    

TeXworks

  • 명령행에 익숙하지 않고 에디터 내에서 컴파일 명령을 부르는 것이 편하다면, "XeLaTeX (shell)"이라는 이름으로 현재의 "XeLaTeX" 조판 명령 설정을 하나 복사하여 여기에 --shell-escape를 붙여서 저장한 다음 shell-escape가 필요할 때 이 조판 명령을 쓰도록 한다.

arara

  • arara 지시자를 다음과 같이 하면 shell-escape가 가능하다.
    % arara: xelatex: { shell: yes }
    


TeX Live 설정 변경

이 항목은 일반사용자에게 권장하지 않는 것이며 참고사항입니다.
  1. shell-escape를 항상 허용. (사용하지 말 것)
    shell_escape = t
    
  2. shell-escape 허용 프로그램의 목록 추가 (기본적으로 허용되는 프로그램 목록을 유지할 것)
    shell_escape_commands = bibtex,bibtex8,extractbb,kpsewhich,makeindex,mpost,repstopdf,<safe program>