It is my understanding that in all the major contemporary TeX distributions (TeX Live, MikTeX, MacTex), all the console-based commands for running a TeX engine (e.g. tex, latex, pdftex, xetex, lualatex, context, etc.) also load one of three formats: Plain TeX, LaTeX2e, or ConTeXt.

Does any of these distributions make it possible to run a TeX engine from the console without preloading any format whatsoever, not even Plain TeX?

1 Answer 1


Yes: IniTeX. Historically, this was a separate program but today is accessed by passing the -ini switch

pdftex -ini

This is needed to actually build formats: only in IniTeX mode can one use \dump to create a format. (Engines other than LuaTeX can also only read \patterns in IniTeX mode.)

  • By the way, when I run pdftex -ini, will the engine recognize the extended primitives that pdftex provides on top of core TeX? If so, is there a way to run an engine that only recognizes core TeX, and that doesn't preload any format?
    – Evan Aad
    Aug 26, 2017 at 10:49
  • 2
    @EvanAad You also need the -etex switch to enable the extensions, though you get a somewhat odd selection without it (with pdfTeX you get the pdfTeX extensions but not the e-TeX ones, for example). Of course you are likely best using just tex -ini if you want exactly TeX90.
    – Joseph Wright
    Aug 26, 2017 at 12:45
  • 1
    @EvanAad Note that you will get the same outcomes with TeX90 and pdfTeX even if you enable all of the extensions but use a source that doesn't use them. (That's largely true for XeTeX too, whilst LuaTeX is explicitly not 100% back-compatible.) So if you are doing low-level experiments you don't really need to worry about explicitly excluding the extensions.
    – Joseph Wright
    Aug 26, 2017 at 12:59

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .