Skip to content

Repository files navigation

MikTeX Docker Image

This repository is based on Debian 12.x Bookworm (slim) with Python 3.14.

Docker Hub: https://hub.docker.com/r/pytooling/miktex

Docker Hub ImageGitHub Branch/TagComment
pytooling/miktex:latestvX.Y.ZCreated from tagged release on main brnach.
pytooling/miktex:releasemainCreated from commits on main brnach.
pytooling/miktex:devdevCreated from commits on dev brnach.
Docker Hub ImageComment
tbd; see #12Created specificly for processing Doxygen ouputs.
tbd; see #11Created specificly for processing Pandoc ouputs.
pytooling/miktex:sphinxCreated specificly for processing Sphinx ouputs.

Why another MikTeX Docker Image?

  • MikTeX original containers 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 has control over preinstalled commonly used LaTeX packages (amsfonts/amsmath, babel, hyperref, longtables, ...)
  • pyTooling can derive specific images for e.g.Doxygen, Pandoc, Sphinx, ...

Usage

Standalone Docker Container

docker image run --rm -it -v $(pwd):/latex pytooling/miktex:latest

GitHub Action Pipeline

MiKTeX:
name: 📓 Translate to PDFruns-on: 'ubuntu-24.04'container:
image: pytooling/miktex:lateststeps:
- name: ⏬ Checkout repositoryuses: actions/checkout@v7
- 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' artifactuses: pyTooling/upload-artifact@v7with:
name: document-pdfworking-directory: latexpath: document.pdfif-no-files-found: errorretention-days: 1

MiKTeX Docker Image

Installed Tools

Installed additional tools are:

  • curl
  • MikTeX
  • Perl
  • Python 3.14
  • sudo
  • tree

Installed Fonts

  • Cabin
  • DejaVu
  • Latin Modern (LM)
  • Libertinus (optimized Linux Libertine for LuaLaTeX)
  • URW Type Foundy
    • 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

Pandoc

planned, see #11

Sphinx

MiKTeX:

Additional Debian Packages: Sphinx.packages

Sphinx configuration in conf.py

The following configuration will activate LaTeX code specific for LuaLaTeX and Unicode support. It deactivates polyglossia and uses babel (has now better Unicode support).

fromtextwrapimportdedentlatex_engine="lualatex"latex_use_xindy=Falselatex_elements= {
"papersize": "a4paper", # The paper size ('letterpaper' or 'a4paper')."pointsize": "10pt", # The font size ('10pt', '11pt' or '12pt')."inputenc": "", # Let LuaLaTeX handle input encoding"utf8extra": "",
"polyglossia": "",
"babel": r"\usepackage[english]{babel}",
"fontenc": r"\usepackage{fontspec}", # Disable the default T1 font encoding (Essential for LuaLaTeX)"fontpkg": r"\usepackage[fontfamily=libertinus]{pytooling}",
"passoptionstopackages": dedent("""\\\PassOptionsToPackage{verbatimvisiblespace=\\ }{sphinx}	"""),
"makeindex": r"\usepackage[columns=1]{idxlayout}\makeindex",
"printindex": r"\def\twocolumn[#1]{#1}\printindex",
}

pytooling.sty

Options

OptionDefaultDescription
fontfamilylatinmodernSelect a Unicode capable font family.
Supported: dejavu, latinmodern, libertinus, noto
emojifontNotoColorEmoji.ttfSelect a Unicode icon/emoji font.
emojiscale0.6Scaling of emojis to match text height.
emojiraise0.1emRaise emojis to match normal texts baseline.

License

This Docker Image build receipt and all it's accompanying configuration and script files (source code) are licensed under The MIT License if not mentioned otherwise within the respective file.


SPDX-License-Identifier: MIT

About

A Docker image containing MikTeX to translate LaTeX documents.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages