MiKTeX is an implementation of TeX/LaTeX and related programs for Windows, macOS and Linux.
MiKTeX is available for selected Linux distributions. Please read the tutorial, for more information.
You can install all packages which are not currently installed:
Installed onto make the following step easy
MiKTeX and TeX Live can be installed in parallel if you observe the following.
bindirectories should be distinct
MiKTeX and TeX Live shouldn't share the same
bin directories. On Windows, this is usually not an issue.
On Mac/Linux, you can run this test before installing MiKTeX:
tlmgr=$(which tlmgr) if [ -z $tlmgr ]; then echo TeX Live is not installed echo OK to install MiKTeX for yourself or system-wide elif [ "$(dirname "$tlmgr")" == "/usr/local/bin" ]; then echo OK to install MiKTeX for yourself elif [ "$(dirname "$tlmgr")" == "~/bin" ]; then echo OK to install MiKTeX system-wide else echo OK to install for yourself or system-wide fi
You have to adjust the environment variable
PATH in order to switch between MiKTeX and TeX Live.
Alternatively, you can use absolute path names.
On Windows you can use the standalone version of the MiKTeX Setup Utility:
miktexsetup --package-set=basic download miktexsetup install
Visit the download page page to get the MiKTeX Setup Utility for Windows.
On a Mac, you simply mount the disk image file:
sudo hdiutil attach miktex-*.dmg
On Linux, the system package manager tools are command-line oriented anyway.
You can use MiKTeX Console to get the latest package updates.
If you want to install your own
.sty files, then you should copy the files into
tex/latex/mystuff relative to a new TEXMF root directory.
mkdir -p ~/mytexmf/tex/latex/mystuff
The last step can be carried out in MiKTeX Console.
You can create a scheduled a task (cron job) which uses the setup utility to manage a local package repository. See this article, for the details.
New MiKTeX binaries for Mac and Linux will be made available from time to time (say, 6 times a year).
If a new disk image (
.dmg) is available, you can use it to reinstall the executables. Your MiKTeX configuration will not be affected.
You get new MiKTeX executables via your package management system. Either automatically, or manually:
sudo apt-get update sudo apt-get upgrade miktex
You can use option
--job-name=NAME to set the name of the output file.
For example, you would run
pdflatex --job-name=dog cat.tex
to create the PDF file
dog.pdf (instead of
You can use the option
--output-directory=NAME to specify an alternative location for all output files.
For example, you would run
pdflatex --output-directory=/tmp mydoc.tex
to create the output
The MiKTeX executables log their actions into
.log files. The location of the log files depends on your OS platform. You can use MiKTeX Console, to find out the log directory.
If you find that a package is not in the package repository (and thus cannot be installed by MiKTeX): there are two possible reasons.
Please visit this page for an overview of available support options.
The following text is an adaption of the “TeX Live licensing, copying, and redistribution” statement found here.
If you want to redistribute and/or modify MiKTeX, please see the copying conditions.
As a general statement, the MiKTeX maintainers agree (at least within the shared purpose of working on MiKTeX) with the general principles and philosophy of the free software movement.
Therefore, to the best of our knowledge, all the software in MiKTeX meet the requirements of the Free Software Foundation's definition of free software, and the Debian Free Software Guidelines. In the rare cases of conflict, we generally follow the FSF. Furthermore, the material in MiKTeX should not require nonfree software to be useful.
In short, this means that all the material in MiKTeX may be freely used, copied, modified, and/or redistributed, subject to (in many cases) the sources remaining freely available.
Of course, you must not yourself claim copyright (especially with a proprietary license) on MiKTeX just because you redistribute it. Again, see the copying conditions for more information.