Distributions (TeX Live / MiKTeX / MacTeX)

TeX Live’s version number is a year: 2024, 2026. And the moment the next year ships, the previous one is frozen — it never receives another routine update. That single design choice is why picking a LaTeX distribution feels unlike picking other software. In practice there are four candidates: TeX Live, MiKTeX, MacTeX, and whatever your Linux distribution packages. This page measures a real TeX Live 2024 tree with du and tlmgr to show what each one promises and what it does not — including what scheme-full actually costs in gigabytes, measured rather than repeated.

What is actually inside a distribution

A distribution is a snapshot of CTAN — the Comprehensive TeX Archive Network — in which someone has already picked a set of packages that work together and tested them as a whole. It is not “TeX plus some packages.” Counting the package database on this TeX Live 2024 install gives 8,238 entries, of which a scheme-full install has 4,684 actually present (the difference is binary sub-packages for other platforms). The database is three levels deep: 10 schemes, 41 collections, and individual packages below them. The class files \documentclass loads, amsmath, latexmk, bibtex — everything hangs somewhere off that tree.

Where does the space go? Running du -sh on this tree prints 8.7G, of which texmf-dist/doc alone accounts for 3.7 GB holding 10,099 PDF files. Fonts take 2.9 GB and the executables 522 MB. In other words, nearly half of a full TeX Live is reading material, not running code. That 3.7 GB is the distribution’s quiet centre of gravity: the reason texdoc siunitx opens the official manual without touching the network is that the manual is already on your disk. Trim the documentation to save space and you throw that capability away with it.

terminal
# Measure your own installation instead of trusting a number on a web page
tlmgr --version                 # which yearly release am I on?
kpsewhich -var-value=SELFAUTOPARENT   # where does that release live?
du -sh "$(kpsewhich -var-value=SELFAUTOPARENT)"
tlmgr list --only-installed | wc -l   # how many packages are present

What TeX Live’s year means: the frozen release

TeX Live ships once a year, and when the next year appears the previous one is frozen. Frozen means updates stop, not that the release breaks or that tlmgr refuses to run. Read tlmgr.pl itself and you find that on detecting a frozen repository it emits a warning — beginning TeX Live 2024 is frozen and explaining that this happens when a new release is made or is about to be — and then carries on. The source even carries a comment to the effect of “do not die here; we want to allow updates even if the repository is frozen.” A frozen year does not refuse to update you. It simply has nothing left to give you.

For someone choosing a distribution, that design cuts two ways. First, it gives reproducibility: writing “built with TeX Live 2024” in a README names an environment that anyone, anywhere, can reconstruct identically. For a thesis, a journal submission, or a CI build, that matters. Second, output can shift when you cross a year boundary, and package updates land during the year too — so the rule of thumb is to avoid a big update right before a deadline and bump the year after you have submitted. The related rule that tlmgr will not update other packages while it is itself out of date is part of the same yearly model; “Package & font management” covers it.

How many gigabytes scheme-full really costs

The short answer: on this Mac, a scheme-full TeX Live 2024 measures 8.7G under du -sh, and the package database declares scheme-full at 8,270,269 KB, about 7.9 GB. The widely repeated “roughly 7 GB” is now on the low side. The scheme the installer asks about first is the single choice that sets this total. Schemes nest: a scheme bundles collections, a collection bundles packages, and you pick one either from install-tl’s interactive menu or up front with something like --scheme scheme-full.

SchemeWhat it containsInstalled size
scheme-infraonlyInfrastructure only, with no TeX engines at all; for automated testingabout 7 MB
scheme-minimalplain TeX only — no LaTeXabout 56 MB
scheme-basicplain TeX and LaTeX; enough to produce PDF with Computer Modernabout 208 MB
scheme-bookpubBook publishing: core LaTeX plus publishing add-onsabout 317 MB
scheme-contextA ConTeXt-centred installationabout 461 MB
scheme-smallbasic plus XeTeX, MetaPost and hyphenation; the equivalent of MacTeX’s BasicTeXabout 477 MB
scheme-gustThe scheme assembled for GUST, the Polish TeX user groupabout 1.1 GB
scheme-mediumsmall plus more packages and languages — the practical middle groundabout 1.8 GB
scheme-tetexRoughly what teTeX used to be: wider than medium, nowhere near fullabout 2.8 GB
scheme-fullThe default: everything shippable from CTAN, Japanese, Chinese and Korean includedabout 7.9 GB (8.7 GB measured on disk)

Two entries in that table are quietly funny. The database describes scheme-infraonly as the TeX Live scheme “for infrastructure only, with no TeX engines at all” — a TeX distribution containing no TeX (the intended use is automated testing, where you add the thing under test afterwards with tlmgr install). The other is scheme-tetex. teTeX was Thomas Esser’s distribution, the Unix standard through the 1990s, until Esser announced in May 2006 that there would be no further releases and pointed users at TeX Live as the successor. The distribution is long gone, yet its sense of scale survives inside TeX Live as a fossil scheme name.

