The second LaTeX pre-release for 2020-10-01 is available for testing
A few days ago we submitted a new LaTeX development format1 to CTAN and by now this should be available to all users using MiKTeX or TeX Live (on any operating system).
Main features of the second pre-release for 2020-10-01
The first pre-release, distributed at the end of May, had the following two main features (beside bug fixes):
- the functionality of the
xparse
package was added directly to the LaTeX kernel - LaTeX’s font series handling was improved
This second pre-release adds one major new component to LaTeX: a general hook management system to improve package interoperability and enable easier customization and extension of LaTeX.
A general hook management system for LaTeX
Most LaTeX users and package writers will know the handful of hooks
that LaTeX has been offering until now, the most important one perhaps
being \AtBeginDocument
. These are important hooks, but they are far
too few so that in many cases package developers had to directly patch
the internals of LaTeX. Thus resulted in many problems.
With the new hook management system, LaTeX will get many more hooks that package writers (and authors) can use to add code in a controlled and reliable way. New hooks have been added in a number of places by using the new system and more will follow over time. Available now are:
- Hooks to add code before and after environments (formerly offered
through the
etoolbox
package); - Hooks used when loading files, packages, or classes (similar to
what the
filehook
package now provides); - Hooks in the page-building process (e.g., functionality previously
available through packages such as
atbegshi
oratveryend
and a few others).
The important point here is not so much that the functionality of these packages has been integrated into the LaTeX kernel, but that the hook management system provides a single structured way for different packages to reliably add and order code. This will resolve many of the inter-package interoperability issues which formerly could be resolved (if at all) only by loading the packages in a specific order, or by the use of complex and fragile code inside the packages to account for various scenarios in user documents.
The hook management system is currently described in these three documents (for the final release they will be consolidated):
texdoc lthooks
— The description of the interfaces and the core hooks already added to the kernel.texdoc ltshipout
— The documentation of the hooks available during the page production process.texdoc ltfilehook
— hooks that can be used before or after a file gets loaded.
Other fixes and improvements
A full list of all fixes and additions is given in a draft version of ltnews32
which you should be able to read by running
texdoc ltnews32
on the command line (or by any other means available at your operating
system—somewhere there should be a file called ltnews32.pdf
that
you can open with a PDF reader). The draft version of this file is also available from our website as
LaTeX2e News Issue 32 draft.
Outlook
We expect to produce a third and final pre-release incorporating the user feedback we receive and consolidating some of the documentation. A few additional outstanding issues are expected to get fixed as well, but nothing major — the main functionality planned for the fall release is available already now with the second pre-release.
Please help with the testing
We are issuing this second pre-release now in the hope that you will help us by making sure that all the enhancements and fixes we have provided are safe and that they do not have any undesired side effects, so please help with the testing if you can.
This development format allows you to test the upcoming LaTeX release scheduled for 2020-10-01 with your documents or packages. Such testing is particularly important for package maintainers to verify that changes to the core LaTeX haven’t introduced incompatibilities with existing code. We try to identify any such problems beforehand but such an undertaking is necessarily incomplete, which is why we are asking for user testing.
Besides developers, we also ask ordinary users to try out the new release, because the more people that test the new format, the higher the chances that any hidden problems are identified before the final release in October hits the streets.
Processing your documents with the pre-release is straightforward. All
you have to do is to replace the invocation command by appending
-dev
to the executable, e.g., on the command line you would run
pdflatex-dev myfile or lualatex-dev myfile or xelatex-dev myfile
instead of using pdflatex
, lualatex
or xelatex
. If you use an
integrated editing environment, then it depends on the system
how to configure it to use an alternative format; but in any case the necessary
modification should be straightforward.
Enjoy — Frank
-
The internal version number for the pre-release is
LaTeX2e <2020-10-01> pre-release-7
, the first 5 pre-releases just mirrored the patch releases we did for 2020-02-02. ↩