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 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.