e-TeX and LaTeX

Our fellow moderator Joseph wrote on his blog www.texdev.net, that from the next release on LaTeX2e will require e-TeX.

Why? Wasn’t LaTeX2e intended to be stable, nowadays only getting bug fixes and new features? Could it break something? Well, e-TeX is has been finished in 1999. In December 2003, the LaTeX team wrote:

We expect that within the next two years, releases of LaTeX will change modestly in order to run best under an extended TeX engine that contains the e-TeX primitives, e.g., e-TeX or pdfTeX.

So we have been warned a long time ago. 🙂 Well, e-TeX is in the major TeX distributions, and it is enabled by default. And note, that the latexrelease pack­age pro­vides both for­ward and back­ward com­pat­i­bil­ity of the LaTeX ker­nel.

Why to use e-TeX? One important reason is, that TeX originally has 256 registers, such as count registers for counters and dimen registers for lengths (and skip, muskip, toks, insert and box registers), and e-TeX makes 32768 registers available. Since 2015, LaTeX is already using the extended range if e-TeX is detected.

But there’s more, such as a bunch of additional primitives. Let’s summarize a bit:

  • Extended register range
  • \unexpanded, making the next token unexpandable
  • \unless that lets you negate \if commands
  • \readline for reading in text with special characters, such as %, $,\, &, _, or ^
  • Bidirectional typesetting
  • \detokenize for converting tokens into simple text strings
  • The \middle delimiter that works like \left and \right

Just to mention what came first to my mind.

e-TeX and expl3 together is the programming layer that LaTeX3 is build on. Now LaTeX2e is committed to it as well.

Leave a Reply

Your email address will not be published. Required fields are marked *