Esta é uma grande revisão da imagem thomasWeise/texlive . Agora é baseado em thomasweise/docker-pandoc , que, por sua vez, é baseado em thomasweise/docker-texlive-full . Isso significa que ficou maior, mas agora apresenta o mais recente lançamento do pandoc , TeX Live , e inclui mais filtros Pandoc do que antes. Para a versão original do contêiner, consulte a tag 1.0.0.
Esta é uma imagem do Docker que contém uma instalação TeX Live (versão 2015.2016) com vários scripts de suporte para facilitar a compilação de arquivos de látex no PDF. O objetivo é fornecer um ambiente unificado para a compilação de documentos de látex com comportamento previsível e reproduzível, diminuindo o esforço necessário para instalar e manter a instalação de látex. Esta imagem foi projetada para ser especialmente adequada para um público chinês e vem com várias fontes chinesas abertas pré-instaladas.
O Docker pode ser instalado seguindo as diretrizes abaixo:
curl -fsSL http://get.docker.com/ | sh na sua linha de comando e tudo é feito automaticamente (se você tiver curl instalado, o que normalmente é o caso), Abaixo, discutimos os vários parâmetros que você pode passar para esta imagem ao executá -la. Se você instalou o Docker, não precisa executar nenhuma instalação adicional: na primeira vez em que docker run -t -i thomasweise/texlive ou algo assim (veja abaixo), a imagem será baixada automaticamente e instalada no Docker Hub.
Existem dois casos de uso básico desta imagem:
Além disso, existem duas maneiras de fornecer dados ao contêiner:
A forma comum do comando é a seguinte:
docker run -v /my/path/to/document/:/doc/ -v /path/to/fonts/:/usr/share/fonts/external/ -t -i thomasweise/texlive COMMAND ARG1 ARG2...
Onde
/my/path/to/document/ deve ser substituído pelo caminho para a pasta que contém o documento LATEX que você deseja compilar. Esta pasta será disponibilizada como pasta /doc/ dentro do contêiner. Se você usar a imagem sem parâmetros de comando (veja abaixo), você obterá um prompt de comando bash dentro desta pasta /doc/ .-v /path/to/fonts/:/usr/share/fonts/external/ parâmetro. Aqui, /path/to/fonts/ deve ser substituído por um caminho para uma pasta que contém essas fontes. Se você não precisar de fontes adicionais, poderá deixar o inteiro -v /path/to/fonts/:/usr/share/fonts/external/ fora.COMMAND ARG1 ARG2... na linha de comando acima significa. Se você especificar esse comando, o contêiner iniciará, executará o comando e depois desligará. Se você não fornecer esse comando, o contêiner iniciará e fornecerá um prompt de bash na pasta /doc/ . Para compilar algum documento chamado myDocument.tex na pasta /my/path/to/document/ with xelatex.sh e usando fontes adicionais na pasta /path/to/fonts/ , você digitaria algo como o comando abaixo em um terminal normal (Linux), o terminal do Docker Quickstart (Mac OS), ou o Terminal 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
Como alternativa, você também pode fazer
docker run -v /my/path/to/document/:/doc/ -v /path/to/fonts/:/usr/share/fonts/external/ -t -i thomasweise/texlive xelatex.sh myDocument
A primeira versão inicia o contêiner e deixa você no prompt de comando. Agora você pode compilar seu documento usando o script xelatex.sh Helper e você exit do contêiner. Na segunda versão, você fornece diretamente o comando ao contêiner. O contêiner o executa e sai diretamente.
Ambos devem deixar o arquivo PDF compilado na pasta /my/path/to/document/ . Se você não estiver usando meus scripts predefinidos para construção (veja abaixo no ponto 3.1), recomendo fazer chmod 777 myDocument.pdf após a compilação, para garantir que o documento produzido possa ser acessado dentro do seu sistema real (host) e não apenas do contêiner do docker. Se você fornecer diretamente um único comando para execução, o contêiner tenta encontrar heuristicamente o seu pdf produzido e definir suas permissões corretamente.
As opções -v sourcepath:destpath são opcionais. Eles permitem que você "monte" uma pasta ( sourcepath ) do seu sistema local para o contêiner do Docker, onde fica disponível como Path destpath . Podemos usar esse método para permitir que o compilador de látex execute dentro do contêiner trabalhe em seus documentos de látex montando a pasta em uma pasta chamada /doc/ , por exemplo. Mas também podemos montar uma pasta externa com fontes na estrutura do diretório da fonte Linux. Para esse fim, sempre monte seu diretório de fonte local em /usr/share/fonts/external/ .
Se você apenas quiser usar (ou bisbilhotar) a imagem sem montar pastas externas, você pode executar esta imagem usando:
docker run -t -i thomasweise/texlive
Outro exemplo para o uso da sintaxe para passar diretamente em um único comando para execução é compilar uma tese com base no modelo de tese do UTC. Esses documentos podem ser compilados usando make , para que você possa fazer algo como
docker run -v /path/to/my/thesis/:/doc/ -v /path/to/fonts/:/usr/share/fonts/external/ -t -i thomasweise/texlive make
A imagem tem os seguintes componentes:
TeX Live Version 2015.2016ghostscript versão 9.18Você pode construí -lo com
docker build -t thomasweise/texlive .
Fornecemos um conjunto de scripts (in /bin/ ) que podem ser usados para compilar documentos de látex:
Geralmente, a compilação de látex significa chamar o programa de compilador de látex, depois o Bibtex, depois o compilador novamente, e depois algum programa de conversão do respectivo formato de saída do compilador para PDF. Com os scripts do compilador, tentamos condensar essas chamadas em uma única invocação de programa.
latex.sh <document> Compile o LATEX <document> com o LATEX (também do Bibtex)lualatex.sh <document> Compile o LATEX <document> com Lualatex (também do Bibtex)pdflatex.sh <document> compilar o látex <document> com pdflatex (também do bibtex)xelatex.sh <document> compilar o látex <document> com xelatex (também do bibtex)mintex.sh <document> <compiler1> <compiler2> ... permite que você invoca uma seleção arbitrária dos scripts do compilador acima para produzir o menor pdf . Fazendo mintex.sh mydoc latex lualatex xelatex , por exemplo, compilará mydoc.tex com latex.sh , lualatex.sh e xelatex.sh e mantenha o menor arquivo pdf resultante. Também fornecemos alguns scripts utilitários para trabalhar com arquivos PDF , PS e EPS .
eps2pdf.sh <document> Converta o arquivo EPS <document> em PDFfilterPdf.sh <document> transforme um documento (em formato PostScript/ PS , EPS ou PDF ) em PDF e inclua tantas das fontes usadas dentro do documento no PDF final. Isso permite produzir um PDF a partir de um arquivo .ps <document> , que deve ser exibido corretamente o maior número possível de computadores.sudo é um comando pseudo- sudo : dentro de um contêiner do docker, não precisamos sudo . No entanto, se você tiver um script ou algo que chama Plero Plain sudo (sem argumentos adicionais) apenas com um comando a ser ouvido, este script emulará um sudo . Por não fazer nada.downscalePdf.sh <document> {resolution} torna um documento PDF menor, reduzindo todas as imagens incluídas (para a resolução especificada).findNonASCIIChars.sh <document> encontra caracteres não-ASCII em um documento. Nos documentos .tex , esses personagens podem apresentar problemas. Esta imagem está licenciada sob a licença pública geral da GNU versão 3, 29 de junho de 2007, que você pode encontrar no arquivo License.md. A licença se aplica à maneira como a imagem é construída, enquanto os componentes de software dentro da imagem estão sob as respectivas licenças escolhidas por seus respectivos detentores de direitos autorais.
Se você tiver alguma dúvida ou sugestão, entre em contato com Thomas Weise do Instituto de Otimização Aplicada da Universidade Hefei em Hefei, Anhui, China.