[Tex/LaTex] TeX Live and MiKTeX: underlying basic difference

miktextexlive

The two standard distributions for (La)TeX, MiKTeX and TeX Live. Just to know the difference between them I searched this site and came across a variety of differences, some of them being

  • MiKTeX is Windows based whereas TeX Live is developed for many platforms
  • TeX Live is more secure than MiKTeX
  • MiKTeX doesn't freeze and updates are always available

Now, What I would like to know is in the underlying development of TeX, is there a difference between how TeX Live implements it and MiKTeX implements it. In depth what I would to know is that ,

  1. Is there any difference in the algorithmic approach of implementation in TeX Live and MiKTeX
  2. Which of the above is efficient in terms of execution and optimization

Best Answer

The question is what you are talking about, I would say there are (at least) three different levels:

  • the actual program code for the engines (pdftex, luatex, etc)
  • the TeX, MetaFont, MetaPost, fonts, support files
  • the infrastructure - update manager etc

Concerning the first item, the program code, I would say they agree to more than 90%. Take the pdftex engine as an example: The code is developed independently, and pulled into TeX Live regularly, as well as into MikTeX. The algorithms that implement line breaking, page breaking, etc etc are 100% the same. What has changed are adaptions to make it compile on different archs. That said, I don't believe that there is any noticable speed difference.

Concerning the second item, the support files, they are also 99.99% the same, because both of us pull from CTAN.

The only real difference is in the infrastructure, meaning: integration into the OS, update manager etc etc. Here MikTeX's windows GUI are probably better looking, or better integrated (I don't know, I am TeX Live only), because he is targeting only Windows, while we have a gui that looks the same on all platforms.

I want to add one more point where there are differences, and that is in the handling of updmap files, format files, trees, texmf.cnf files. Here both of us take different approaches and different scripts. But these files are only used to generate other input files, which are then evaluated by the various engines. That means it is only during package installation/removal time where these things matter.

Bottom line as far as I can see: algorithmically wrt the engines, they are absolutely the same. Algorithmically wrt the management they are 100% different ;-)

Hope that helps

Norbert TeX Live Team

Related Question