The practical call: if you can spare 10 GB, take scheme-full. The reason is not disk but attention — it deletes the entire activity of hunting down a missing package. When space is genuinely tight, scheme-medium (about 1.8 GB) is the sensible landing spot, and you add collections from there. For Japanese typesetting add collection-langjapanese; for the shared Chinese/Japanese/Korean base, collection-langcjk (both are already in scheme-full). Go all the way down to scheme-basic and you have no XeTeX and no CJK at all.

What MiKTeX’s on-the-fly install buys and what it sells

If you want the difference between TeX Live and MiKTeX in one sentence: MiKTeX fetches a missing package in the middle of a compile, and TeX Live does not. MiKTeX — started by Christian Schenk for Windows, and today running on macOS and Linux as well — sees \usepackage{siunitx} with no siunitx present, pulls it from CTAN, and keeps going without stopping the run. The behaviour is a setting, chosen at install time and changeable in the MiKTeX Console: always install, ask each time, or never. Its command-line counterpart is not tlmgr but mpm, the MiKTeX Package Manager.

What it buys is obvious: a small initial install, with no gigabytes paid for packages you never load. What it sells is reproducibility and predictability. Offline, a compile halts the moment it wants something new; in CI, yesterday’s passing build can pass today against a different package version. The trap people actually hit is the shared install: even when MiKTeX is installed for all users, packages fetched on the fly land in that user’s own AppData\Roaming tree rather than the shared one. It is the classic cause of “it compiles on my machine but not on my colleague’s.” On shared or lab machines, install the packages you need up front in administrator mode instead.

How MacTeX differs from TeX Live

In the TeX part, it does not differ at all. mactex is the macOS .pkg distributed by TUG’s MacTeX working group, and inside is that year’s TeX Live itself: the same tlmgr, the same packages. What is added is macOS convenience — it is signed and notarized by Apple and installs with a double-click, it puts TeXShop (a dedicated TeX editor), BibDesk (bibliography manager), LaTeXiT (turn an equation into a droppable image) and TeX Live Utility (a GUI for tlmgr) into /Applications/TeX/, and it bundles Ghostscript. MacTeX-2026 requires macOS 11 (Big Sur) or later and runs natively on both Intel and Apple silicon.

The part of MacTeX that really earns its keep is not the GUI apps but the way it wires PATH. Checked on this Mac, /Library/TeX/texbin is a symlink to Distributions/Programs/texbin, which in turn points at the active year’s bin directory. Because what goes on PATH is always /Library/TeX/texbin, upgrading to next year’s release requires no edit to any configuration file. If the full package is too big, BasicTeX is the smaller option — the package database itself describes scheme-small as “corresponding to MacTeX’s BasicTeX variant.” The download is small, but budget for roughly 477 MB once unpacked.

Is your Linux distribution’s TeX Live good enough?

For everyday work it is fine, but it is the wrong choice if you want to use tlmgr. Debian/Ubuntu’s texlive-full and Fedora’s texlive-scheme-full take TeX Live apart and rebuild it inside the OS packaging system, so dependencies and updates belong to apt or dnf. That also means the OS package manager owns the tree, and you generally cannot add to that same tree with tlmgr install. When you need a fix that landed on CTAN this week, you are stuck. The other issue is timing: vendor updates can lag the yearly release by months or years, which is a common reason a system “that is supposed to be TeX Live 2024” behaves differently from one that is.

Which to choose, platform by platform

Lined up, four questions decide it: how packages arrive, what updates them, which platforms are supported, and how big it gets. Size moves a great deal with the scheme, so the figures below assume something like scheme-full. One platform detail worth knowing: installing TeX Live on Windows also gets you the TeXworks editor, because the package database states plainly that TeX Live ships TeXworks executables and support files for Windows only. On macOS and Linux you supply an editor yourself.

PlatformsHow packages arriveUpdate toolFull-install size
TeX LiveWindows / macOS / Linux / UnixAll at once, chosen by schemetlmgr, or the tlshell GUI8.7 GB measured
MiKTeXWindows first (also macOS / Linux)Fetched mid-compile, as neededmpm, or the MiKTeX ConsoleStarts small, grows with use
MacTeXmacOS only (11 Big Sur and later)All at once (it is TeX Live)tlmgr / TeX Live UtilitySame as TeX Live; BasicTeX about 477 MB
texlive-fullLinux (Debian / Ubuntu family)All at once, via OS package dependenciesapt and friends; tlmgr is not usableSeveral GB, depending on how the vendor splits it
  • Windows: when in doubt, TeX Live — the same yearly release and the same contents as every other platform, so reproducibility never becomes a question. Choose MiKTeX if disk is tight or you actively want packages to appear when needed.
  • macOS: MacTeX is the default answer, and the /Library/TeX/texbin arrangement means you never touch PATH. If bandwidth or space is short, start from BasicTeX and add with tlmgr.
  • Linux / Unix: the straightforward route is the official TeX Live installer into /usr/local/texlive/. Avoid apt’s texlive-full if you want to manage packages yourself, since it takes tlmgr away.
  • CI, Docker, offline: TeX Live, without hesitation. Install the packages you need explicitly and the build never depends on MiKTeX fetching something mid-run.
  • Japanese, Chinese, Korean: all four can typeset CJK. With scheme-full it works as shipped; with a smaller scheme, add collection-langjapanese or collection-langcjk.