LATEX3 News
Issue 1, February 2009

Welcome to LATEX3

What’s happening soon

Momentum is again starting to build behind theLATEX3 project. For the last few releases of TEX Live,the experimental programming foundation for LATEX3
has been available under the name expl3. Despite large
warnings that the code would probably change in thefuture, we wanted to show that there was progress
being made, no matter how slowly. Since then, somepeople have looked at the code, provided feedback,and — most importantly — actually tried using it.
Although it is yet early days, we believe that the ideas
behind the code are sound and there are only ‘cosmetic
improvements’ that need to be made before expl3 isready for the LATEX package author masses.

So what do we want to change? The current expl3
codebase has portions that date to the pre-LATEX 2εdays, while other modules have been more recentlyconceived. It is quite apparent when reading throughthe sources that some unification and tidying up would
improve the simplicity and consistency of the code. In
many cases, such changes will mean nothing more thana tweak or a rename.
Beyond these minor changes, we are also re-thinking
the exact notation behind the way functions are defined. There are currently a handful of different typesof arguments that functions may be passed (from an
untouched single token to a complete expansion of atoken list) and we’re not entirely happy with how theoriginal choices have evolved now that the system has
grown somewhat. We have received good feedback fromseveral people on ways that we could improve the argument syntax, and as part of the upcoming changes
to the expl3 packages we hope to address the problems
that we currently perceive in the present syntax.

What currently exists
The current LATEX3 code consists of two main branches:
the expl3 modules that define the underlying programming environment, and the ‘xpackages’, which are asuite of packages that are written with the expl3 programming interface and provide some higher-level functionality for what will one day become LATEX3 proper.
Both expl3 and parts of the xpackages are designed tobe used on top of LATEX 2ε , so new packages can takeadvantage of the new features while still allowing to be
used alongside many of the vast number of LATEX 2εpackages on ctan.

What’s happening now
In preparation for a minor overhaul of the expl3 code,
we are writing a comprehensive test suite for eachmodule. These tests allow us to make implementation
changes and then test if the code still works as before.
They are also highlighting any minor shortcomings oromissions in the code. As the tests are being written,
our assumptions about what should be called what andthe underlying naming conventions for the functions
and datatypes are being questioned, challenged, andnoted for further rumination.
At the time of writing, we are approximately halfway through writing the test suite. Once this task iscomplete, which we plan for the first half of 2009, we
will be ready to make changes without worrying about
breaking anything.

What’s happening later
After the changes discussed above are finished, wewill begin freezing the core interface of the expl3 modules, and we hope that more package authors will beinterested in using the new ideas to write their owncode. While the core functions will then remain unchanged, more features and new modules will be added
as LATEX3 starts to grow.
Some new and/or experimental packages will bechanging to use the expl3 programming interface,
including breqn, mathtools, empheq, fontspec, andunicode-math. (Which is one reason for the lack ofprogress in these latter two in recent times.) There will
also be a version of the siunitx package written in expl3,
in parallel to the current LATEX 2ε version. These developments will provide improvements to everyday LATEX
users who haven’t even heard of the LATEX3 Project.
Looking towards the long term, LATEX3 as a document preparation system needs to be written almost
from scratch. A high-level user syntax needs to be designed and scores of packages will be used as inspiration
for the ‘out-of-the-box’ default document templates.
LATEX 2ε has stood up to the test of time — some fifteen years and still going strong — and it is now time
to write a successor that will survive another score.

LATEX3 News, and the LATEX software, are brought to you by the LATEX3 Project Team; Copyright 2009, all rights reserved.