Why do I need Lua or LaTeX3 in a plain old technical document?
Developments in Lua and LaTeX3 are separate, but there is some convergence in the sense that both address issues for LaTeX programmers. It's also the case that the benefits you will see from these developments depend on the nature of your documents.
LuaTeX adds to TeX functionality which is not available any other way, but also makes general programming a lot easier. The general programming stuff helps package authors. For example, Lua is used by fontspec
when loaded in LuaLaTeX to find fonts system. Some of the new abilities show up in particular areas, where TeX 'runs out of steam'. One that stands out is in Arabic typesetting, which is very context-dependent and which TeX does not do so well at. LuaTeX-based approaches can address this type of issue.
LaTeX3 developments are also focussed at the programming end the moment making it easier to maintain packages. For example, XeLaTeX users tend to use fontspec
, and fontspec
is written in the LaTeX3 programming system. In the longer term, the aim is to address a number of underlying issues with LaTeX in an eventual LaTeX3 format. This should wrap up a lot of package functionality kernel, and also allow us to address some long-standing awkward issues (for example, that adding vertical space can have odd effects due to the way TeX handles the main vertical list). A richer set of kernel tools should also cut down on multiple-package compatibilities. Now, it's possible that this will have very little impact on your documents, other than perhaps giving you shorter preambles.
I'm intrigued by LuaTeX and LaTeX3, but honestly, I don't know what benefit these will bring to a document like mine.
I'm only a TeX beginner. I've been one going on for 25 years.
I won't comment on LaTeX3, but I've found using Lua really quite helpful in lifting a number of long standing limitations on my TeX usage.
Specifically Lua helps very much in one specific area - helping TeX talk to the outside world.
I've written code to enable TeX to talk to a RDBMS, namely SQLite, using LuaSQL. But switching to another DB should be possible.
I've also written code to enable a TeX file to parse a YAML config file using LYAML.
Fortunately, both these libraries are packaged for Debian.
Both of these use cases would be very difficult with pure TeX, but are relatively straightforward using Lua. For some reason, such usage does not appear to be widespread, though.