blang/latex
This container helps compiling latex sources without the need to install all latex packages on your system.
latexdockercmd.sh pdflatex main.tex
texlive-full
to cover all needsAll versions are based on Ubuntu: (See all tags)
If you need...
blang/latex:ubuntu
.blang/latex:ctanfull
.blang/latex:ctanbasic
.For stability, choose a more specific version tag (See all tags)
Compile latex sources using docker:
# Change to your project
cd my_latex_project
# Download the command wrapper and make it executable
wget https://raw.githubusercontent.com/blang/latex-docker/master/latexdockercmd.sh
chmod +x latexdockercmd.sh
# Optional: Change the version (see above, default blang/latex:ubuntu)
edit ./latexdockercmd.sh
# Compile using pdflatex (docker will pull the image automatically)
./latexdockercmd.sh pdflatex main.tex
# Or use latexmk (best option)
./latexdockercmd.sh latexmk -cd -f -interaction=batchmode -pdf main.tex
# Cleanup: ./dockercmd.sh latexmk -c or -C
# Or make multiple passes (does not start container twice)
../latexdockercmd.sh /bin/sh -c "pdflatex main.tex && pdflatex main.tex"
First, add your local user to docker group (should already be the case):
sudo usermod -aG docker YOURUSERNAME
The latexdockercmd.sh
will use your current user and group id to compile.
If you're working on source in latex, you might want to compile it multiple times and don't want to start a container each time.
cd my_latex_source
# Start a daemon container on this path, it accepts commands from latexdockerdaemoncmd.sh
latexdockerdaemon.sh
# Execute the command in the daemon container, only the daemon container is running
latexdockerdaemoncmd.sh pdflatex main.tex
# Stop the daemon
docker stop latex_daemon
If software is missing, extend this base image with your own software:
Create a Dockerfile or download Dockerfile.blueprint for examples:
FROM blang/latex:ubuntu
# Minted + Pygments
RUN tlmgr install minted
Build your custom image:
docker build -t mycustomlateximg .
Edit latexdockercmd.sh
to use your image mycustomlateximg
.
Clean build using latexmk
:
mkdir compile
latexmk -cd -f -jobname=output -outdir=./compile -auxdir=./compile -interaction=batchmode -pdf ./main.tex
Use latexmkrc
in your project root:
# Example: Make glossaries
add_cus_dep( 'glo', 'gls', 0, 'makeglo2gls' );
sub makeglo2gls {
system("makeindex -s \"$_[0].ist\" -t \"$_[0].glg\" -o \"$_[0].gls\" \"$_[0].glo\"" );
}
A list of available ctan packages can be found here: http://mirror.ctan.org/systems/texlive/tlnet/archive
Install texlive packages:
RUN tlmgr install minted
If the image is missing a package only specific for you, please don't open an issue or pull request but build your own image as described above. If a critical package is missing or you have a recipe for missing packages in a common scenario, please create an issue / PR on Dockerfile.blueprint.
See LICENSE file.
docker pull blang/latex