Il s'agit d'une refonte majeure de l'image thomasWeise/texlive . Il est maintenant basé sur thomasweise/docker-pandoc , qui, à son tour, est basé sur thomasweise/docker-texlive-full . Cela signifie qu'il est devenu plus grand, mais il propose désormais la dernière version de pandoc , TeX Live , et comprend plus de filtres Pandoc qu'auparavant. Pour la version originale du conteneur, reportez-vous à la balise 1.0.0.
Il s'agit d'une image Docker contenant une installation TeX Live (version 2015.2016) avec plusieurs scripts de support pour assouplir la compilation des fichiers de latex vers PDF. L'objectif est de fournir un environnement unifié pour compiler les documents de latex avec un comportement prévisible et reproductible, tout en diminuant l'effort nécessaire pour installer et maintenir l'installation en latex. Cette image est conçue pour être particulièrement adaptée à un public chinois et est livrée avec plusieurs polices chinoises ouvertes préinstallées.
Docker peut être installé en suivant les directives ci-dessous:
curl -fsSL http://get.docker.com/ | sh sur votre ligne de commande et tout est fait automatiquement (si vous avez curl installées, ce qui est normalement le cas), Ci-dessous, nous discutons des différents paramètres que vous pouvez transmettre à cette image lorsque vous l'exécutez. Si vous avez installé Docker, vous n'avez pas besoin d'effectuer des installations supplémentaires: la première fois que vous faites docker run -t -i thomasweise/texlive ou quelque chose comme ça (voir ci-dessous), l'image sera automatiquement téléchargée et installée à partir de Docker Hub.
Il existe deux cas d'utilisation de base de cette image:
De plus, il existe deux façons de fournir des données au conteneur:
La forme commune de la commande est la suivante:
docker run -v /my/path/to/document/:/doc/ -v /path/to/fonts/:/usr/share/fonts/external/ -t -i thomasweise/texlive COMMAND ARG1 ARG2...
Où
/my/path/to/document/ doit être remplacé par le chemin d'accès au dossier contenant le document latex que vous souhaitez compiler. Ce dossier sera mis à disposition en tant que dossier /doc/ à l'intérieur du conteneur. Si vous utilisez l'image sans paramètres de commande (voir ci-dessous), vous obtiendrez une invite de commande bash à l'intérieur de ce dossier /doc/ .-v /path/to/fonts/:/usr/share/fonts/external/ en option /: / usr / share / fonts / external / paramètre. Ici, /path/to/fonts/ doit être remplacé par un chemin vers un dossier contenant ces polices. Si vous n'avez pas besoin de polices supplémentaires, vous pouvez laisser l'intégralité -v /path/to/fonts/:/usr/share/fonts/external/ external.COMMAND ARG1 ARG2... dans la ligne de commande ci-dessus représente. Si vous spécifiez une telle commande, le conteneur démarrera, exécutera la commande, puis fermera. Si vous ne fournissez pas une telle commande, le conteneur démarrera et vous fournira une invite bash dans le dossier /doc/ . Pour compiler un document nommé myDocument.tex dans le dossier /my/path/to/document/ avec xelatex.sh et en utilisant des polices supplémentaires dans le dossier /path/to/fonts/ , vous tapiez quelque chose comme la commande ci-dessous dans un terminal normal (Linux), le terminal de Docker QuickStart (Mac OS), ou le terminal à outils 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
Alternativement, vous pouvez également faire
docker run -v /my/path/to/document/:/doc/ -v /path/to/fonts/:/usr/share/fonts/external/ -t -i thomasweise/texlive xelatex.sh myDocument
La première version démarre le conteneur et vous laisse à l'invite de commande. Vous pouvez désormais compiler votre document à l'aide de notre script d'assistance xelatex.sh , puis vous exit le conteneur. Dans la deuxième version, vous fournissez directement la commande au conteneur. Le conteneur l'exécute puis sort directement.
Les deux doivent laisser le fichier PDF compilé dans le dossier /my/path/to/document/ . Si vous n'utilisez pas mes scripts prédéfinis pour la construction (voir ci-dessous sous le point 3.1), je recommande de faire chmod 777 myDocument.pdf après la compilation, pour garantir que le document produit peut être accessible à l'intérieur de l'utilisateur de votre véritable (hôte), et pas seulement à partir du conteneur Docker. Si vous fournissez directement une seule commande d'exécution, le conteneur tente de trouver heuristiquement votre pdf produit et de définir correctement ses autorisations.
Les options -v sourcepath:destpath sont facultatives. Ils vous permettent de "monter" un dossier ( sourcepath ) de votre système local dans le conteneur Docker, où il devient disponible sous forme de path destpath . Nous pouvons utiliser cette méthode pour permettre au compilateur de latex en cours d'exécution à l'intérieur du conteneur pour fonctionner sur vos documents de latex en montant leur dossier dans un dossier nommé /doc/ , par exemple. Mais nous pouvons également monter un dossier externe avec des polices dans la structure du répertoire de la police Linux. À cette fin, veuillez toujours monter votre répertoire de police local dans /usr/share/fonts/external/ .
Si vous souhaitez simplement utiliser (ou espionner) l'image sans montage de dossiers externes, vous pouvez exécuter cette image en utilisant:
docker run -t -i thomasweise/texlive
Un autre exemple pour l'utilisation de la syntaxe pour passer directement dans une seule commande pour l'exécution est la compilation d'une thèse basée sur le modèle de thèse USTC. De tels documents peuvent être compilés à l'aide make , vous pouvez donc faire quelque chose comme
docker run -v /path/to/my/thesis/:/doc/ -v /path/to/fonts/:/usr/share/fonts/external/ -t -i thomasweise/texlive make
L'image a les composants suivants:
TeX Live Version 2015.2016ghostscript version 9.18Vous pouvez le construire avec
docker build -t thomasweise/texlive .
Nous fournissons un ensemble de scripts (in /bin/ ) qui peuvent être utilisés pour compiler les documents de latex:
Habituellement, la compilation de latex signifie appeler le programme de compilateur latex, puis bibtex, puis le compilateur à nouveau, puis un programme de conversion du format de sortie du compilateur respectif en PDF. Avec les scripts du compilateur, nous essayons de condenser ces appels en une seule invocation de programme.
latex.sh <document> Compilez le latex <document> avec le latex (également Bibtex)lualatex.sh <document> Compilez le latex <document> avec Lualatex (également Bibtex)pdflatex.sh <document> Compilez le latex <document> avec Pdflatex (également Bibtex)xelatex.sh <document> compilez le latex <document> avec xelatex (aussi faire bibtex)mintex.sh <document> <compiler1> <compiler2> ... vous permet d'invoquer une sélection arbitraire des scripts du compilateur ci-dessus pour produire le plus petit pdf . Faire mintex.sh mydoc latex lualatex xelatex , par exemple, compilera mydoc.tex avec latex.sh , lualatex.sh et xelatex.sh et conserver le plus petit fichier pdf résultant. Nous fournissons également des scripts utilitaires pour travailler avec les fichiers PDF , PS et EPS .
eps2pdf.sh <document> Convertir le fichier EPS <document> en PDFfilterPdf.sh <document> Transformez un document (soit dans PostScript / PS , EPS ou Format PDF ) en PDF et incluez autant de polices utilisées à l'intérieur du document dans le PDF final. Cela permet de produire un PDF à partir d'un fichier .ps <document> qui devrait s'afficher correctement sur autant d'ordinateurs que possible.sudo est une commande pseudo- sudo : à l'intérieur d'un conteneur docker, nous n'avons pas besoin sudo . Cependant, si vous avez un script ou quelque chose qui appelle sudo ordinaire (sans arguments supplémentaires) simplement avec une commande à to-sudo, ce script imitera un sudo . En ne faisant rien.downscalePdf.sh <document> {resolution} rend un document PDF plus petit en réduisant toutes les images incluses (à la résolution spécifiée).findNonASCIIChars.sh <document> trouve des caractères non ascii dans un document. Dans les documents .tex , ces caractères peuvent poser des problèmes. Cette image est sous licence en vertu de la version 3, 29 juin 2007 du GNU General Public License, 29 juin 2007, que vous pouvez trouver dans Fichier License.md. La licence s'applique à la façon dont l'image est construite, tandis que les composants logiciels à l'intérieur de l'image sont sous les licences respectives choisies par leurs détenteurs de droits d'auteur respectifs.
Si vous avez des questions ou des suggestions, veuillez contacter Thomas Weise de l'Institut d'optimisation appliquée de l'Université Hefei à Hefei, Anhui, Chine.