LATEX3 NewsIssue 7, February 2012

After the ‘Big Bang’

A TeX-based regex engine

The last LATEX3 News gave details of the ‘Big Bang’, inwhich the team have revised the layout and coverage ofthe LATEX3 codebase. This process has made the status of different modules clearer, so that both the teamthemselves and everyone else know what is going on.
The ‘Big Bang’ changes were not shipped to ctan
until after the TEX Live 2011 freeze, as we did not wantto end up with a dvd containing badly broken code.
The update went to ctan soon after TEX Live 2011
shipped, and has now propagated around the world.
The new package naming (l3kernel, l3packages andl3experimental) has caused some surprises for a small
number of users, but there have not been any major
issues with the changes at the code level.
The ‘Big Bang’ has attracted attention from programmers outside of the LATEX3 team, with usefulfeedback arriving on the LaTeX-L list and TeX.sx, inparticular. One area that this has highlighted is theneed to document carefully when changes to the ‘stable’ parts of the LATEX3 codebase occur. All changes tol3kernel now come with an explicit date for the change
in the documentation, which means that programmers
can check exactly when the features they want wereintroduced.
Another key part of supporting LATEX3 use beyond
the team is making it easy to check on the version ofLATEX3 installed. To support that, the file date of themain expl3 package is now set each time there is a release of the LATEX3 material to ctan. This means that
the LATEX 2ε \@ifpackagelater test can be used reliably to detect if the installed version of LATEX3 is goingto supply the functions that a programmer is using.

Bruno Le Floch has been improving the efficiency androbustness of a number of LATEX3 functions. Most
notably, he has created a purely TEX-based regularexpression (regex) system for LATEX3. This is currently
experimental, but is already proving useful and will
hopefully stabilise over the coming months.
Bruno’s regex system works with all of the supported engines (pdfTEX, XETEX and LuaTEX). He has
implemented the core ideas of standard regex systems,
along with some TEX-specifics to allow matching andreplacing the content of token lists by category code.

Deforming boxes
Additions to both the LATEX3 stable material and moreexperimental modules continue. Joseph Wright has
been working on adding ‘native’ drivers for LATEX3 tosupport box transformations. These allow box rotation,clipping and scaling with the drivers dvips, xdvipdfmx
and direct pdf output.
The development of clipping support for thexdvipdfmx driver has also allowed us to suggest improvements to the LATEX 2ε graphics drivers, enablingclipping with the XETEX engine.

xparse improves
The xparse module has been overhauled, making theinternal code more efficient and adding additional argument types. This has also allowed us to deal witha number of internal bugs, meaning that argument
grabbing is now more reliable.
The argument grabbers themselves have been reworked so that in the event of an error, the user will
normally get a meaningful message from TEX rather
than one pointing to xparse internal function names.
This should help in tracking down erroneous input inreal documents.

The galley
As detailed in the last issue, work on the galley module
has been continuing. Discussion of Joseph’s reimplementation of the galley concepts highlighted some
important areas to work on, with the nature of thetemplate concept being particularly significant.
More work is still needed to finalise the galley concepts, but it is clear that some of this will require feedback from other areas. Joseph therefore hopes to finish
work on the current round of galley improvements by
the end of February, and to return to them once someother areas have been addressed.

Relationships between document items
The tug2011 meeting took place in October in India.
Frank Mittelbach spoke there about ideas for describing
the design relationship between document elements.
These ideas allow a document designer to specify thedesign of a document element based on its context
within a document, and progress in this area will likely
lead to an extension in the xtemplate system.

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