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?


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 '17 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 '17 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 '17 at 12:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.