All Projects โ†’ dante-ev โ†’ docker-texlive

dante-ev / docker-texlive

Licence: MIT license
Full TeX Live

Programming Languages

Dockerfile
14818 projects
TeX
3793 projects

Projects that are alternatives of or similar to docker-texlive

latex-docker
๐Ÿณ Docker Image of TeXLive
Stars: โœญ 50 (-12.28%)
Mutual labels:  texlive
tlcockpit
GUI for tlmgr written in Scala
Stars: โœญ 27 (-52.63%)
Mutual labels:  texlive
texlive-ja
The minimal TeXLive Docker image for Japanese
Stars: โœญ 238 (+317.54%)
Mutual labels:  texlive
docker-alpine-texlive
๐Ÿณ ๐Ÿ“– Minimal TeX Live installation Docker image
Stars: โœญ 33 (-42.11%)
Mutual labels:  texlive
Tectonic
A modernized, complete, self-contained TeX/LaTeX engine, powered by XeTeX and TeXLive.
Stars: โœญ 2,512 (+4307.02%)
Mutual labels:  texlive
Tectonic.jl
Tectonic typesetting for Julia.
Stars: โœญ 21 (-63.16%)
Mutual labels:  texlive
texdoc
Find and view documentation in TeX Live
Stars: โœญ 31 (-45.61%)
Mutual labels:  texlive
docker-texlive-full
A repository with a full texlive installation to be the base for my other texlive-related containers.
Stars: โœญ 24 (-57.89%)
Mutual labels:  texlive
dockertex
๐Ÿ‹๐Ÿ““๐Ÿ“ฝ Latex & Texstudio Dockerfiles with multiple texlive versions and proper command line tools ๐Ÿ”ฎ Mirror only!
Stars: โœญ 26 (-54.39%)
Mutual labels:  texlive
heroku-buildpack-tex
A Heroku buildpack to run TeX Live inside a dyno.
Stars: โœญ 18 (-68.42%)
Mutual labels:  texlive
script
same script
Stars: โœญ 13 (-77.19%)
Mutual labels:  texlive

Docker image for texlive License: MIT

This docker image supports full TeX Live with following additions:

  • Gnuplot
  • GraphViz
  • Inkscape
  • latexmk - an automator for latex building
  • Pandoc - to convert from and to .tex
  • Python
    • pygments. This enables the usage of the minted package for source code highlighting.
    • pip. This enables manual Python package installation.
  • git-latexdiff - to enable diffs of LaTeX documents
  • Java headless - required for Pandoc

It builds on the full texlive image by "Island of TeX" with additions concidered important.

Usage

Using docker

docker run --rm -it -v $(pwd):/workdir danteev/texlive latexmk -pdf document.tex

Usage in GitHub Workflows

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.

Usage in CircleCI 2.0

Create file .circle/config.yml with following content:

version: 2
jobs:
   build:
     docker:
       - image: danteev/texlive
     steps:
       - checkout
       - run: latexmk -pdf document.tex

Usage in Travis CI

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

Usage in GitLab CI

Create file .gitlab-ci.yml with following content:

build:
  image: danteev/texlive
  stage: build
  script:
    - latexmk -pdf document.tex
  artifacts:
    paths:
      - document.pdf

Available tags

  • 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.

Other versions

  • 2021-A - first image release in year 2021
  • 2020-A - latest TeXLive 2020 build
  • TL2017 - TeXLive 2017 build
  • For all other versions see CHANGELOG.md.

Usage example

docker run --rm -it -v $(pwd):/workdir danteev/texlive latexmk document.tex

In case you want to use an explcit 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

Background

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.

Development hints

  • At a release, we point to a specific tag of the "upstream" Docker image. To find out the lasest tag there, follow the instructions at https://gitlab.com/islandoftex/images/texlive/-/issues/9. Search for build:latest: [2021, no, no] in the build jobs. no, no means: no documentation and no source files.

Alternatives

In case this all-in-one image is too large for you, you might be interested in following images:

License

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].