All publications from 1995 onwards
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.
Below is the full list of all publications on a single page for people who like to scroll. If you prefer a view reasonable chunks instead, select one of the year entries in the table of contents above.
Publications in 2023
Automated tagging of LaTeX documents what is possible today, in 2023?
- Ulrike Fischer and Frank Mittelbach
- TUGboat 44:2, 2023
- Keywords: LaTeX, tagging, accessibility
- Abstract
The LaTeX Tagged PDF project was started in spring 2020 and announced to the TeX community by the LaTeX Team at the Online TUG Conference 2020. This short report describes the progress and status of this multi-year project achieved with the LaTeX summer release 2023.
Report on the LaTeX Tagged PDF workshop, TUG 2023
- David Carlisle, Ulrike Fischer and Frank Mittelbach
- TUGboat 44:2, 2023
- Keywords: LaTeX, tagging, accessibility, table tagging
- Abstract
On the afternoon before the formal conference program, the LaTeX project held a workshop, led by Ulrike Fischer, on generating tagged PDF from LaTeX. The workshop was well attended with more than thirty people participating — a good mix of package developers and end users. We thank DANTE e.V. for very generous financial support.
The workshop was split into three parts. Firstly, a general introduction to tagging in PDF. Secondly, a demonstration of the process that a class or package maintainer should take to modify the code to produce well-tagged PDF. The acmart class was used for the example as its author, Boris Veytsman, was attending the workshop. Finally, we had a more open discussion on issues and desired syntax for structured tables.
TUG Conference 2023 (Bonn, Germany)
Automated tagging of LaTeX documents—what is possible today?
- Ulrike Fischer
- Video of the TUG 2023 Bonn, Germany
- Keywords: LaTeX, tagging, accessibility
- Abstract
With the summer 2023 release of the LaTeX format it is now possible to create tagged PDF in an automated way from many “Lamport documents”: documents using the commands described in the LaTeX manual from Leslie Lamport.
In this talk I will show what is possible and what still needs manual intervention. I will also describe some of the challenges we faced on the technical side and when designing the mapping between LaTeX structures and the set of PDF tags.
38 years with LaTeX—A personal picture story
- Frank Mittelbach
- Video of the TUG 2023 Bonn, Germany
- Abstract
As the title indicates, this is part of the story of LaTeX in pictures, as seen from my eyes. It shows many highlights throughout the years and puts faces to names—some of which are in the audience but many not. It is based on what was available in my photo archive and certainly biased, but I nevertheless hope it is of some interest.
The LaTeX Companion, 3rd edition—Anecdotes and lessons learned
- Frank Mittelbach
- Video of the TUG 2023 Bonn, Germany
- Abstract
During the last five years a lot of work went into producing a new edition of The LaTeX Companion. In this talk I will talk about some aspects of that work, the unique challenges and some of the lessons learned during that endeavour.
Supporting backends in expl3
- Joseph Wright
- Video of the TUG 2023 Bonn, Germany
- Keywords: LaTeX, expl3, backends
- Abstract
The backend in TeX is responsible for the parts of producing output that TeX doesn’t know about, for example colour, image inclusion and hyperlink creation. Each backend has its own syntax and range of supported concepts, so at the macro level there needs to be the appropriate code to ‘talk’ to the backend. In expl3, we have developed a consistent set of backend support files, based on the experience of (La)TeX developers over 30+ years of working with these backends. Here, I will look at the history of backend abstraction and the model used in expl3.
Further adventures in Unicode-land: Refining case changing
- Joseph Wright
- Video of the TUG 2023 Bonn, Germany
- Abstract
Getting text processing right for Unicode in TeX is a challenge, particularly where one wants to support the full range in pdfTeX. Over the past few years, I have worked on one aspect: case changing. Code to carry out the Unicode case changing algorithm was integrated into the LaTeX kernel a couple of years ago. Since then, we have been refining the details, adding more power and discovering new issues. Here, I’ll look at what we’ve done to get the code working smoothly, and look forward to what might still be improved.
Storing Unicode data in TeX engines
- Joseph Wright
- TUGboat 44:1, 2023
This paper describes the LaTeX approach taken to store Unicode data in the format for quick access in documents.
Publications in 2022
From the PDF days Europe, September 2022 (Berlin)
Tagged and Accessible PDF with LaTeX – project state, achievements, and plans for the future
- Frank Mittelbach and Ulrike Fischer
- Video of the talk presented at PDF Days Europe September 2022
- Keywords: LaTeX, tagging, accessibility, project status
- Abstract
In Summer 2020 the LaTeX Project Team announced the start of a multi-year project [1, 2] to produce tagged and accessible PDF from existing LaTeX sources with no or only minimal configuration adjustments. In this talk we describe the current state of the project, the existing achievements, and our plans for future.
References
[1] Frank Mittelbach, Ulrike Fischer, and Chris Rowley: LaTeX Tagged PDF Feasibility Evaluation Study. LaTeX Project, Sept. 2020. [2] Frank Mittelbach and Chris Rowley: LaTeX Tagged PDF — A blueprint for a large project. TUGboat 41(3):292–298, 2020.
The talk was recorded and is available on the PDFA website. The slides of the presentation are available here.
The LaTeX Tagged PDF project — A status and progress report
- Frank Mittelbach and Ulrike Fischer
- TUGboat 43:3, 2022
- Keywords: LaTeX, tagging, accessibility, project status
- Abstract
The LaTeX Tagged PDF project was started in spring 2020 and announced to the TeX community by the LaTeX Team at the (online) 2020 TUG conference. This short report describes the progress and status of this multi-year project.
Adding XMP metadata in LaTeX
- Ulrike Fischer and Frank Mittelbach
- TUGboat 43:3, 2022
- Keywords: LaTeX, tagging, accessibility, XMP metadata
- Abstract
One task of the “LaTeX Tagged PDF Project” is to evaluate existing solutions to add XMP metadata to a PDF, and if needed, to design and implement a new standard interface for this. In this article we will describe the current state of this task.
Mapping to individual characters in expl3
- Joseph Wright
- TUGboat 43:3, 2022
A short note on the complexity handling characters and the way the LaTeX programming layer handles them.
Using spot colors in LaTeX
- Ulrike Fischer
- TUGboat 43:2, 2022
- Keywords: LaTeX, spotcolor
- Abstract
In this paper I recount some practical experiences with spot colors we gained while working on the third edition of The LaTeX Companion. I describe what spot colors are, how to use them for text and (TikZ) graphics, how to mix them properly, and some of the pitfalls we found and how we worked around them.
Key–value setting handling in the LaTeX kernel
- Joseph Wright
- TUGboat 43:2, 2022
This paper describes the new kernel mechanism to handle package and class options using key–value methods introduced in release 2022-06-01.
A video on “Key-value setting handling in the kernel (2022)” as presented by Joseph at the TUG conference is also available.
Case changing: LaTeX reaches Unicode-land
- Joseph Wright
- TUGboat 43:2, 2022
- Abstract:
The concept of letters having case is familiar to speakers of several languages, most obviously those from Europe using Latin, Greek or Cyrillic scripts. The ability to convert between upper and lower case, case changing, is something we might take for granted both for people and for computer systems. However, there are subtleties that a careful implementation needs to take into account…
This paper describes the new kernel mechanisms to manage this complexity.
A video on “Case changing: LaTeX reaches Unicode-land (2022)” as presented by Joseph at the TUG conference is also available.
TUG Conference 2022 (Online conference)
New in stock — recent LaTeX improvements (that you may have missed)
- Ulrike Fischer
- Video of the TUG 2022 online conference
- Keywords: LaTeX, features, improvements
- Abstract
In this talk I present a selection of improvement we made in the recent LaTeX releases. The changes are not discussed in depth; the goal is to give some interesting examples and make you curious enough to explore the documentation and learn more.
Using spot colors with LaTeX
- Ulrike Fischer
- Video of the TUG 2022 online conference
- Keywords: LaTeX, spot color
- Abstract
In this talk I recount some practical experiences with spot colors I gained while working on the third edition of The LaTeX Companion. I describe what spot colors are, how to use them for text and (Ti_k_Z) graphics, how to mix them properly, and some of the pitfalls we found and how we worked around them.
Key-value setting handling in the kernel
- Joseph Wright
- Video of the TUG 2022 online conference
- Keywords: LaTeX, key/value handling
- Abstract
LaTeX2ε introduced class and package setting in the optional arguments to
\documentclass
and\usepackage
. To date, these were designed to handle simple keyword-based option. Over time, packages have extended the mechanism to accept key-value (keyval) arguments. Recent work by the team brings keyval handling into the kernel. This brings the added benefit of allowing repeated package loading to avoid clashes. Here, I will look briefly at the background, then explore how to use the new mechanism in package development.
Case changing: LaTeX reaches Unicode-land
- Joseph Wright
- Video of the TUG 2022 online conference
- Keywords: LaTeX, Unicode, case changing
- Abstract
In 2015, I talked about my work exploring Unicode-land, particularly how to carry out case changing in XeTeX and LuaTeX properly. Since then,
expl3
has become a part of the LaTeX kernel, and LaTeX has adopted UTF-8 as the standard input encoding. The time has therefore become ripe to “open up” Unicode-land to allow MakeUppercase and MakeLowercase to roam free. In this talk, I’ll remind us of what Unicode tells us about case changing, where the challenges are and how we’ve approached them inexpl3
. I’ll then show how this has combined with some *TeX features to enable us to make the switch, incorporate ideas from the textcase package and upgrade MakeUppercase and MakeLowercase for the 21st century.
siunitx: Launching version 3
- Joseph Wright
- Video of the TUG 2022 online conference
- Keywords: LaTeX, scientific notation
- Abstract
Since it was first released in 2008,
siunitx
has become established as the major package for typesetting physical quantities in LaTeX. Following up on my TUG 2018 talk, I will look at how the update to version 3 has gone now that this is out. I’ll briefly look at the background, then consider some of the user and developer efforts that have made the launch a success.
l3build: The beginner’s guide
- Joseph Wright
- TUGboat 43:1, 2022
- Abstract
For package authors, creating a release is a regular process, ideal for automation. There are several steps to creating a release to CTAN, for example ensuring documentation is updated, structuring an archive correctly and actually uploading the material.
A Some time ago, the LaTeX Team extended their existing basic scripts to create an independent tool, l3build, which can cover all of those tasks. Most significantly, it included features to run comprehensive tests: this aspect was previously covered for TUGboat (2014, 35:3, pp. 287–293). Here, I will give a more general overview of the tool, looking at how it can help package authors create releases in a quick and reliable manner.
Publications in 2021
Interview with Frank Mittelbach
- Frank Mittelbach and Paulo Ney de Souza
- Published paper, 2021
- Video of the interview
- Keywords: LaTeX history, LaTeX future, LPPL, LaTeX3
- Abstract
This interview took place on 7 August 2021, during the TUG 2021 online conference. Frank Mittelbach has been leading the LaTeX Project since August 1989, i.e., for exactly
$2^5$
years at the time of the interview.
See also Interview of Frank Mittelbach – A combined interview of the LaTeX Project director from 2006.
On the road to Tagged PDF: About StructElem, Marked Content, PDF/A and Squeezed Bärs
- Ulrike Fischer
- TUGboat 42:2, 2021
- Abstract
In this article I present two packages as part of the LaTeX Project’s “Tagged PDF” effort:
- tagpdf which contains the core code to create a tagged PDF and is used by the LaTeX team to test new code.
- pdfmanagement-testphase which contains a large number of PDF-related commands and tools and installs a new management command for central PDF dictionaries.
I will show how to use these packages and the benefits they will bring for the average user, while also mentioning resulting incompatibilities and required changes in documents.
There is also a video from the talk given at the TUG online conference 2021 at YouTube on this topic.
TUG Conference 2021 (Online conference)
Taming the beast — Advances in paragraph tagging with pdfTeX and XeTeX
- Frank Mittelbach
- Video of the talk at the TUG 2021 online conference
- Keywords: LaTeX, tagging, paragraph handling
- Abstract
In this talk I demonstrate and describe our solution for automatically tagging paragraphs when using engines such as pdfTeX or XeTeX. The situation with LuaTeX is different, and simpler, and therefore not the subject of this talk. I briefly touch on the problems one encounters and explain the approaches we used to overcome them. This will be done with a number of demonstrations intermixed with theoretical explanations.
This work is part of our multi-year journey to gradually modernize LaTeX so that it can automatically produce high-quality tagged and “accessible” PDF without the need to post-process the result of the LaTeX run.
Any colo(u)r you like
- Joseph Wright
- Video of the TUG 2021 online conference
- Keywords: LaTeX, color handling
- Abstract
TeX itself has no built-in support for colour, which is therefore handled by specials or engine-specific extensions. For LaTeX 2ε , the different interfaces are abstracted out by the color package. However, there is a lot that the color package does not do; for example, handling colour model interconversion, mixing colours or device-specific colour spaces. Packages such as xcolor and colorspace fill that gap, whilst the luacolor package addresses a separate issue: avoiding the need to use whatsits for colour at all.
As part of wider efforts to enhance the LaTeX kernel via expl3 additions, recent work on the l3color package has brought many of these concepts into a single set of interfaces. That means not only copying existing ideas but also ensuring maximal functionality. In my talk, I will explore the work on l3color, highlighting where it can go beyond the predecessor packages in ease of use and functionality.
Reviving Type 3 fonts for modern LuaLaTeX documents
- Marcel Krüger
- Video of the TUG 2021 online conference
- Keywords: Type3 fonts
- Abstract
For a long time, Type 3 fonts in LaTeX-generated PDF files were known for (undesirable) bitmap fonts, but that’s only a small aspect of what this font format can do. With OpenType color fonts, the idea behind Type 3 fonts has seen a revival, and LuaTeX recently added support for adding such fonts for non-bitmap use cases too.
In this talk I want to look at how this format can be used to create smaller and simpler PDF files involving color fonts and user-generated glyphs and consider advantages and disadvantages in contrast to traditional alternatives like virtual fonts or macrobased solutions.
Creating document commands: The good, the bad and the ugly
- Joseph Wright
- TUGboat 42:1, 2021
- Abstract
Creating document commands in LaTeX has traditionally involved a mix of
\newcommand
, semi-internal kernel commands (like\@ifnextchar
and\@ifstar
) and low-level TeX programming using\def
. As part of wider efforts to improve LaTeX, the team have over the past few years developed ideas for creating document commands in the package xparse. In a parallel article (on\NewDocumentCommand
, on the following pages), I’ve looked at how the xparse ideas compare to the abilities of other packages.
\NewDocumentCommand
versus \newcommand
versus . . .
- Joseph Wright
- TUGboat 42:1, 2021
- Abstract
Creating new document commands in LaTeX has traditionally been the job of
\newcommand
. This lets you create a command with mandatory arguments, and also support a first optional argument. However, it can’t create more complex commands: LaTeX uses stars, multiple optional arguments, and plenty more. To define commands using such syntaxes, the kernel itself uses lower-level TeX programming. But this is opaque to many users, and a variety of packages have been created to ease the burden. …
Publications in 2020
A General LuaTeX Framework for Globally Optimized Pagination (peer reviewed version)
- Frank Mittelbach
- Paper submitted to the Computational Intelligence Journal (Wiley) in 2017, accepted January 2018, published 2019
- Abstract:
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 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.
Legal notice from Wiley
This is the peer reviewed version of the following article: Frank Mittelbach. “A general LuaTeX framework for globally optimized pagination”. Computational Intelligence, 35(2):242–284, 2019, which has been published in final form at https://doi.org/10.1111/coin.12165. This article may be used for non-commercial purposes in accordance with Wiley Terms and Conditions for Use of Self-Archived Versions. This article may not be enhanced, enriched or otherwise transformed into a derivative work, without express permission from Wiley or by statutory rights under applicable legislation. Copyright notices must not be removed, obscured or modified. The article must be linked to Wiley’s version of record on Wiley Online Library and any embedding, framing or otherwise making available the article or pages thereof by third parties from platforms, services and websites other than Wiley Online Library must be prohibited.”
LaTeX Tagged PDF — A blueprint for a large project
- Frank Mittelbach
- Chris Rowley
- TUGboat 41:3, 2020
- Abstract
In Frank’s talk at the TUG 2020 online conference we announced the start of a multi-year project to enhance LaTeX to fully and naturally support the creation of structured document formats, in particular the “tagged PDF” format as required by accessibility standards such as PDF/UA.
In this short article we outline the background to this project and some of its history so far. We then describe the major features of the project and the tasks involved, of which more details can be found in the Feasibility Study that was prepared as the first part of our co-operation with Adobe.
This leads on to a description of how we plan to use the study as the basis for our work on the project and some details of our planned working methodologies, illustrated by what we have achieved so far and leading to a discussion of some of the obstacles we foresee.
Finally there is also a summary of recent, current and upcoming activities on and around the project.
LaTeX Tagged PDF Feasibility Evaluation Study
- Frank Mittelbach
- Ulrike Fischer
- Chris Rowley
- Written: December 2019 with minor updates September 2020
This forty-page document contains information about a multi-year project, started by the LaTeX Project Team in 2020, that will extend LaTeX to produce tagged, and hence accessible, PDF with minimal manual intervention. It explains in detail both the project goals and the tasks that need to be undertaken, concluding with a detailed project plan. It is our blueprint for how we think the project should be undertaken.
The Introduction contains an overview of the benefits of the project and explains why LaTeX documents make a good starting point for the production of tagged PDF. More information about this blueprint and the project can be found in the article “LaTeX Tagged PDF — A blueprint for a large project” TUGboat, Volume 41-3 (2020), which will appear shortly.
The original version of this study dates from late 2019 and was addressed primarily to an audience within Adobe which consisted of engineers and managers with a wide knowledge of digital typography and electronic publishing but not necessarily much background within the specialized world of TeX, LaTeX and friends. This version of the study was updated in September 2020 with some minor redactions, corrections and clarifications.
TUG Conference 2020 (Online conference)
Quo vadis LaTeX(3) Team — A look back and at the upcoming years
- Frank Mittelbach
- TUGboat 41:2, 2020
- Abstract
This is a brief write-up of a talk given by the author at the TUG’20 online conference.
The talk touches briefly on the questions “where we are coming from” (we being the LaTeX Project Team), “where we are now” and then focusses on the LaTeX Project’s plans for the upcoming years, which will primarily be focussed on providing an out-of-the box solution for generating tagged PDF with LaTeX and will include gentle refactoring of parts of the core LaTeX and providing important functionality, such as extended standard support for color, hyperlinks etc., as part of the kernel.
This is a multi-year journey that we have just started and we will briefly explain the places this will take us through. At its end we expect that LaTeX users are able to produce tagged and “accessible” PDF without the need to post-process the result of their LaTeX run.
A video of the presentation given by Frank is available on the TUG YouTube channel.
learnlatex.org: Taking LaTeX training fully interactive
- David Carlisle
- Paulo Roberto Massa Cereda
- Joseph Wright
- TUGboat 41:2, 2020
- Abstract
An introduction to the
learnlatex.org
website that is currently been set up.
A video of the presentation given by Joseph is available on the TUG YouTube channel.
The fewerfloatpages package
- Frank Mittelbach
- TUGboat 41:1, 2020
- Abstract
LaTeX’s float algorithm has the tendency to produce fairly empty float pages, i.e., pages containing only floats but with a lot of free space remaining that could easily be filled with nearby text. There are good reasons for this behavior; nevertheless, the results look unappealing and in many cases documents are unnecessarily enlarged.
The
fewerfloatpages
package provides an extended algorithm that improves on this behavior without the need for manual intervention by the user.
Case changing: From TeX primitives to the Unicode algorithm
- Joseph Wright
- TUGboat 41:1, 2020
- Abstract
The concept of letter case is well established for several alphabet-based scripts, most notably Latin, Greek and Cyrillic. Upper- and lowercase are so widely used that it may not be obvious that there are several subtleties in converting case. However, those subtleties are important in supporting a wide range of users, and getting all of them right is non-trivial.
Whilst the English alphabet has simple casechanging rules, when we look beyond English and (possibly) beyond the Latin alphabet, tracking the requirements becomes more complicated. Many of these have been codified by the Unicode Consortium, and following these guidelines means that different pieces of software can give consistent outcomes.
Here, I want to look at how case changing can be set up in TeX, primarily focussing on tools that the LaTeX Project have provided, but in the wider context of the TeX ecosystem.
Creating accessible pdfs with LaTeX
- Ulrike Fischer
- TUGboat 41:1, 2020
- Abstract
This article describes the current state and planned actions to improve accessibility of pdfs created with LaTeX, as currently undertaken by the LaTeX Team.
Typesetting Bangla script with LuaLaTeX
- Ulrike Fischer and Marcel Krüger
- TUGboat 41:1, 2020
- Abstract
A case study of using LuaLaTeX and the new Harfbuzz library.
TeX, LaTeX and math
- Enrico Gregorio
- TUGboat 41:1, 2020
- Abstract
We discuss some aspects of mathematical typesetting: choice of symbols, code abstraction, fine details. Relationships between math typesetting and international standards are examined. A final section on typesetting of numbers and units reports on some recent developments in the field.
Publications in 2019
The LaTeX release workflow and the LaTeX dev formats
- Frank Mittelbach
- TUGboat 40:2, 2019
- Abstract
How do you prevent creating banana software (i.e., software that gets ripe at the customer site)? By proper testing! But this is anything but easy.
The paper will give an overview of the efforts made by the LaTeX Project Team over the years to provide high-quality software and explains the changes that we have made this summer to improve the situation further.
Accessibility in the LaTeX kernel — experiments in Tagged PDF
- Chris Rowley
- Ulrike Fischer
- Frank Mittelbach
- TUGboat 40:2, 2019
- Abstract
This is a brief summary of a talk given by the first author at the TUG’19 conference, together with some references for further reading and viewing.
TUG Conference 2019 (Palo Alto, USA)
Taming UTF-8 in pdfTeX (handouts)
- Frank Mittelbach
- TUG Conference 2019 (Palo Alto, USA)
To understand the concepts in pdflatex for processing UTF-8 encoded files it is helpful to first take a look at the models used by the TeX engine and earlier attempts made by LaTeX on top of TeX. The talk provides a short historical review of that area and gives an overview about the improvements with respect to UTF-8 handling that will be activated in LaTeX within 2019.
Accessibility in the LaTeX kernel — experiments in tagged PDF (slides)
- Chris Rowley and Ulrike Fischer
- TUG Conference 2019 (Palo Alto, USA)
Publications in 2018
The dashundergaps package
- Frank Mittelbach
- TUGboat 39:3, 2018
- Abstract
The dashundergaps package offers the possibility to replace material in running text with white space in order to build up forms that can be filled in at a later time.
By default the gaps are underlined and followed by a gap number in parentheses, but many other designs are possible, e.g., dashes or dots instead of the underline, no gap numbers or a different format for them, gap widening for easier fill-in, etc. There is also a teacher’s mode which shows the normally hidden text in a special (customizable) format.
This is another article in a series of TUGboat articles describing small packages to introduce coding practices using the expl3 programming language. See The widows-and-orphans package for the first article in the series. For more details on expl3 refer to the expl3 topic page.
The widows-and-orphans package
- Frank Mittelbach
- TUGboat 39:3, 2018
- Abstract
The widows-and-orphans package checks page or column breaks for issues with widow or orphan lines and issues warnings if such problems are detected. In addition, it checks and complains about breaks involving hyphenated words and warns about display formulas directly after a page break —– if they are allowed by the document parameter settings, which by default isn’t the case.
A general discussion of the problem of widows and orphans and suggestions for resolution is given in Managing forlorn paragraph lines (a.k.a. widows and orphans) in LaTeX.
Managing forlorn paragraph lines (a.k.a. widows and orphans) in LaTeX
- Frank Mittelbach
- TUGboat 39:3, 2018
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
- Joseph Wright
- Paper published in TUGboat 39:2, 2018
- Abstract:
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
- Frank Mittelbach
- Paper published in TUGboat 39:2, 2018
- Abstract:
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
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)
- Will Robertson
- TUG Conference 2018 (Rio de Janeiro, Brazil)
- Abstract:
While the fundamentals of both the
fontspec
andunicode-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)
- Frank Mittelbach
- TUG Conference 2018 (Rio de Janeiro, Brazil)
- Abstract:
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
-
Conference published in TUGboat 39:2, 2018 A rollback concept for packages and classes
siunitx: Past, present and future (slides)
- Joseph Wright
- TUG Conference 2018 (Rio de Janeiro, Brazil)
- Abstract:
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)
- Joseph Wright
- TUG Conference 2018 (Rio de Janeiro, Brazil)
- Abstract:
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)
- Frank Mittelbach
- TUG Conference 2018 (Rio de Janeiro, Brazil)
- Abstract:
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)
- Will Robertson
- TUG Conference 2018 (Rio de Janeiro, Brazil)
- Abstract:
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)
- Joseph Wright
- TUG Conference 2018 (Rio de Janeiro, Brazil)
- Abstract:
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)
- Frank Mittelbach
- Paper submitted to the Computational Intelligence Journal (Wiley) in 2017, accepted January 2018
- Abstract:
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.
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
- 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.
New rules for reporting bugs in the LaTeX core software
- 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.
Publications in 2017
ACM DocEng 2017 Symposium on Document Engineering (Valletta, Malta)
-
research-article
Effective Floating Strategies
This paper presents an extension to the general framework for globally optimized pagination described in Mittelbach (2016). The extended algorithm supports automatic placement of floats as part of the optimization. It uses a flexible constraint model ...
- Presentation of the paper as given in Malta: Effective Floating Strategies (slides – large 23Mb)
This paper presents an extension to the general framework for globally optimized pagination described in Mittelbach (2016). The extended algorithm supports automatic placement of floats as part of the optimization. It uses a flexible constraint model that allows for the implementation of typical typographic rules that can be weighted against each other to support different application scenarios.
The above link enables free download of the paper from the ACM Digital Library. (Due to ACM restrictions it unfortunately doesn’t work from the “all-publications” page. If you are there please use the one on the pagination topic page instead.)
LaTeX table columns with fixed widths
- Frank Mittelbach
- Published paper, TUGboat volume 38, number 2, 2017
A short article discussing how to produce table columns with a fixed
width using the array
package. The interface as described is now
integrated in the package.
TUG/GUST Conference 2017 (Bachotek, Poland)
Through The Looking Glass — and what Alice found there … (handouts)
- Frank Mittelbach
- TUG/GUST Conference 2017 (Bachotek, Poland)
Continuing the quest for automatically finding optimal pagination of documents the journey takes us now to the fairy land of objective functions, call-out constraints, layout templates and other mystical creatures and a Queen that cries “Faster! Faster!” because “… it takes all the running YOU can do, to keep in the same place. If you want to get somewhere else, you must run at least twice as fast as that!” This talk explores how fast we must ran to enter that world.
Slides of the talk: Through The Looking Glass — and what Alice found there …
Publications in 2016
R.I.P. — S.P.Q.R Sebastian Patrick Quintus Rahtz (13.2.1955–15.3.2016)
- Frank Mittelbach
- German version published in Die Technische Komödie 2016/2.
- English version published in TUGboat, volume 37 number 2, 2016.
- Video recorded by River Valley TV at TUG 2016 conference, Toronto.
A memorial for our friend and colleague Sebastian who passed away far too young.
ACM DocEng 2016 Symposium on Document Engineering (Vienna, Austria)
-
research-article
A General Framework for Globally Optimized Pagination
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 ...
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).
A greatly extended version of this paper (37 pages) titled “A General LuaTeX Framework for Globally Optimized Pagination” was submitted to the Computational Intelligence Journal (Wiley) in 2017 and accepted January 2018.
The above link enables free download of the paper from the ACM Digital Library. (Due to ACM restrictions it unfortunately doesn’t work from the “all-publications” page. If you are there please use the one on the pagination topic page instead.)
TUG Conference 2016 (Toronto, Canada)
Alice goes floating (slides with speaker notes intermixed)
- Frank Mittelbach
- TUG Conference 2016 (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 publicly available as further research and development is needed.
Video of the talk recorded by River Valley TV: Alice goes floating (audio near the end fails unfortunately)
Exploring \romannumeral and expansion
- Joseph Wright
- Published paper, TUGboat, Volume 37 (2016), No. 1
An article by Joseph Wright on a clever use of \romannumeral to trigger controlled expansion. This is used extensively in the expl3 sources.
Publications in 2015
Automated LaTeX(3) testing
- Joseph Wright
- Published paper, TUGboat, Volume 36 (2015), No. 3
A discussion of our Continuous Integration testing setup for LaTeX3 sources using l3build and Travis-CI. These days we also use this to continuously test the LaTeX2e sources!
TUG Conference 2015 (Darmstadt)
Twenty-one is only half the truth (mindmap)
- Frank Mittelbach
- TUG Conference 2015 (Darmstadt, Germany)
- Video of the talk: Twenty-one is only half the truth (via River Valley TV)
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).
Reconciling unicode-math with LaTeX2e mathematics (slides)
- Will Robertson
- TUG Conference 2015 (Darmstadt, Germany)
- Video of the talk: Reconciling unicode-math with LaTeX2e mathematics (via River Valley TV)
Joseph’s Adventures in Unicodeland
- Joseph Wright
-
Published paper, TUGboat volume 36, number 2, 2015
- TUG Conference 2015 (Darmstadt, Germany)
- Video of the talk: XeTeX and LuaTeX: Getting Unicode data into the right places (via River Valley TV)
- Slides of the talk: XeTeX and LuaTeX: Getting Unicode data into the right places
Through the \parshape, and what Joseph found there
- Joseph Wright
-
Published paper, TUGboat, Volume 36 (2015), No. 2
- TUG Conference 2015 (Darmstadt, Germany)
- Video of the talk: Through the \parshape, and what Joseph found there (via River Valley TV)
- Slides of the talk: Through the \parshape, and what Joseph found there
Recollections of a spurious space catcher
- Enrico Gregorio
-
Published paper, TUGboat, Volume 36 (2015), No. 2
- TUG Conference 2015 (Darmstadt, Germany)
- Video of the talk: Recollections of a spurious space catcher (via River Valley TV)
The box-glue-penalty algebra of TeX and its use of \prevdepth
- Frank Mittelbach
- Published paper, TUGboat volume 36, number 1, 2015
- Abstract:
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.
It starts with giving a short introduction to the box-glue-penalty algebra used by TeX to model material to typeset. We then look at how the program calculates the vertical glue between lines in which the parameter \prevdepth plays a crucial role. Next we examine different types of output routines and evaluate how and to what extent the TeX algorithms can accommodate their goals.
The final conclusion is that this is an area where we can pose problems that cannot be resolved using current TeX, ε-TeX, pdfTeX, or XeTeX, unless you restrict the allowable input, as there is no way to obtain some of the information used by TeX’s algorithms for later manipulation of the result.
Like the answer to many questions these days, the situation is (probably) different with LuaTeX — probably, because I haven’t actually tried it, but given the additional possibilities offered by LuaTeX a solution should be feasible.
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
UK-TUG meeting in 2014
Some video footage from the meeting in November 2014 on LaTeX2e and LaTeX3 development topics.
Fixing LaTeX2e (video)
- David Carlisle
- UK-TUG meeting in 2014
A talk describing the plans for a better maintenance approach (compared to fixltx2e which doesn’t work)
Reliable releases: l3build (video)
- Joseph Wright
- UK-TUG meeting in 2014
A new build environment for LaTeX packages and documentation (works with all flavors)! Unfortunately, the demo session on l3build is not visible in the video as it only provides audio and displays of the slides used.
Case changing in the Unicode world (video)
- Joseph Wright
- UK-TUG meeting in 2014
A companion to Joseph’s talk on l3build is the published paper on this topic by Will and Frank.
How to influence the position of float environments like figure and table in LaTeX?
- Frank Mittelbach
- Published paper, TUGboat volume 35, number 3, 2014
- Abstract:
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.
- Translation of the article into Italian language (in ArsTeXnica in 2015): Come si può influenzare la posizione degli ambienti galleggianti come figure e table in LaTeX?
l3build — A modern Lua test suite for TeX programming
- Frank Mittelbach, Will Robertson and The LaTeX3 team
- Published paper, TUGboat volume 35, number 3, 2014
- Abstract:
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)
A Modern Regression Test Suite for TeX Programming (slides)
- Frank Mittelbach
- TUG 2014 Conference (Portland, USA)
- Video of the talk: A Modern Regression Test Suite for TeX Programming (via River Valley TV)
LaTeX3 and expl3 in 2014: Recent developments (slides)
- Will Robertson and Frank Mittelbach
- TUG 2014 Conference (Portland, USA)
- Video of the talk: LaTeX3 and expl3 in 2014: Recent developments (via River Valley TV)
Mathematical Markup Language (MathML) Version 3.0 2nd Edition
- David Carlisle (editor)
- W3C Recommendation, 10 April 2014
This specification defines the Mathematical Markup Language, or MathML. MathML is a markup language for describing mathematical notation and capturing both its structure and content. The goal of MathML is to enable mathematics to be served, received, and processed on the World Wide Web, just as HTML has enabled this functionality for text.
This specification of the markup language MathML is intended primarily for a readership consisting of those who will be developing or implementing renderers or editors using it, or software that will communicate using MathML as a protocol for input or output. It is not a User’s Guide but rather a reference document.
MathML can be used to encode both mathematical notation and mathematical content. About thirty-eight of the MathML tags describe abstract notational structures, while another about one hundred and seventy provide a way of unambiguously specifying the intended meaning of an expression. Additional chapters discuss how the MathML content and presentation elements interact, and how MathML renderers might be implemented and should interact with browsers. Finally, this document addresses the issue of special characters used for mathematics, their handling in MathML, their presence in Unicode, and their relation to fonts.
While MathML is human-readable, authors typically will use equation editors, conversion programs, and other specialized software tools to generate MathML. Several versions of such MathML tools exist, both freely available software and commercial products, and more are under development.
MathML was originally specified as an XML application and most of the examples in this specification assume that syntax. Other syntaxes are possible most notably [HTML5] specifies the syntax for MathML in HTML. Unless explicitly noted, the examples in this specification are also valid HTML syntax.
XML Entity Definitions for Characters (2nd Edition)
- David Carlisle (editor)
- W3C Recommendation, 10 April 2014
This document defines several sets of names, so that to each name is assigned a Unicode character or sequence of characters. Each of these sets is expressed as a file of XML entity declarations.
Publications in 2013
TUG Conference 2013 (Tokyo, Japan)
The stony road to complex layout (slides)
- Frank Mittelbach
- TUG Conference 2013 (Tokyo, Japan)
- Digital Camera recording of the talk on YouTube: The stony road to complex layout
In this talk, Frank looks at the many and often conflicting user
wishlists for automatic generation of complex layouts using the
history and development of the multicol
package through the years.
What as been solved in this space and where are the typesetting
challenges and what is simply not possible?
LaTeX3: Using the Layers (slides)
- Frank Mittelbach and Joseph Wright
- TUG Conference 2013 (Tokyo, Japan)
- Abstract (pdf)
In this talk a quick overview about the four conceptual layers of the LaTeX3 architecture is given, followed by a more detailed look at the xparse, as an example of the document interface layer. It concludes with a brief detour of expl3, the language of the foundation layer of LaTeX3.
Publications in 2012
TUG 2012 Conference (Boston, USA)
E-TeX: Guidelines to future TeX extensions — revisited
- Frank Mittelbach
- Published paper, TUGboat volume 34, number 1, 2013
-
The paper was presented at the TUG Conference 2012 in Boston.
- TUG Conference 2012 (Boston, USA)
- Text version of the abstract
- Digital Camera recording of the talk on YouTube: E-TeX: Guidelines to future TeX extensions — revisited
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.
LaTeX3: from local to global—A brief history and recent developments (slides)
- Will Robertson and Frank Mittelbach
- TUG Conference 2012 (Boston, USA)
The xtemplate package: An example
- Published paper, TUGboat, Volume 33 (2012), No. 3
- Keywords: LaTeX3, designer-interface, evaluation report
An evaluation by Clemens Niederberger of the ideas behind the template interface for LaTeX3.
Publications in 2011
TUG Conference 2011 (Trivandrum, India)
LaTeX3 architecture and current work in progress (slides)
- Frank Mittelbach
- TUG Conference 2011 (Trivandrum, India)
- LaTeX3 architecture and current work in progress (abstract)
- Video of talk: LaTeX3 architecture and current work in progress (via River Valley TV)
This talk discusses the architecture of LaTeX3 starting with the initial ideas that date back to the early ’90s. Using an example covering the whole production cycle it is shown that several different roles with different requirements are needed to turn some draft initial manuscript into a final product. The purpose of the LaTeX3 architecture is to provide adequate support for these different needs and to resolve or at least mediate conflicts between them.
While the basic building blocks of this architecture had been identified long ago an initial implementation in 1992 showed that it was impossible to use them in practice due to limitations in the processing power of the underlying engines at the time. Furthermore several ideas that were toyed with at the time—though not wrong as such— were immature and not fully thought through. As a result the project gave up on the broader redesign and instead focused on producing a consolidated LaTeX version largely based on the architecture of LaTeX2.09. This fairly successful endeavor, labeled LaTeX2e, is still the current standard LaTeX.
So why is it still relevant? Basically because the drivers and goals that led to the new architecture are issues that haven’t been successfully resolved by other typesetting systems. The difference to the situation from the ’90s is that by now processing power in the underlying engine has increased so much that it has become feasible to implement this architecture in TeX (or rather one of its successors). The other reason is that since then further work has been undertaken, refining many of the initially immature ideas. The result is a coherent vision for a future typesetting system based on the principles of TeX and LaTeX but moving them to the next level.
The talk discusses the separation of concerns as propagated by the architecture: between logical structure, design layer and the coding and implementation support. At the same time it is shown that for high-quality results this separation needs to be accompanied by built-in support for formatting adjustments and how this is supported by the architecture.
For design support the architecture provides two major complementary concepts: templates and context management. The use of design templates offers abstractions from which real designs can be derived through customization of parameters. The second approach is a general concept for managing design variations based on the actual element relationships within a document. For the two concepts both the theory is discussed and a short live demonstration is given.
Reflections on the history of the LaTeX Project Public License (LPPL) - A software license for LaTeX and more
- Frank Mittelbach
- Published paper, TUGboat volume 32, number 1, 2011
- Keywords: Licenses, LaTeX Project Public License, LPPL, LaTeX history
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.
Publications in 2010
TUG Conference 2010 (San Francisco, USA)
A brief history of LaTeX — with a prediction
- Chris Rowley
- TUG Conference 2010 (San Francisco, USA)
- Video of the talk: A brief history of LaTeX — with a prediction (via River Valley TV)
Exhuming coffins from the last century (slides)
- Frank Mittelbach
- TUG Conference 2010 (San Francisco, USA)
- Video of the talk: Exhuming coffins from the last century (via River Valley TV)
This presentation introduces the LaTeX3 concept of boxes with handles (a.k.a. coffins) and provides a number of examples.
Unicode mathematics in LaTeX: advantages and challenges
- Will Robertson
-
Published paper, TUGboat, Volume 31 (2010), No. 2
- TUG Conference 2010 (San Francisco, USA)
- Video of the talk: Unicode mathematics in LaTeX: advantages and challenges (via River Valley TV)
- Slides of the talk: Unicode mathematics in LaTeX: advantages and challenges
In this paper and talk Will discusses Unicode mathematics in the context of LaTeX with the unicode-math package.
From \newcommand to \DocumentNewCommand with xparse
- Joseph Wright
- Published paper, TUGboat, Volume 31 (2010), No. 3
- Abstract:
The xparse package provides a new method for creating document macros, moving beyond \newcommand. With xparse it is possible for ordinary LaTeX users to create functions with multiple optional arguments, stars and mixtures of these. This brief article highlights using the xparse approach for the LaTeX user (as distinct from the LaTeX programmer).
A 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
- Joseph Wright
- Published paper, TUGboat, Volume 31 (2010), No. 1
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
- Joseph Wright
- Published paper, TUGboat, Volume 31 (2010), No. 1
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 Conference 2009 (Notre Dame, Indiana, USA)
TeX-free LaTeX, an overview
- Chris Rowley
- TUG Conference 2009 (Notre Dame, Indiana, USA)
- Video of the talk: TeX-free LaTeX, an overview (via River Valley TV)
Standards for LaTeX documents and processors
- Chris Rowley
- TUG Conference 2009 (Notre Dame, Indiana, USA)
- Video of the talk: Standards for LaTeX documents and processors (via River Valley TV)
Next steps for breqn (slides)
- Morten Høgholm
- TUG Conference 2009 (Notre Dame, Indiana, USA)
- Video of the talk: Next steps for breqn (via River Valley TV)
Consolidation of expl3 (slides)
- Morten Høgholm
- TUG Conference 2009 (Notre Dame, Indiana, USA)
- Video of the talk: Consolidation of expl3 (via River Valley TV)
- A code example: boolexpr code example (pdf, see page 14 of the slides for context)
LaTeX3 programming: External perspectives
- Joseph Wright
- Published paper, TUGboat, Volume 30 (2009), No. 1
An introduction by Joseph Wright on the current implementation of the expl3 programming extensions for LaTeX3, highlighting recent changes and improvements.
TUG Conference 2008 (Cork, Irland)
Windows of opportunity: A (biased) personal history of two decades of LaTeX development — Are there lessons to be learned?
- Frank Mittelbach
- TUG Conference 2008 (Cork, Irland)
- Video of the talk: Windows of opportunity: A (biased) personal history of two decades of LaTeX development — Are there lessons to be learned? (via River Valley TV)
The galley Module or: How I Learned to Stop Worrying and Love the Whatsit
- Morten Høgholm
- TUG Conference 2008 (Cork, Irland)
- Video of the talk: The galley Module or: How I Learned to Stop Worrying and Love the Whatsit (via River Valley TV)
TUG Conference 2007 (San Diego, USA)
LaTeX3 project update
- Morten Høgholm
- TUG Conference 2007 (San Diego, USA)
- Video of the talk: LaTeX3 project update (via River Valley TV)
The breqn package: revised and revived
- Morten Høgholm
- TUG Conference 2007 (San Diego, USA)
- Video of the talk: The breqn package: revised and revived (via River Valley TV)
Vistas for TeX
- Chris Rowley
- TUG Conference 2007 (San Diego, USA)
- Video of the talk: Vistas for TeX (via River Valley TV)
An exploration of the Latin Modern fonts
- Will Robertson
- Published paper, TUGboat, Volume 28 (2007), No. 2
Will Robertson’s look at the Latin Modern font families and their features.
Interview of Frank Mittelbach – A combined interview of the LaTeX Project director
- Frank Mittelbach, Gianluca Pignalberi, Dave Walden
- Published paper, 2006, Free Software Magazine
- Keywords: LaTeX history, LaTeX future, LPPL, LaTeX3
- Abstract
Free Software Magazine (FSM) and the TeX Users Group (TUG) both like to publish interviews. Recently, Gianluca Pignalberi of Free Software Magazine and Dave Walden of TUG both approached Frank Mittelbach about interviewing him. Rather than doing two separate interviews, Mittelbach, Pignalberi, and Walden decided on a combined interview in keeping with the mutual interests already shared by Free Software Magazine and TUG.
Page design in LaTeX3
- Morten Høgholm
- Published paper, TUGboat, Volume 27 (2006), No. 2 — Proceedings of the 2006 Annual Meeting
In this article Morten Høgholm is presenting ideas on page design concepts for LaTeX3.
Everything we want to know about Font Resources
- Chris Rowley
- Published paper, TUGboat, Volume 27 (2006), No. 2 — Proceedings of the 2006 Annual Meeting
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).
Please note that some external links contained in the online browsing material are no longer functional.
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
- Lars Hellström
- Published paper, TUGboat, Volume 24 (2003), No. 2
- Keywords: LaTeX3, designer-interface, evaluation report
A discussion by Lars Hellström of the current implementation of the concept of templates.
The trace package
- Frank Mittelbach
- Published paper, TUGboat, Volume 22 (2001), No. 1/2
This article describes the trace package that is useful when debugging complex (or not so complex) LaTeX code.
From the twentieth annual ACM symposium on Principles of distributed computing in 2001 (Newport, Rhode Island, USA)
The LaTeX Legacy
- Chris Rowley
- Published paper, PODC ‘01 Proceedings of the twentieth annual ACM symposium on Principles of distributed computing, Pages 17-25
- Keywords: LaTeX history, LaTeX future
- Abstract
The second edition of The LaTeX Manual begins: `LaTeX is a system for typesetting documents. Its first widely available version, mysteriously numbered 2.09, appeared in 1985.’
It is too early for a complete critical assessment of the impact of LaTeX 2.09 because its world-wide effects on many aspects of many cultures, not least scientific publication, remain strong after 15 years—and that itself is significant in a technological world where a mere 15 months of fame can make and break an idea.
Therefore this paper provides simply a review and evaluation of the relationship between TeX, LaTeX and some of the major technical developments in the world of quality automated formatting since the publication of LaTeX 2.09 in 1985. It is neither definitive nor comprehensive but I hope it is informative.
Formatting documents with floats – A new algorithm for LaTeX2e
- Frank Mittelbach
- Published paper, 2000
- Keywords: LaTeX3, page makeup, models, concepts, proto-types
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.
ACM SIGSAM Bulletin - Special issue of OpenMath, 2000
The above link enables free download of the paper from the ACM Digital Library. (Due to ACM restrictions it unfortunately doesn’t work from the “all-publications” page. If you are there please use the one on the topic page instead.)
TUG Conference 1999 (Vancouver, Canada)
TUG99 talk: New Interfaces for LaTeX Class Design
- David Carlisle, Frank Mittelbach and Chris Rowley
- TUG Conference 1999 (Vancouver, Canada)
- Published paper, 1999
- Keywords: LaTeX3, models, concepts, user-interface, designer-interface, proto-types
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: many of the ideas are now implemented in one way or the other in expl3 code and packages; some have been superseded by other ideas; a few still exist on prototype level awaiting further development).
TUG99 poster exhibition: Text of the Apocalypse as Graphics
- Frank Mittelbach and Christina Thiele
- TUG Conference 1999 (Vancouver, Canada)
- Meta fonts by Metafont: Introduction, font sample 1, font sample 2
- Samples of the Apocalypse Graphics: sample 1, sample 2, sample 3, sample 4
Paper and auxiliary material introducing the exhibition held during the TUG99 conference. It displayed the works of Prof. Alban Grimm using Metafont to generate Graphics out of the text of the Book of Revelation.
XRDS: Crossroads, The ACM Magazine for Students - Special issue on markup languages, 1999
Unambiguous representation of mathematics is crucial for communications among humans or among computer systems. OpenMath is a standard aimed at supporting a semantically rich interchange of mathematics among varied computational software tools such as computer algebra systems, theorem provers, and tools for visualizing or editing mathematical text. MathML is a W3C Recommendation for the encoding of mathematics ‘on the web’ which also includes mechanisms for encoding mathematical semantics. We introduce each of these two languages and describe their relationships.
The above link enables free download of the paper from the ACM Digital Library. (Due to ACM restrictions it unfortunately doesn’t work from the “all-publications” page. If you are there please use the one on the topic page instead.)
Notes on Oldenburg e-TeX/LaTeX3/ConTeXt meeting
- Meeting notes, 1998
- Keywords: TeX extensions, LaTeX3
Ideas for e-TeX/NTS math typesetting
- Meeting notes, 1998
- Keywords: TeX extensions, LaTeX3
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
- Published paper, 1998
- Keywords: documentation of LaTeX2e packages
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
- Frank Mittelbach
- Published paper, 1997
- Keywords: maintaining 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
- David Carlisle, Chris Rowley and Frank Mittelbach
- Published paper, 1997
- Keywords: general research, proposed model for LaTeX 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. These days expl3 is part of the LaTeX format named “L3 programming layer”.
Multilingual Language Processing Conference 1997 (Tsukuba, Japan)
Language information in structured documents: a model for mark-up and rendering
- Frank Mittelbach
- Multilingual Language Processing Conference 1997 (Tsukuba, Japan)
- Published paper, 1997
- Keywords: general research, proposed model for LaTeX (current and future version)
- Taped version of the talk given in Tsukuba, Japan (Analog recording on YouTube)
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.
Unicode Conference 1996 (Mainz, Germany)
Application-independent representation of text for document processing – will Unicode suffice?
- Frank Mittelbach and Chris Rowley
- Unicode Conference 1996 (Mainz, Germany)
- Published paper, 1996
- Keywords: general research, language, text representation
A paper about application-independent representation of text for document processing; it discusses some of the Unicode shortcomings.
LaTeX2e encoding interfaces
- Frank Mittelbach
- Presentation, 1995
- Keywords: LaTeX2e interface, input encoding, font encoding
A presentation held at Brno about the encoding interfaces that LaTeX offers. It discusses the various issues related to input and output encodings.
TUG Conference 1989 (Stanford, USA)
With LaTeX into the Nineties
- Frank Mittelbach, Rainer Schöpf
- Published paper, 1989 TUGboat Volume 10 Conference Proceedings
- Keywords: LaTeX 2.09
- Abstract
During the last three years, LaTeX has spread widely, even into such new fields as business applications. The fact that there are new classes of users forces one to reconsider the LaTeX implementation and some of its features. Within a few years, LaTeX 2.09 alone will not be sufficient to satisfy the increasing needs of its users. As a consequence one of the important characteristics of the LaTeX concept – the possibility of exchanging documents – is in danger of being sacrificed on the altar of local changes and enhancements.
Starting from these considerations and from our experiences of several years of LaTeX support, we will present a proposal for a re-implementation of LaTeX. This new version would not only preserve the essential features of the present user interface (in order to be compatible with old LaTeX files), but also take into account already formulated requests, as well as future developments.
The paper of the talk given at the 1989 conference in Stanford that started the LaTeX project.
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.