https://github.com/pytooling/miktex
A Docker image containing MikTeX to translate LaTeX documents.
https://github.com/pytooling/miktex
docker-image latex miktex sphinx
Last synced: 2 months ago
JSON representation
A Docker image containing MikTeX to translate LaTeX documents.
- Host: GitHub
- URL: https://github.com/pytooling/miktex
- Owner: pyTooling
- Created: 2024-12-01T11:21:31.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2026-03-04T15:46:19.000Z (4 months ago)
- Last Synced: 2026-03-04T18:34:37.722Z (4 months ago)
- Topics: docker-image, latex, miktex, sphinx
- Language: Shell
- Homepage:
- Size: 34.2 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# MikTeX Docker Image
This repository is based on [Debian 12.x Bookworm (slim) with Python 3.14](https://hub.docker.com/_/python).
Docker Hub: https://hub.docker.com/r/pytooling/miktex
| Docker Hub Image | GitHub Branch/Tag | Comment |
|----------------------------|-------------------|-----------------------------------------------|
| `pytooling/miktex:latest` | `vX.Y.Z` | Created from tagged release on `main` brnach. |
| `pytooling/miktex:release` | `main` | Created from commits on `main` brnach. |
| `pytooling/miktex:dev` | `dev` | Created from commits on `dev` brnach. |
| Docker Hub Image | Comment |
|---------------------------------------------------------------|---------------------------------------------------------------------------------|
| tbd; see [#12](https://github.com/pyTooling/MiKTeX/issues/12) | Created specificly for processing [Doxygen](https://www.doxygen.nl/) ouputs. |
| tbd; see [#11](https://github.com/pyTooling/MiKTeX/issues/11) | Created specificly for processing [Pandoc](https://pandoc.org/) ouputs. |
| `pytooling/miktex:sphinx` | Created specificly for processing [Sphinx](https://www.sphinx-doc.org/) ouputs. |
## Why another MikTeX Docker Image?
* [MikTeX original containers](https://hub.docker.com/r/miktex/miktex) do not provide installations based on Debian.
* MikTeX original containers are infrequently updated (>1 year).
* MikTeX original containers aren't smaller (less download time).
* Prepare MiKTeX with Unicode support ([`pyTooling.sty`](pyTooling.sty)).
* pyTooling has control over preinstalled commonly used LaTeX packages (`amsfonts`/`amsmath`, `babel`, `hyperref`, `longtables`, ...)
* pyTooling can derive specific images for e.g.Doxygen, Pandoc, [`Sphinx`](Sphinx.list), ...
## Usage
### Standalone Docker Container
```bash
docker image run --rm -it -v $(pwd):/latex pytooling/miktex:latest
```
### GitHub Action Pipeline
```yml
MiKTeX:
name: 📓 Translate to PDF
runs-on: 'ubuntu-24.04'
container:
image: pytooling/miktex:latest
steps:
- name: ⏬ Checkout repository
uses: actions/checkout@v6
- name: 📓 Compile 'latex/document.tex'
run: |
set -o pipefail
cd ./latex
chown -R latex:latex .
sudo -u latex latexmk \
--lualatex \
--interaction=nonstopmode \
--file-line-error \
--halt-on-error \
document.tex | filter.latexmk.sh
ls -lAh *.pdf
- name: 📤 Upload 'document-pdf' artifact
uses: pyTooling/upload-artifact@v7
with:
name: document-pdf
working-directory: latex
path: document.pdf
if-no-files-found: error
retention-days: 1
```
## MiKTeX Docker Image
### Installed Tools
Installed additional tools are:
* curl
* MikTeX
* Preinstalled packages: [Common.list](Common.list)
* Perl
* Python 3.14
* sudo
* tree
### Installed Fonts
* Cabin
* DejaVu
* Latin Modern (LM)
* Libertinus (optimized `Linux Libertine` for LuaLaTeX)
* [URW Type Foundy](https://en.wikipedia.org/wiki/URW_Type_Foundry)
* URW Bookman (`ITC Bookman` clone)
* Nimbus Sans (`Helvetica` clone)
* Nimbus Roman (`Times New Roman` clone)
* ~~Palladio -> Palatino~~
* Noto (No Tofu)
## Derived Variant Docker Images
### Doxygen
**planned**, see [#12](https://github.com/pyTooling/MiKTeX/issues/12)
### Pandoc
**planned**, see [#11](https://github.com/pyTooling/MiKTeX/issues/11)
### Sphinx
MiKTeX:
* Common package list: [Common.list](Common.list)
* Sphinx specific package list: [Sphinx.list](Sphinx.list)
Additional Debian Packages: [Sphinx.packages](Sphinx.packages)
* nodejs: [Sphinx.npm](Sphinx.npm)
* Mermaid
## License
This Docker Image build receipt and all it's accompanying configuration and script files (source code) are licensed
under [The MIT License](LICENSE.md) if not mentioned otherwise within the respective file.
---
SPDX-License-Identifier: MIT