Publications in 2018
TUG Conference 2018 (Rio de Janeiro, Brazil)
While the fundamentals of both the
unicode-mathpackages 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
expl3package 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.
Video of the talk recorded by IMPA on YouTube: What’s to stay, what’s to go – Compatibility in the LaTeX world
siunitx: Past, present and future (slides)
Over the past decade,
siunitxhas 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.
Video of the talk recorded by IMPA on YouTube: siunitx: Past, present and future
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.
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)
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
curland 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.
Video of the talk recorded by IMPA on YouTube: Creating teaching material with LaTeXML for the Canvas Learning Management System
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
l3buildfor running tests automatically. Building on the core work,
l3buildhas 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 rollback concept for packages and classes (submitted version)
- Frank Mittelbach
- Draft for submission to TUGboat, 2018
In 2015 a rollback concept for the LaTeX kernel was introduced. 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.
In this paper we explain 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.
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
A General LuaTeX Framework for Globally Optimized Pagination (pre-peer reviewed version)
- Frank Mittelbach
- Paper submitted to the Computational Intelligence Journal (Wiley) in 2017, accepted January 2018
Pagination problems deal with questions around transforming a source text stream into a formatted document by dividing it up into individual columns and pages, including adding auxiliary elements that have some relationship to the source stream data but may allow a certain amount of variation in placement (such as figures or footnotes).
Traditionally the pagination problem has been approached by separating it into one of micro-typography (e.g., breaking text into paragraphs, also known as h&j) and one of macro-typography (e.g., taking a galley of already formatted paragraphs and breaking them into columns and pages) without much interaction between the two.
While early solutions for both problem areas used simple greedy algorithms, Knuth and Plass (1981) introduced in the ’80s a global-fit algorithm for line breaking that optimizes the breaks across the whole paragraph. This algorithm was implemented in TeX’82 (see Knuth (986b)) and has since kept its crown as the best available solution for this space. However, for macro-typography there has been no (successful) attempt to provide globally optimized page layout: All systems to date (including TeX) use greedy algorithms for pagination. Various problems in this area have been researched and the literature documents some prototype development. But none of them have been made widely available to the research community or ever made it into a generally usable and publicly available system.
This paper is an extended version of the work by Mittelbach (2016) originally presented at the DocEng ’16 conference in Vienna. It presents a framework for a global-fit algorithm for page breaking based on the ideas of Knuth/Plass. It is implemented in such a way that it is directly usable without additional executables with any modern TeX installation. It therefore can serve as a test bed for future experiments and extensions in this space. At the same time a cleaned-up version of the current prototype has the potential to become a production tool for the huge number of TeX users world-wide.
The paper also discusses two already implemented extensions that increase the flexibility of the pagination process (a necessary prerequisite for successful global optimization): the ability to automatically consider existing flexibility in paragraph length (by considering paragraph variations with different numbers of lines) and the concept of running the columns on a double spread a line long or short. It concludes with a discussion of the overall approach, its inherent limitations and directions for future research.
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.
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.
- Enrico Gregorio
- Paper published in TUGboat 39:1, 2018
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.
- Frank Mittelbach
- Paper published in TUGboat 39:1, 2018
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.
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.
A different view is given on Publication by Topic page where the Publications are ordered by important topics.
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.