just as massenet prepares werther to kill himself (on the radio), up pops the daemon and says:
The following information was provided by the package's contributor.
Name of contribution: expl3 Author's name: LaTeX Team Location on CTAN: /macros/latex/contrib/expl3 Summary description: Low-level LaTeX3 programming conventions License type: lppl
Announcement text given by the package's contributor:
The expl3 bundle: Low-level LaTeX3 programming conventions
The files of the expl3 bundle provide a low-level API for TeX programmers with special syntax conventions, completely separating it from document level syntax. Hence, the commands provided are not intended for use at the document level nor for use in describing design layouts in document class files.
This API provides the foundation on which the LaTeX3 kernel and other advanced extensions are built. Special care has been taken so that they can be used within a LaTeX2e context as regular packages.
The TeX and eTeX primitives are all given a new name according to these conventions. However, in the main direct use of the primitives is not required or encouraged: the expl3 modules define an independent low-level LaTeX3 programming language.
At present, the expl3 modules are designed to be loaded on top of LaTeX2e:
usepackage{expl3}
In time, a LaTeX3 format will be produced based on this code. This allows the code to be used in LaTeX2e packages now while a stand-alone LaTeX3 is developed.
This release (SVN 1733)
Since SVN 1550, internal changes have been made to switch from cs_new:Nn to cs_new:npn (and of forth) for performance reasons. Some numerical code has switched from using num to int storage.
The messaging system (l3msg) now allows messages to use up to four arguments. At the same time, the recovery code concept has been removed from l3msg, which now focusses purely on messages. These changes may therefore require changes to other code. Kernel messages are now divided up into groups, so that they can be named more freely. More details of these changes are included in l3obsolete.txt
In the l3keys module, there have been some improvements to choices. An error is now issued if .generate_choices:n is given before .choice_code:n has defined the necessary code. The value l_keys_choice_int is now indexed from 0, rather than from 1, so that it is more easily used with if_case:w and so on.
New functions chk_if_free_cs:c and seq_if_in:NV(TF) have been added. The exp_args:x function has been removed from the core of expl3, as it is only of significant benefit when using LuaTeX.
Documentation has been improved at various places. Some changes have been made the font loading system, so that the use of lmodern is documented, and details of using l3doc.cfg to change the behaviour are provided.
The LaTeX3 Project
Users may view the package catalogue entry at http://www.tex.ac.uk/tex-archive/help/Catalogue/entries/expl3.html or they may browse the package directory at http://www.tex.ac.uk/tex-archive//macros/latex/contrib/expl3
the catalogue entry will change overnight (though the difference will hardly be noticeable).
Robin Fairbairns
For the CTAN team