Esta es una revisión importante de la imagen thomasWeise/texlive . Ahora se basa thomasweise/docker-pandoc , que, a su vez, se basa en thomasweise/docker-texlive-full . Esto significa que se hizo más grande, pero ahora presenta la versión más reciente de pandoc , TeX Live , e incluye más filtros PANDOC que antes. Para la versión original del contenedor, consulte la etiqueta 1.0.0.
Esta es una imagen de Docker que contiene una instalación TeX Live (versión 2015.2016) con varios scripts de soporte para facilitar la compilación de archivos de látex a PDF. El objetivo es proporcionar un entorno unificado para compilar documentos de látex con un comportamiento predecible y reproducible, al tiempo que disminuye el esfuerzo necesario para instalar y mantener la instalación de látex. Esta imagen está diseñada para ser especialmente adecuada para una audiencia china y viene con varias fuentes chinas abiertas preinstaladas.
Docker se puede instalar siguiendo las pautas a continuación:
curl -fsSL http://get.docker.com/ | sh en su línea de comando y todo se hace automáticamente (si tiene curl instalado, que normalmente es el caso), A continuación, discutimos los diversos parámetros que puede pasar a esta imagen al ejecutarla. Si ha instalado Docker, no necesita realizar ninguna instalación adicional: la primera vez que realiza docker run -t -i thomasweise/texlive o algo así (ver más abajo), la imagen se descargará e instalará automáticamente desde Docker Hub.
Hay dos casos de uso básicos de esta imagen:
Además, hay dos formas de proporcionar datos al contenedor:
La forma común del comando es la siguiente:
docker run -v /my/path/to/document/:/doc/ -v /path/to/fonts/:/usr/share/fonts/external/ -t -i thomasweise/texlive COMMAND ARG1 ARG2...
Dónde
/my/path/to/document/ debe reemplazarse con la ruta a la carpeta que contiene el documento de látex que desea compilar. Esta carpeta estará disponible como carpeta /doc/ dentro del contenedor. Si usa la imagen sin parámetros de comando (ver más abajo), obtendrá un símbolo del sistema BASH dentro de esta /doc/ carpeta.-v /path/to/fonts/:/usr/share/fonts/external/ parameter. Aquí, /path/to/fonts/ debe reemplazarse con una ruta a una carpeta que contiene estas fuentes. Si no necesita fuentes adicionales, puede dejar todo el -v /path/to/fonts/:/usr/share/fonts/external/ away.COMMAND ARG1 ARG2... en la línea de comando anterior. Si especifica dicho comando, el contenedor se iniciará, ejecutará el comando y luego apagará. Si no proporciona dicho comando, el contenedor se iniciará y le proporcionará una solicitud de bash en la carpeta /doc/ . Para compilar algún documento llamado myDocument.tex en la carpeta /my/path/to/document/ with xelatex.sh y usar fuentes adicionales en carpeta /path/to/fonts/ , escribiría algo como el comando a continuación en un terminal normal (Linux), el terminal de Docker QuickStart (Mac OS) o el terminal de caja de herramientas Docker (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
Alternativamente, también podrías hacer
docker run -v /my/path/to/document/:/doc/ -v /path/to/fonts/:/usr/share/fonts/external/ -t -i thomasweise/texlive xelatex.sh myDocument
La primera versión inicia el contenedor y lo deja en el símbolo del sistema. Ahora puede compilar su documento utilizando nuestro script xelatex.sh auxiliar, luego exit del contenedor. En la segunda versión, proporciona directamente el comando al contenedor. El contenedor lo ejecuta y luego sale directamente.
Ambos deben dejar el archivo PDF compilado en la carpeta /my/path/to/document/ . Si no está utilizando mis scripts predefinidos para la construcción (ver más abajo en el punto 3.1), le recomiendo que haga chmod 777 myDocument.pdf después de la compilación, para garantizar que se pueda acceder al documento producido dentro del usuario de su sistema real (host), y no solo desde el contenedor Docker. Si proporciona directamente un solo comando para la ejecución, el contenedor intenta encontrar heurísticamente su pdf producido y establecer sus permisos correctamente.
Las opciones -v sourcepath:destpath son opcionales. Le permiten "montar" una carpeta ( sourcepath ) desde su sistema local en el contenedor Docker, donde está disponible como ruta destpath . Podemos usar este método para permitir que el compilador de látex que se ejecute dentro del contenedor funcione en sus documentos de látex al montar su carpeta en una carpeta llamada /doc/ , por ejemplo. Pero también podemos montar una carpeta externa con fuentes en la estructura del directorio de fuentes de Linux. Para este propósito, siempre monte su directorio de fuentes local en /usr/share/fonts/external/ .
Si solo desea usar (o husmear en) la imagen sin montar carpetas externas, puede ejecutar esta imagen usando:
docker run -t -i thomasweise/texlive
Otro ejemplo para el uso de la sintaxis para pasar directamente en un solo comando para la ejecución es compilar una tesis basada en la plantilla de tesis USTC. Dichos documentos se pueden compilar usando make , para que pueda hacer algo como
docker run -v /path/to/my/thesis/:/doc/ -v /path/to/fonts/:/usr/share/fonts/external/ -t -i thomasweise/texlive make
La imagen tiene los siguientes componentes:
TeX Live versión 2015.2016ghostscript versión 9.18Puedes construirlo con
docker build -t thomasweise/texlive .
Proporcionamos un conjunto de scripts (en /bin/ ) que se pueden usar para compilar documentos de látex:
Por lo general, la compilación de látex significa llamar al programa del compilador de látex, luego bibtex, luego el compilador nuevamente, y luego algún programa de conversión del formato de salida del compilador respectivo a PDF. Con los scripts del compilador, intentamos condensar estas llamadas en una sola invocación del programa.
latex.sh <document> compile el látex <document> con latex (también do bibtex)lualatex.sh <document> compile el látex <document> con Lualatex (también do bibtex)pdflatex.sh <document> compile el látex <document> con pdflatex (también do bibtex)xelatex.sh <document> compile el látex <document> con xelatex (también do bibtex)mintex.sh <document> <compiler1> <compiler2> ... le permite invocar una selección arbitraria de los scripts del compilador anterior para producir el pdf más pequeño. Hacer mintex.sh mydoc latex lualatex xelatex , por ejemplo, compilará mydoc.tex con latex.sh , lualatex.sh y xelatex.sh y mantendrá el archivo pdf más pequeño resultante. También proporcionamos algunos scripts de utilidad para trabajar con archivos PDF , PS y EPS .
eps2pdf.sh <document> CONVERTO EL ARCHIVO EPS <document> A PDFfilterPdf.sh <document> Transforme un documento (ya sea en formato PostScript/ PS , EPS o PDF ) en PDF e incluya tantas fuentes utilizadas dentro del documento en el PDF final. Esto permite producir un PDF a partir de un archivo .ps <document> que debe mostrarse correctamente en tantas computadoras como sea posible.sudo es un comando pseudo- sudo : dentro de un contenedor Docker, no necesitamos sudo . Sin embargo, si tiene un script o algo que llame a sudo simple (sin argumentos adicionales) solo con un comando para ser suplicado, este script emulará un sudo . Por no hacer nada.downscalePdf.sh <document> {resolution} hace que un documento PDF sea más pequeño mediante la reducción de todas las imágenes incluidas (a la resolución especificada).findNonASCIIChars.sh <document> encuentra caracteres no ASCII en un documento. En documentos .tex , tales caracteres pueden plantear problemas. Esta imagen tiene licencia bajo la GNU General Public License Versión 3, 29 de junio de 2007, que puede encontrar en File License.md. La licencia se aplica a la forma en que se construye la imagen, mientras que los componentes del software dentro de la imagen están bajo las respectivas licencias elegidas por sus respectivos titulares de derechos de autor.
Si tiene alguna pregunta o sugerencia, comuníquese con Thomas Weise del Instituto de Optimización Aplicada de la Universidad de Hefei en Hefei, Anhui, China.