“Just enough TeX”
MiKTeX supports the notion of a scalable TeX system: users install just the TeX packages they need for their authoring tasks.
Step 1: bare TeX installation
Fresh MiKTeX installations on Linux and macOS start with just the executables and some support files. This is called a bare TeX installation.
Step 2: enable automatic package installation
MiKTeX has the ability to install missing files on-the-fly. You can configure this feature in MiKTeX Console, or in a terminal window:
If you want to turn it on for all users:
sudo initexmf --admin --set-config-value=[MPM]AutoInstall=yes
Step 3: enjoy your minimal TeX system
From now on, whenever a package is required which hasn't been installed yet, the package installer comes into play.
For example, if you run a TeX engine (
lualatex) the first time, you will see something like this:
... ====================================================================== starting package maintenance... installation directory: ~/miktex/texmfs/user/install package repository: https://ctanmirror/ctan/systems/win32/miktex/tm/packages/next/ visiting repository https://ctanmirror/systems/win32/miktex/tm/packages/next/... repository type: remote package repository loading lightweight database... downloading https://ctanmirror/systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma... 173544 bytes, 459.29 KB/Sec lightweight database digest: a59926f76b83fcc2ac8f84b6d3d792de going to download 9376605 bytes going to install 209 file(s) (1 package(s)) downloading https://ctanmirror/systems/win32/miktex/tm/packages/next/ltxbase.tar.lzma... 9376605 bytes, 4152.76 KB/Sec extracting files from ltxbase.tar.lzma... ====================================================================== ...
Here the LaTeX base package (
ltxbase) is downloaded and installed while you process a LaTeX document.