LaTeX3 High-Level Concepts
l3packages collection is contains implementations for aspects of the LaTeX3 kernel, dealing with higher-level ideas such as the Designer Interface. The packages here are considered broadly stable (The LaTeX3 Project does not expect the interfaces to alter radically). These packages are build on LaTeX2ε conventions at the interface level, and so may not migrate in the current form to a stand-alone LaTeX3 format.
All of the material in the collection requires the LaTeX3 base layer package
l3kernel. The two packages must be installed in matching versions: if you update
l3packages, make sure that
l3kernel is updated at the same time.
Currently included in the CTAN release of
l3packages are the following bundles:
l3keys2e package allows keys defined using
l3keys to be used as package and class options with LaTeX2ε. This is tied to the method the existing kernel uses for processing options, and so it is likely that a stand-alone LaTeX3 kernel will use a very different approach.
xfp package provides a document-level interface for the LaTeX3 FPU. As such, it is a wrapper around the core
\fp_eval:n function but does not require code syntax. It provides the expandable command
\fpeval, which can be used inside for example
\edef or contexts where TeX requires a number.
xfrac package uses the interface defined by
xtemplate to provide flexible split-level fractions via the
\sfrac macro. This is both a demonstration of the power of the template concept and also a useful addition to the available functionality in LaTeX2ε.
xparse package provides a high-level interface for declaring document commands, e.g., a uniform way to define commands taking optional arguments, optional stars (and others), mandatory arguments and more.
xtemplate package provides an interface for defining generic functions using a key=val syntax. This is designed to be "self-documenting", with the key definitions providing information on how they are to be used.
Discussion concerning the approach, suggestions for improvements, changes, additions, etc. should be addressed to the list LaTeX-L.
You can subscribe to this list by sending mail to
with the body containing
subscribe LATEX-L <Your-First-Name> <Your-Second-Name>
The issue tracker for LaTeX3 is currently located on GitHub.
Please report specific issues with LaTeX3 code there; more general discussion should be directed to the LaTeX-L list.
The LaTeX3 Project
Development of LaTeX3 is carried out by The LaTeX3 Project. Currently, the team members are
- Johannes Braams
- David Carlisle
- Robin Fairbairns
- Morten Høgholm
- Bruno Le Floch
- Thomas Lotze
- Frank Mittelbach
- Will Robertson
- Chris Rowley
- Rainer Schöpf
- Joseph Wright
Former members of The LaTeX3 Project team were
- Michael Downes
- Denys Duchier
- Alan Jeffrey
- Martin Schröder
The development team can be contacted by e-mail: <firstname.lastname@example.org>; for general LaTeX3 discussion the LaTeX-L list should be used.
Copyright (C) 1998-2011,2015-2017 The LaTeX3 Project
All rights reserved.
Download the contents of this package in one zip archive (2.0M).
l3packages – High-level LaTeX3 concepts
The bundle holds prototype implementations of concepts for a LaTeX designer interface, to be used with the experimental LaTeX kernel as programming tools and kernel support.
Packages provided in this release are:
- l3keys2e, which makes the facilities of the kernel module l3keys available for use by LaTeX 2e packages;
- xfrac, which provides flexible split-level fractions;
- xparse, which provides a high-level interface for declaring document commands; and
- xtemplate, which provides a means of defining generic functions using a key-value syntax.
All the files of the bundle are also available in the Subversion (SVN) repository of the LaTeX3 Project.
The LaTeX Project Public License 1.3c|
|Maintainer||The LaTeX Team|
|Contained in||TeX Live as l3packages|
|MiKTeX as l3packages|
work done for the project to upgrade LaTeX|
developing version of new software
support for development of (La)TeX macros