Это крупный капитальный ремонт изображения thomasWeise/texlive . В настоящее время основан на thomasweise/docker-pandoc , который, в свою очередь, основан на thomasweise/docker-texlive-full . Это означает, что он стал больше, но теперь он включает в себя новейший релиз pandoc , TeX Live , и включает в себя больше фильтров Pandoc, чем раньше. Для исходной версии контейнера см. Tag 1.0.0.
Это изображение Docker, содержащее инсталляцию TeX Live (версия 2015.2016) с несколькими сценариями поддержки для облегчения компиляции латексных файлов в PDF. Цель состоит в том, чтобы предоставить унифицированную среду для составления латексных документов с предсказуемым и воспроизводимым поведением, при этом уменьшая усилия, необходимые для установки и поддержания установки латекса. Это изображение предназначено для того, чтобы быть особенно подходящим для китайской аудитории и поставляется с несколькими предварительно установленными открытыми китайскими шрифтами.
Docker может быть установлен в соответствии с указаниями ниже:
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/ внутри контейнера. Если вы используете изображение без параметров команды (см. Ниже), вы получите командную строку Bash в этом /doc/ Polder.-v /path/to/fonts/:/usr/share/fonts/external/ parameter. Здесь /path/to/fonts/ должен быть заменен путем к папке, содержащей эти шрифты. Если вам не нужны дополнительные шрифты, вы можете оставить все -v /path/to/fonts/:/usr/share/fonts/external/ выездные.COMMAND ARG1 ARG2... в вышеуказанной командной строке означает. Если вы указали такую команду, контейнер запустится, выполнит команду, а затем выключите. Если вы не предоставите такую команду, контейнер запустится и предоставит вам подсказку в папке /doc/ . Для составления некоторого документа с именем myDocument.tex в папке /my/path/to/document/ with xelatex.sh и использования дополнительных шрифтов в папке /path/to/fonts/ , вы бы введете что -то вроде команды ниже в обычную терминал (Linux), терминал Docker QuickStart (Mac OS), или терминал Docker Toolbox (Windows):
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 не являются обязательными. Они позволяют вам «установить» папку ( sourcepath ) из вашей локальной системы в контейнер Docker, где она становится доступной в качестве пути destpath . Мы можем использовать этот метод, чтобы позволить латексному компилятору, работающему внутри контейнера, работать над документами латекса, установив свою папку в папку с именем /doc/ , например. Но мы также можем установить внешнюю папку с шрифтами в структуру каталога шрифтов Linux. Для этого, пожалуйста, всегда установите свой местный каталог шрифтов в /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 Version 2015.2016ghostscript версия 9.18Вы можете построить его с
docker build -t thomasweise/texlive .
Мы предоставляем набор сценариев (в /bin/ ), которые можно использовать для составления латексных документов:
Обычно компиляция латекса означает вызвать программу компилятора латекса, затем Bibtex, затем компилятор снова, а затем некоторую программу преобразования из соответствующего формата вывода компилятора в PDF. С помощью сценариев компилятора мы стараемся конденсировать эти вызовы в одну программу.
latex.sh <document> Скомпилируйте латекс <document> с LaTex (также BIBTEX)lualatex.sh <document> Скомпилируйте латекс <document> с Lualatex (также Bibtex)pdflatex.sh <document> Скомпилируйте латекс <document> с PDFLATEX (также BIBTEX)xelatex.sh <document> Скомпилируйте латекс <document> с Xelatex (также Bibtex)mintex.sh <document> <compiler1> <compiler2> ... позволяет вам вызвать произвольный выбор приведенных выше сценариев компилятора для создания наименьшего pdf . Например, выполнение mintex.sh mydoc latex lualatex xelatex будет компилировать mydoc.tex с latex.sh , lualatex.sh и xelatex.sh и сохраняет самый маленький результирующий файл pdf . Мы также предоставляем некоторые утилиты для работы с файлами PDF , PS и EPS .
eps2pdf.sh <document> преобразовать файл EPS <document> в PDFfilterPdf.sh <document> Преобразовать документ (либо в PostScript/ PS , EPS или PDF -формат) в PDF и включите столько же шрифтов, используемых внутри документа в конечный PDF . Это позволяет создавать PDF из файла .ps <document> , который должен правильно отображаться на как можно большего количества компьютеров.sudo это команда псевдо- sudo : внутри контейнера Docker нам не нужно sudo . Однако, если у вас есть сценарий или что-то, что вызывает простой sudo (без дополнительных аргументов) просто с командой для подготовки, этот сценарий подражает sudo . Ничего не делая.downscalePdf.sh <document> {resolution} делает PDF -документ меньше, путем понижения все включенные изображения (в указанное разрешение).findNonASCIIChars.sh <document> Находит неасции в документе. В документах .tex такие персонажи могут представлять проблемы. Это изображение лицензируется в соответствии с общедоступной лицензией GNU, 29 июня 2007 года, которую вы можете найти в файле лицензии. MD. Лицензия применяется к тому, как создается изображение, в то время как программные компоненты внутри изображения находятся под соответствующими лицензиями, выбранными их соответствующими держателями авторских прав.
Если у вас есть какие -либо вопросы или предложения, пожалуйста, свяжитесь с Томасом Вайсом из Института прикладной оптимизации Университета Хейфей в Хефэй, Аньхой, Китай.