The third and final 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 final pre-release for 2020-10-01
In the previous pre-releases, distributed in May and July, the following main features (besides bug fixes) were made available:
- The functionality of the
xparse
package was added directly to the LaTeX kernel. - LaTeX’s font series handling was improved.
- A general hook management system was added to improve package interoperability and enable easier customization.
In this final prerelease we have fully integrated the hook management system (previously it was added at the end, overwriting earlier definitions in the kernel). In addition the following features were added:
- The picture environent now supports dimensions (and not only
numbers multiplied by
\unitlength
) in places where coordinates have to be specified. This is basically incorporating into the kernel the functionality of thepicture.sty
package by Heiko Oberdiek. - A
\ShowCommand
was added to show the definition of robust commands in an easy manner. - A
\NewCommandCopy
was added to allow making copies of robust commands (which can’t be done using\let
). docstrip
andl3docstrip
were merged so that one can now always usedocstrip
even withexpl3
-based sources.
Other fixes and improvements
There have been a larger number of smaller bug fixes and enhancements.
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 with 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.
A general hook management system for LaTeX (the main feature of the 2020 fall release)
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. This resulted in many problems.
With the new hook management system, LaTeX will get many more hooks that packages 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:
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.
Outlook
We expect this to be the final pre-release matching the code that goes into the 2020-10-01 release, except for any bug fixes that are found between now and the release date.
Please help with the testing
We are issuing this final 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 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 this pre-release is
LaTeX2e <2020-10-01> pre-release-8
, the first 5 pre-releases just mirrored the patch releases we did for 2020-02-02. ↩