LaTeX 2023-11-01 release distributed

We sent the 2023-11-01 release of the LaTeX kernel to CTAN on Wednesday (the 1st) as planned. By now it should be available to most users via TeX Live or MiKTeX.

As we’ll detail below, we have reached a significant milestone in the tagged PDF project: that was the major aim for this release, and we are happy it all landed with a day or so to spare (Joseph in particular was very happy: he builds the releases).

Tagging of PDF documents: a milestone is reached

In the last news, we told you that we were not quite at the stage where we could automatically tag documents that used the elements in Lamport’s LaTeX manual, but we were getting close. We are now (almost) there: other than titles, you can tag everything in a ‘Lamport-compatible’ document using

\DocumentMetadata{testphase = {phase-III,math,table}}
\documentclass{...} % article, book or report

This is all still experimental, hence the need to use testphase, and you’ll see that math mode and table support is even more experimental, hence needing to explicitly opt-in for this part. But it does work: we are already getting positive feedback from adventurous users, and we think this will enable us to move the bigger questions forward. For example: exactly what is useful for tagged mathematics?

What we really need from users now is feedback. We have set up a dedicated GitHub project to collect feedback, issue and so on. Done in a single place, this means you don’t need to know exactly which component we need to work on to fix problems, and you have a single place to see if things are already reported.

Flexible property support

The \label/\ref mechanism has always been present in LaTeX, and has over time been extended by a number of packages. For example, hyperref adds \autoref which tries to use the type of counter associated with a link. A general extension mechanism has been available for many years using the zref package.

From the current LaTeX release, a similar approach to zref has been added to the kernel. This allows the author to cross-reference to a named property, where new properties can be added to those already defined. For example

\NewProperty{chapter}{now}{?}{\thechapter}

would add a new property ‘chapter’ which is set immediately and expands to the value of \thechapter. This could then be recorded using

\RecordProperties{mylabel}{chapter}

which is similar to adding a \label: this can be used to record multiple properties:

\RecordProperties{mylabel}{chapter,page}

Once this is done, a generic cross-reference can be generated using

\RefProperty{mylabel}{chapter}

A set of pre-defined properties are provided: these are conceptually the same as those from zref and other packages in the same area, but are not necessarily named identically.

Other changes

The newsletter also covers various other small enhancements or corrections that we provide with the November release.