이것은 thomasWeise/texlive 이미지의 주요 점검입니다. 이제 thomasweise/docker-pandoc 기반으로 thomasweise/docker-texlive-full 기반으로합니다. 이것은 더 커 졌음을 의미하지만 이제는 pandoc , TeX Live 의 최신 릴리스가 특징이며 이전보다 더 많은 Pandoc 필터가 포함되어 있습니다. 컨테이너의 원래 버전은 Tag 1.0.0을 참조하십시오.
이것은 Latex 파일을 PDF로 컴파일하기위한 여러 지원 스크립트가 포함 된 TeX Live 설치 (버전 2015.2016)가 포함 된 Docker 이미지입니다. 목표는 라텍스 설치를 설치하고 유지하는 데 필요한 노력을 감소시키면서 예측 가능하고 재현 가능한 동작으로 라텍스 문서를 컴파일하기위한 통일 된 환경을 제공하는 것입니다. 이 이미지는 중국인 청중에게 특히 적합하도록 설계되었으며 몇 가지 사전 설치된 열린 중국 글꼴이 함께 제공됩니다.
Docker는 아래 지침에 따라 설치할 수 있습니다.
curl -fsSL http://get.docker.com/ | sh 실행할 수 있습니다 명령 줄에 curl -fsSL http://get.docker.com/ | sh 및 모든 것이 자동으로 수행됩니다 ( curl 설치 한 경우 일반적으로 경우), 아래에서는이 이미지를 실행할 때 전달할 수있는 다양한 매개 변수에 대해 설명합니다. Docker를 설치 한 경우 추가 설치를 수행 할 필요가 없습니다. docker run -t -i thomasweise/texlive 또는 이와 유사한 작업을 처음으로 수행하면 이미지가 Docker Hub에서 자동으로 다운로드 및 설치됩니다.
이 이미지의 두 가지 기본 사용 사례가 있습니다.
또한 컨테이너에 데이터를 제공하는 두 가지 방법이 있습니다.
명령의 일반적인 형태는 다음과 같습니다.
docker run -v /my/path/to/document/:/doc/ -v /path/to/fonts/:/usr/share/fonts/external/ -t -i thomasweise/texlive COMMAND ARG1 ARG2...
어디
/my/path/to/document/ 컴파일하려는 라텍스 문서가 포함 된 폴더로가는 경로로 교체해야합니다. 이 폴더는 컨테이너 내부의 폴더 /doc/ 로 제공됩니다. 명령 매개 변수없이 이미지를 사용하는 경우 (아래 참조)이 /doc/ 폴더 내부에서 Bash 명령 프롬프트가 나타납니다.-v /path/to/fonts/:/usr/share/fonts/external/ parameter를 사용할 수 있습니다. 여기에서 /path/to/fonts/ 이러한 글꼴이 포함 된 폴더로가는 경로로 교체해야합니다. 추가 글꼴이 필요하지 않으면 -v /path/to/fonts/:/usr/share/fonts/external/ away를 남겨 둘 수 있습니다.COMMAND ARG1 ARG2... 명령입니다. 이러한 명령을 지정하면 컨테이너가 시작되어 명령을 실행 한 다음 종료됩니다. 그러한 명령을 제공하지 않으면 컨테이너가 시작하여 폴더 /doc/ 에서 bash 프롬프트를 제공합니다. 폴더 myDocument.tex /my/path/to/document/ xelatex.sh to / /path/to/fonts/
docker run -v /my/path/to/document/:/doc/ -v /path/to/fonts/:/usr/share/fonts/external/ -t -i thomasweise/texlive
xelatex.sh myDocument
exit
또는 당신은 또한 할 수도 있습니다
docker run -v /my/path/to/document/:/doc/ -v /path/to/fonts/:/usr/share/fonts/external/ -t -i thomasweise/texlive xelatex.sh myDocument
첫 번째 버전은 컨테이너를 시작하고 명령 프롬프트에 맡깁니다. 이제 xelatex.sh 헬퍼 스크립트를 사용하여 문서를 컴파일 한 다음 컨테이너 exit 할 수 있습니다. 두 번째 버전에서는 컨테이너에 직접 명령을 제공합니다. 컨테이너는 그것을 실행 한 다음 직접 종료합니다.
둘 다 컴파일 된 pdf 파일을 폴더 /my/path/to/document/ 에 남겨 두어야합니다. 제작에 미리 정의 된 스크립트를 사용하지 않는 경우 (아래 지점 3.1에 따라 아래 참조), 컴파일 후 chmod 777 myDocument.pdf 수행하는 것이 좋습니다. Docker 컨테이너뿐만 아니라 생성 된 문서에 실제 (호스트) 시스템 내부에 액세스 할 수 있는지 확인하십시오. 실행을위한 단일 명령을 직접 제공하는 경우, 컨테이너는 생산 된 pdf 휴식으로 찾아서 권한을 올바르게 설정하려고 시도합니다.
-v sourcepath:destpath 옵션은 선택 사항입니다. 이를 통해 로컬 시스템에서 Docker destpath 로 폴더 ( sourcepath )를 "마운트"할 수 있습니다. 이 방법을 사용하여 컨테이너 내부에서 실행되는 라텍스 컴파일러가 폴더를 /doc/ 라는 폴더에 장착하여 라텍스 문서에서 작동하도록 할 수 있습니다. 그러나 글꼴이있는 외부 폴더를 Linux Font 디렉토리 구조에 장착 할 수도 있습니다. 이를 위해 항상 로컬 글꼴 디렉토리를 /usr/share/fonts/external/ 에 넣으십시오.
외부 폴더를 장착하지 않고 이미지를 사용하거나 스누핑하려면 다음을 사용 하여이 이미지를 실행할 수 있습니다.
docker run -t -i thomasweise/texlive
실행을 위해 단일 명령을 직접 전달하기 위해 구문을 사용하기위한 또 다른 예는 USTC 논문 템플릿을 기반으로 논문을 컴파일하는 것입니다. 이러한 문서는 make 사용하여 편집 할 수 있으므로
docker run -v /path/to/my/thesis/:/doc/ -v /path/to/fonts/:/usr/share/fonts/external/ -t -i thomasweise/texlive make
이미지에는 다음 구성 요소가 있습니다.
TeX Live 버전 2015.2016ghostscript 버전 9.18당신은 그것을 만들 수 있습니다
docker build -t thomasweise/texlive .
우리는 라텍스 문서를 컴파일하는 데 사용할 수있는 스크립트 (in /bin/ ) 세트를 제공합니다.
일반적으로 라텍스 컴파일은 라텍스 컴파일러 프로그램을 호출 한 다음 Bibtex, 컴파일러를 다시 호출 한 다음 각 컴파일러 출력 형식에서 PDF로 변환 프로그램을 다시 호출하는 것을 의미합니다. 컴파일러 스크립트를 사용하면 이러한 통화를 단일 프로그램 호출에 응축하려고합니다.
latex.sh <document> 라텍스로 라텍스 <document> 컴파일합니다 (Bibtex도 마찬가지)lualatex.sh <document> Lualatex로 Latex <document> 컴파일합니다 (Bibtex도 마찬가지)pdflatex.sh <document> pdflatex로 라텍스 <document> 컴파일합니다 (Bibtex도)xelatex.sh <document> xelatex로 라텍스 <document> 컴파일합니다 (Bibtex도)mintex.sh <document> <compiler1> <compiler2> ... 위의 컴파일러 스크립트의 임의의 선택을 호출하여 가장 작은 pdf 생성 할 수 있습니다. 예를 들어 mintex.sh mydoc latex lualatex xelatex 사용하면 latex.sh , lualatex.sh 및 xelatex.sh 로 mydoc.tex 컴파일하고 가장 작은 pdf 파일을 유지합니다. 또한 PDF , PS 및 EPS 파일 작업을위한 유틸리티 스크립트도 제공합니다.
eps2pdf.sh <document> EPS 파일 <document> 를 PDF 로 변환하십시오filterPdf.sh <document> 문서 (Postscript/ PS , EPS 또는 PDF 형식)를 PDF 로 변환하고 문서 내부에 사용 된 많은 글꼴을 최종 PDF 에 포함시킵니다. 이를 통해 가능한 한 많은 컴퓨터에 올바르게 표시되어야하는 .ps 파일 <document> 에서 PDF 생성 할 수 있습니다.sudo 는 의사 sudo 명령입니다. Docker 컨테이너 내부에서는 sudo 필요하지 않습니다. 그러나, 당신이 대체 된 명령을받을 명령을 가진 Plain sudo (추가 인수없이)라고 부르는 스크립트가있는 경우,이 스크립트는 sudo 모방합니다. 아무것도하지 않음으로써.downscalePdf.sh <document> {resolution} 포함 된 모든 이미지 (지정된 해상도)를 다운 스케일링하여 PDF 문서를 더 작게 만듭니다.findNonASCIIChars.sh <document> 문서에서 비 ASCII 문자를 찾습니다. .tex 문서에서 그러한 문자는 문제를 일으킬 수 있습니다. 이 이미지는 2007 년 6 월 29 일 GNU General Public License 버전 3에 따라 라이센스가 있습니다. 라이센스는 이미지의 구축 방식에 적용되며 이미지 내부의 소프트웨어 구성 요소는 해당 저작권 보유자가 선택한 각 라이센스 아래에 있습니다.
궁금한 점이나 제안이 있으시면 중국 안후이에있는 Hefei University의 응용 최적화 연구소의 Thomas Weise에 문의하십시오.