CTAN update: xpackages

CTAN Announcements ctan-ann at dante.de
Sat Sep 5 21:34:08 CEST 2009

This update should reach your local mirror within a day.

Jim Hefferon
Saint Michael's College


The following information was provided by our fellow contributor:

Name of contribution: xpackages
Version number: SVN 1509
Author's name: LaTeX3 Project
Location on CTAN: /macros/latex/contrib/xpackages
Summary description: High-level LaTeX3 concepts
License type: lppl

Announcement text: 
The xpackages bundle: high-Level LaTeX3 concepts

The xpackages are experimental, high-level parts of LaTeX3. They
are designed to provide a link between the programming system 
(expl3) and the user. Each xpackage is focussed in a different
area, for example creating document commands (xparse), 
producing flexible formatting functions (template), etc.

At present, the xpackages are designed to be loaded on top 
of LaTeX2e:

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.

To use the xpackages, you will need to have the expl3 package
available. This provides the LaTeX3 coding environment on which
the xpackages are built.

This release (SVN 1509)

Since the last CTAN snap-shot of the xpackages, a lot of work
has been carried out revising the xparse package. Much of the
code of xparse has been rewritten and a lot of thought has gone
into the interface. The functions;
  - \DeclareDocumentCommand
  - \DeclareDocumentEnvironment
  - \IfNoValue(TF)
  - \IfBoolean(TF)
are now considered stable. This means that xparse can be used
to generate functions for real documents as well as for 

Some parts of xparse may still be revised, as functions such as:
  - \DeclareExpandableDocumentCommand
  - \DeclareDocumentCommandInterface
  - \DeclareDocumentCommandImplementation
  - \IfValue(TF)
are not yet regarded as stable. However, this will depend on 
feedback from other programmers regarding the usefulness of
these facilities.

The method for defining a function in xparse:

 { m o +m }

is also now stable. Some work is still being done on the 
"processor" concept, but the team hope this will not take too
long and so should not cause problems for package authors.

The second notable change in this release is the addition of
the l3keys2e package in the xtras bundle. The xtras bundle is
intended to hold xpackages which are tided closely to LaTeX2e,
and so provide functionality which will be implemented 
differently in a LaTeX3 format. l3keys2e allows keyval input
defined using l3keys to be used as LaTeX2e package or class 
options. This is done in a similar manner to that used by
the kvoptions package.

Finally, the addition of the xtras bundle means that the 
TDS organisation of the xpackages has slightly altered. It now
reflects the SVN structure:


Looking forward

The ideas in the template package are currently being examined,
and the team expect to update template in the coming weeks.
There is likely to be an update to CTAN once this process is
complete so that template can move to stable status.
The LaTeX3 Project


This package is located at 
.  More information is at
(if the package is new it may take a day for that information to 
appear).  We are supported by the TeX Users Group http://www.tug.org .  
Please join a users group; see http://www.tug.org/usergroups.html .

More information about the Ctan-ann mailing list