Full TeX Live
This docker image supports full TeX Live with following additions:
.tex
It builds on the full texlive image by "Island of TeX" with additions concidered important.
docker run --rm -it -v $(pwd):/workdir danteev/texlive latexmk -pdf document.tex
Create a file .github/workflows/build.yml
with following content:
name: Build
on: [push]
jobs:
build_latex:
runs-on: ubuntu-latest
steps:
- name: Set up Git repository
uses: actions/checkout@v2
- name: Compile document.tex
uses: dante-ev/latex-action@edge
with:
root_file: document.tex
See dante-ev/latex-action for documentation on the different with
options available.
You can also use it with multiple files as outlined here:
❯ tree
.
├── motivation_letter.pdf
├── master_degree.pdf
├── README.md
├── master_degree
│ ├── master_degree.sty
│ └── master_degree.tex
└── motivation_letter
├── motivation_letter.bib
└── motivation_letter.tex
Following custom compilation script compiles all PDFs:
name: Build
on:
push:
paths-ignore:
- '*.pdf'
jobs:
build_latex:
runs-on: ubuntu-latest
container:
image: danteev/texlive:latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Build LaTeX
run: |
for project in $(ls); do
if [ -d "$project" ]; then
cd ${project}
latexmk -synctex=1 -interaction=nonstopmode -file-line-error -pdf -outdir=$PWD/../ $PWD/${project}
cd ..
fi
done
One can push the results using following example:
- name: Publish LaTeX
run : |
git config --global user.email "[email protected]"
git config --global user.name "BOT_WORKFLOW"
git add -f $PWD/*.pdf
git commit -m "WORKFLOW_COMMIT - Update PDFs [skip ci]"
git push
Alternatively, you can use the GitHub push action to push something.
Create file .circle/config.yml
with following content:
version: 2
jobs:
build:
docker:
- image: danteev/texlive
steps:
- checkout
- run: latexmk -pdf document.tex
Create file .travis.yml
with following content:
dist: bionic
language: generic
services: docker
script:
- docker run --rm -it -v $(pwd):/workdir danteev/texlive latexmk -pdf document.tex
Create file .gitlab-ci.yml
with following content:
build:
image: danteev/texlive
stage: build
script:
- latexmk -pdf document.tex
artifacts:
paths:
- document.pdf
edge
- the edge build. Usually created on the first and fifteenth of a month.latest
- the latest released version.YYYY-MM-DD
- a build of that date. Usually created on the first and fifteenth of a month.Browse all available tags at https://hub.docker.com/repository/docker/danteev/texlive/tags?page=1&ordering=last_updated.
2021-A
- first image release in year 20212020-A
- latest TeXLive 2020 buildTL2017
- TeXLive 2017 builddocker run --rm -it -v $(pwd):/workdir danteev/texlive latexmk document.tex
In case you want to use an explicit tag, you can do it as follows:
You can run the build of 2021-05-15 by using the tag 2021-05-15
:
docker run --rm -it -v $(pwd):/workdir danteev/texlive:2021-05-15 latexmk document.tex
We decided to base on the official TeXLive image, because this ensures recent TeXLive packages and a working basic build. We extended the image with tools required for our use cases.
build:latest: [2021, no, no]
in the build jobs.
no, no
means: no documentation and no source files.In case this all-in-one image is too large for you, you might be interested in following images: