The LaTeX Project logoThe LaTeX Project


Below you will find links to Portable Document Format (PDF) versions of various articles and papers published by the LaTeX3 project and links to videos of their conference presentations. Some of this list has been assembled 'after the fact'; please inform us if you notice anything missing.

Publications in 2016

R.I.P. — S.P.Q.R Sebastian Patrick Quintus Rahtz (13.2.1955–15.3.2016)

A memorial for our friend and colleague Sebastian who passed away far too young.

ACM DocEng 2016 Symposium (Vienna, Austria)

ACM DL Author-ize serviceA General Framework for Globally Optimized Pagination
Frank Mittelbach
DocEng '16 Proceedings of the 2016 ACM Symposium on Document Engineering, 2016

This paper presents an algorithm for globally optimized pagination using dynamic programming and discusses its theoretical background. It was awarded the “ACM Best Paper Award” at the DocEng 2016 conference. The paper is the basis for the work demonstrated at BachoTek and TUG 2016 (the order is reversed as submission deadline for DocEng was already in March but the conference was in September).

The above link enables free download of the paper from the ACM Digital Library.

TUG 2016 Conference (Toronto, Canada)

In this talk a framework for globally optimizing pagination of documents containing floats is demonstrated. As the main example Alice in Wonderland by Lewis Carroll was chosen. If such a document is formatted using standard LaTeX it will result in a pagination with many issues as demonstrated here. If the same document is formatted using the new framework then one will get a globally optimized solution as shown here. At the moment the framework is still in its early stages and not yet publically available as further research and development is needed.

Publications in 2015

TUG 2015 Conference (Darmstadt, Germany)

Hidden behind this title is a presentation of the new LaTeX kernel compatibility concept that was introduced with 2015 release of LaTeX (42/2 years after the first release).

The box-glue-penalty algebra of TeX and its use of \prevdepth Flattr this

This article discusses certain aspects of TeX’s approach to line breaking and its consequences for automatically calculating the right amount of vertical space between lines in more complex layouts.

Publications in 2014

How to influence the position of float environments like figure and table in LaTeX? Flattr this

In 2012, a question “How to influence the float placement in LaTeX” was asked on TeX.stackexchange and as there had been many earlier questions around this topic I decided to treat the topic in some depth and explain most of the mysteries that the underlying mechanism poses to people trying to use it successfully. Once my answer appeared on the web, people asked to see this converted into an article and I foolishly replied “only if this answer ends up becoming a `great’ answer” (gets 100 votes). At the time of writing this article, the answer stands at 222 votes, so I had better make good on that promise.

l3build — A modern Lua test suite for TeX programming Flattr this

Regression tests are an important tool in any moderately complex programming environment. They allow the programmer to make extensive changes to their code while providing confidence that something that used to work still does. Extensive regression test suites have been an essential component of the maintenance and development of LaTeX2e and LaTeX3. A regression test suite is typically composed of a number of individual files that contain one or more testable units of the code being tested. A testable unit might be either a certain computation with an expected outcome, a series of logic tests, or—in particular for TeX-based code—material that is typeset and intended to achieve some particular formatting. During code development and before any new code is released to the public, this test suite can be compiled to ensure that any changes to the code have not introduced bugs or changed the behaviour compared to previous versions. As bugs in the code are reported, minimal examples demonstrating the bug often form test files of their own, showing that the bug has been fixed and won’t re-occur. As TeX-based code operates in at least three different `modes’ (mouth, stomach, and output), regression testing is more complex than simply asserting the outcome of certain programming logic. As part of the work of the LaTeX3 project, a new Lua-based testing environment has been written to support ongoing development. This testing environment, presented at the 2014 TUG conference in Portland, is suitable for use by the general TeX community.

TUG 2014 Conference (Portland, USA)

Publications in 2013

TUG 2013 Conference (Tokyo, Japan)

E-TeX: Guidelines to future TeX extensions — revisited Flattr this

In 1990 shortly after Don Knuth announced TeX 3.0 Frank gave a paper analyzing TeX’s abilities as a typesetting engine. This paper now revisits the findings from more than two decades ago to see what has been achieved since then, and perhaps more importantly, what can be achieved now with computer power having multiplied by a huge factor and last not least by the arrival of a number of successors to TeX which have lifted some of the limitations identified back then.

