LuaTeX: turbocharged TeX

About a year ago I was Googling for information on how I could typeset my Arabic study notes (I’d been studying Arabic in my spare time for a few years). During my searches I came across a couple of videos published on the fabulous River Valley web site. The videos in question were presented by Professor Idris Hamid:

Those talks demonstrated some truly incredible typesetting of Arabic, using OpenType fonts with Hans Hagen’s amazing ConTeXt system and a new TeX engine, called LuaTeX. It is not overstating the case to say that I was totally blown away; in short, being a geek, it completely “pinged my geek genes” and I just had to find out more about how this was being done. Little did I know that I would be parking my Arabic studies in favour of resurrecting my C programming.

So, what makes LuaTeX so exciting? It is hard to say in just a few lines but, for me, the most exciting things are:

  1. It is being very actively developed by an amazing team of people, including Taco Hoekwater, Hans Hagen and others.
  2. The integration of a real scripting language into the TeX engine. This language is called Lua (hence Lua + TeX).
  3. The ability to use OpenType fonts, including fonts with the MATH table.
  4. Unicode UTF8 for input.
  5. Access to TeX’s “innards”, such as node structures, linebreaking, page building and (PDF) a gazillion other things.
  6. You can extend it with plugins (i.e., DLLs on Windows, .so files on Linux etc).
  7. The source code can be downloaded at any time (via SVN) so you can build it yourself, yes including on Windows!

Over the course of the next few weeks and months I will post some tutorials on LuaTeX, based on what I’ve learnt over the last year or so.