A GitHub Action that compiles LaTeX documents to PDF using a complete TeXLive environment.
latex-action is a GitHub Action that compiles LaTeX documents into PDFs within GitHub workflows. It solves the problem of setting up and maintaining LaTeX environments in CI/CD by providing a pre-configured, containerized TeXLive installation that ensures consistent and reproducible builds.
Developers, researchers, and technical writers who need to automate LaTeX document compilation in their GitHub repositories, particularly those managing academic papers, reports, or documentation with LaTeX.
Developers choose latex-action for its ease of integration, flexibility in TeXLive versions and LaTeX engines, and robust containerized environment that eliminates platform-specific LaTeX installation issues.
:octocat: GitHub Action to compile LaTeX documents
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Runs in a Docker container with a full TeXLive installation, ensuring consistent builds across systems and eliminating manual LaTeX setup, as emphasized in the README's containerized approach.
Supports pdfLaTeX, XeLaTeX, and LuaLaTeX via configurable inputs like `latexmk_use_xelatex`, allowing users to choose the best engine for their document needs.
Allows installation of extra system packages and custom fonts through inputs such as `extra_system_packages` and `extra_fonts`, adapting to diverse project requirements without modifying the base image.
Offers flexibility with TeXLive versions from 2020 to 2026 and a choice between Alpine or Debian-based Docker images, as detailed in the `texlive_version` and `os` inputs.
The action is designed exclusively for GitHub Actions, making it unsuitable for other CI/CD platforms without significant adaptation or workarounds.
Key features like shell-escape and engine selection only work with the default `latexmk` compiler, limiting flexibility if users prefer or require alternative compilers, as noted in the README's IMPORTANT section.
Configuring custom LaTeX input paths via `TEXINPUTS` is non-intuitive and requires careful handling due to container workspace differences, as warned in the FAQ, which can lead to setup errors.