Publications between 2012 and 2010

TUG 2012 Conference (Boston, USA)

TUG 2011 Conference (Trivandrum, India)

Reflections on the history of the LaTeX Project Public License (LPPL) - A software license for LaTeX and more Flattr this

In August 2010 the LaTeX Project Public License (LPPL) was finally listed on the Open Source Initiative (OSI) web page as a free software license. This marks the endpoint of a long set of discussions around the TeX community’s predominant license. This article reflects on the history of the license; the way it came about and the reasons for its development and content. It explains why it was chosen even though alternative free licenses have been available at least from 1990 onwards. It appeared in the anniversary TUGboat issue No.100, TUGboat volume 32, number 1.

Unicode mathematics in LaTeX: advantages and challenges

In this paper Will discusses Unicode mathematics in the context of LaTeX with the unicode-math package.

TUG 2010 Conference (San Francisco, USA)

From \newcommand to \DocumentNewCommand with xparse

An discussion by Joseph Wright of some of the new possibilities offered by the xparse package compared to those offered by \newcommand.

Beyond \newcommand with xparse

An introduction by Joseph Wright to the xparse package, a package that provides a powerful mechanism to define new user commands with different number of optional arguments, stars, etc.

Programming key-value in expl3

In this paper Joseph Wright discusses the key-value implementation that is provided as part of the LaTeX3 programming language expl3.

Publications in 2009 and earlier

TUG 2009 Conference (Notre Dame, Indiana, USA)

LaTeX3 programming: External perspectives

An introduction by Joseph Wright on the current implementation of the expl3 programming extensions for LaTeX3, highlighting recent changes and improvements.

TUG 2008 Conference (Cork, Irland)

TUG 2007 Conference (San Diego, USA)

pdfTeX workshop 2005/09/24-26

HTML presentation of the material from the September 2005 pdfTeX workshop between Thanh The Han, Morten Høgholm, and Frank Mittelbach. The main topic of the workshop was grid typesetting. The material is available both for on-line browsing and download as a zip file (1364 kB).

EuroTeX 2005 notes

HTML presentation of the work done by the LaTeX project team during EuroTeX 2005. It is available both for on-line browsing and download as a zip file (923 kB).

Some note on templates

A discussion by Lars Hellström of the current implementation of the concept of templates. This paper is scheduled for publication in TUGboat.

Formatting documents with floats – A new algorithm for LaTeX2e

At the GUTenberg meeting in Toulouse, Frank presented a paper about a new output routine that is intended to enhance the way LaTeX deals with floating objects in multicolumn environments.

TUG99 talk

The talk given by project team members at the TUG conference in Vancouver on models for user-level interfaces, designer-level interfaces in LaTeX3. Prototype implementations are in Experimental code (Experimental code was retired in 2016).

Notes on Oldenburg e-TeX/LaTeX3/ConTeXt meeting

Ideas for e-TeX/NTS

Early in 1998 a meeting was held between the e-TeX project and the LaTeX3 project. From this meeting we made some notes. A separate topic during the meeting was the improvement of TeX’s math typesetting.

Default docstrip headers

An article about docstrip headers appeared in TUGboat volume 19, number 2. It describes a change in the wording of the default headers and gives some hints on how to have your own specific headers on your files.

A regression test suite for LaTeX2e

An article describing the regression test suite that has been built for LaTeX over the past years. It describes some of the history and outlines the results we have had from it.

The LaTeX3 Programming Language—A syntax proposal for TeX macro programming

An article giving a brief overview of the first release of expl3: a proposed LaTeX3 programming language. The article appeared in TUGboat volume 18, number 4. For the current state of the LaTeX3 programming language, please see the documentation in the CTAN distribution of expl3.

Language information in structured documents: a model for mark-up and rendering

In a conference on multilingual typesetting in Japan and later at a TUG conference a new model is presented for dealing with language information in structured documents. The article appeared in the conference proceedings, TUGboat volume 18, number 3.

Application-independent representation of text for document processing – will Unicode suffice?

A paper about application-independent representation of text for document processing; it discusses some of the Unicode shortcomings.

LaTeX2e encoding interfaces

A presentation held at Brno about the encoding interfaces that LaTeX offers. It discusses the various issues related to input and output encodings.