The LaTeX Project logoThe LaTeX Project

Publications in 2018

The dashundergaps package


The widows-and-orphans package


Managing forlorn paragraph lines (a.k.a. widows and orphans) in LaTeX

This article discusses the typographical problem of widows and orphans, i.e., first and last lines of a paragraph that due to a page break are separated from the rest of the paragraph.

Practical advice is given how to best avoid these situations and how to manage and resolve them when they arise. The final part discusses the package widows-and-orphans that will help here by automatically identifying and highlighting the problematical place in a longer document, in fact not just for widows and orphans but also for words hyphenated across a page break or math displays that got separated from their preceding paragraph.


Supporting color and graphics in expl3

The expl3 language has grown over the past decade to cover a wide range of programming tasks. However, at present there are a number of areas where expl3 offers little or no ‘core’ support and which will need functionality at this level. Here, I’ll be focussing on one in particular: color and graphics support.

See also video of the conference talk recorded by IMPA on YouTube: Through the looking glass, and what Joseph found there


A rollback concept for packages and classes

An article discussing the new rollback concept for packages and classes. Together with the latexrelease package this forms a comprehensive release management and compatibility solution for the LaTeX universe.

See also video of the talk recorded by IMPA on YouTube: What’s to stay, what’s to go – Compatibility in the LaTeX world and the corresponding handouts Compatibility in the LaTeX world.



TUG Conference 2018 (Rio de Janeiro, Brazil)

Unicode fonts with fontspec and unicode-math (slides)

While the fundamentals of both the fontspec and unicode-math packages have stayed the same, these packages have undergone a significant amount of development behind the scenes. While many users won’t be interested in the technical details, there are a number of feature additions that deserve broader discussion.

In this presentation I will cover the basics of these packages and best practices for using them, specifically including more recent features that users may not yet have seen. I will also try to give an overview of some technical details to focus on expl3 package development and lessons learned.

Video of the talk recorded by IMPA on YouTube: Unicode fonts with fontspec and unicode-math


Compatibility in the LaTeX world (handouts)

In this talk I take a look at the major disruptions that have rocked the LaTeX world in the past decades and how we handled them, covering some of the resulting consequences.

In the latest part of this saga a rollback concept for the LaTeX kernel was introduced (around 2015). Providing this feature allowed us to make corrections to the software (which more or less didn’t happen for nearly two decades) while continuing to maintain backward compatibility to the highest degree.

I will give some explanation on how we have now extended this concept to the world of packages and classes which was not covered initially. As the classes and the extension packages have different requirements compared to the kernel, the approach is different (and simplified). This should make it easy for package developers to apply it to their packages and authors to use when necessary.


siunitx: Past, present and future (slides)

Over the past decade, siunitx has become established as the major package for typesetting physical quantities in LaTeX. Here, I will look at the background to the package, and how it’s developed over the years. I’ll also lay out plans for the future: where are we going for version 3, and why is that important for users.

Conference paper published in TUGboat 39:2, 2018: siunitx: Past, present and future

Video of the talk recorded by IMPA on YouTube: siunitx: Past, present and future


Through the looking glass, and what Joseph found there (slides)

The LaTeX3 programming language, expl3, has grown over the past decade to form a strong and stable environment for solving problems in TeX. A key aim is to grow this work to cover a wider range of areas. In recent work, the team have been building on the existing code, and in particular the expandable FPU, to develop approaches to color, drawing and image support. In this talk, I will look at why this work is useful, what models we can work from and where the work has taken us so far.

Conference paper published in TUGboat 39:2, 2018: Supporting color and graphics in expl3

Video of the talk recorded by IMPA on YouTube: Through the looking glass, and what Joseph found there


A quarter century of doc (handouts)

In this talk I will re-examine my poor attempts at Literate Programming and how they have shaped (for the better or worse) the LaTeX world in the past decades. It’s about time to rethink some of the concepts invented back then—but can we still evolve?

Video of the talk recorded by IMPA on YouTube: What’s to stay, what’s to go – A quarter century of doc (I messed up the start so real talk starts at 00:02:30)


Creating teaching material with LaTeXML for the Canvas Learning Management System (slides)

In this presentation I will outline the system by which I produce PDF and HTML versions of course material for the honours project students in the School of Mechanical Engineering, The University of Adelaide.

This course material is broad and relatively dynamic in that it needs both frequent and periodic updates, and there is a soft need to have it available in a single document PDF and a hyperlinked HTML version. There are a number of tools to perform such a task, and LaTeXML was chosen for its robustness and relative simplicity. Nonetheless, the processing phase does involve some regexps to clean up the resulting HTML, which is not ideal from a maintenance perspective.

On the back end, this project could not have been accomplished without the API provided by the Learning Management System that we use, Canvas by Instructure. The web API allows HTML pages to be updated from the command line as well as PDF files to be automatically uploaded.

This system allows me to have a single source for the documentation for the course and makes updates almost entirely friction-free. While still cobbled together from a number of technologies (largely curl and shell scripts), it provides an interface that could be expanded for more general use.

In the future, as well as re-writing the code in Lua for cross-platform functionality, I also plan to overcome the problems involving use of embedded graphics with text, and mathematical content in general.

Conference paper published in TUGboat 39:2, 2018: The Canvas learning management system and LaTeXML

Video of the talk recorded by IMPA on YouTube: Creating teaching material with LaTeXML for the Canvas Learning Management System


Fly me to the moon: (La)TeX testing (and more) using Lua (slides)

Testing has been important to the LaTeX team since its inception, and over the years a sophisticated set of test files have been created for the kernel. Methods for running the tests have varied over the past quarter-century, following changes in the way the team work.

In recent years, the availability of Lua as a scripting language in all TeX systems has meant it has become the natural choice to support this work. With this as a driver, the team have developed l3build for running tests automatically. Building on the core work, l3build has grown to provide a powerful approach to releasing packages (and the LaTeX kernel) reliably.

Here, I’ll look at the background of our testing approach, before showing how and why Lua works for ushere.

Video of the talk recorded by IMPA on YouTube: Fly me to the moon: (La)TeX testing (and more) using Lua




A General LuaTeX Framework for Globally Optimized Pagination (pre-peer reviewed version)

This is the pre-peer reviewed version of the article, it will be replaced by the peer reviewed version after the 12 month embargo phase. This article may be used for non-commercial purposes in accordance with Wiley Terms and Conditions for Self-Archiving.

The peer reviewed and published version is now available as A General LuaTeX Framework for Globally Optimized Pagination (journal version).

This article is an extended version (37 pages) of the 2016 ACM article “A General Framework for Globally Optimized Pagination”, providing a lot more details and additional research results.


TeX.StackExchange cherry picking: expl3

In this article Gregorio presents some examples of macros built with expl3 in answer to users’ problems presented on tex.stackexchange.com to give a flavor of the language and describe its possibilities. Topics include list printing, string manipulation, macro creation, and graphics.


New rules for reporting bugs in the LaTeX core software

An article discussing the new workflow for reporting bugs in the core LaTeX software. It also covers the underlying move of the LaTeX sources from an SVN to a Git-based source control system and as a result the retirement of the old LaTeX bug database.


Publications by year

By selecting an entry in the table of contents 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 by topic

A different view is given on Publication by Topic page where the Publications are ordered by important topics.

Books by project members and others

A list of books that we think are useful is given on the Books Page. By buying documentation through this website you support the volunteer work of project members to keep LaTeX useful for you.