The second (and final) LaTeX prerelease for 2020-02-02 is available for testing
A few days ago we submitted a new LaTeX development format to CTAN and by now it should be available to all users using MikTeX or TeX Live (on any operating system).
This format allows you to test the upcoming LaTeX release scheduled for 2020-02-02 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 problem beforehand, but such an undertaking is necessarily incomplete, which is why we ask for user testing.
Besides developers we also ask ordinary users to try out the new release candidate, because the more people who test the new format, the higher the chances that any hidden problems are identified before the final release in February hits the streets.
Processing your documents with the prerelease 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.
Please test now — this is the final pre-release prior to the main 2020-02-02 release
We ask you to test now, because this pre-release (with the execption of some further documentation improvements) is representing the 2020-02-02 in the way we want to roll it out in February.
If you encounter any issues with it, please open a bug report at our Issue Tracker for LaTeX2e.
Main features of 2020-02-02 prerelease 3
For technical reasons this second prerelease is labeled “prerelease 3”. Prerelease 1 existed only for a few hours on CTAN, as it was missing some files due to a problem in the build process, but because it was already on CTAN we had to increase the prerelease number.
Improvements for selecting and managing modern fonts
Many modern fonts available these days offer additional font faces,
e.g., small caps italics or a condensed font series, etc. To better
support these fonts NFSS (the New Font Selection Mechanism for
LaTeX) was extended by incorporating ideas from the mweights
,
fontaxes
and fontspec
packages. In addition all symbols formerly
provided through the textcomp
package are now available out of the
box and the use of \oldstylenums
got improved.
We also fixed a number of smaller bugs. A detailed description of the
new features and the bug fixes can be found in a draft version of
ltnews31
which you can access via texdoc ltnews31
if the
pre-release is installed on your computer.
Main features already available in the previous pre-release
Below is a summary of the main features that were made available earlier in the first pre-release.
A new LuaTeX engine coming up …
In TeXLive 2020 the LuaLaTeX format will always use the new LuaHBTeX
engine, which is LuaTeX with an embedded HarfBuzz library.
HarfBuzz can be used by setting a suitable renderer in the font
declaration. An interface for that is provided by the fontspec
package.
This additional font renderer will greatly improve the shaping of
various scripts, which are currently handled correctly only by
XeTeX.
To simplify the testing of the new engine, the necessary executables have been added to MiKTeX and TeXLive 2019 and both have changed the LuaLaTeX-dev format to use it. This means you can already now test the new engine by using the prerelease!
Even if you have no need for the new HarfBuzz functionality it might be worthwhile running some tests, because, from 2020 onwards this will be the only LuaTeX engine for which a LaTeX format will be distributed in TeXLive and MikTeX.
Improved load-times for expl3
The LaTeX3 programming layer, expl3
, has over the past decade moved
from being largely experimental to broadly stable. It is now used in a
significant number of third-party packages, either explicitly or
implicitly (e.g., by loading xparse
to define user command
interfaces), so that many documents load the expl3
code at some
point in the preamble. Most LaTeX documents compiled using XeTeX or
LuaTeX load fontspec
, which is written using expl3
so in these
engines it is nearly always used.
The expl3
layer contains a non-trivial number of macros, and when
used with the XeTeX and LuaTeX engines, it loads a large body of
Unicode data. This means that even on a fast computer, there is a
relatively large load time penalty whenever expl3
is needed.
For this release, the team have made adjustments in the LaTeX 2e kernel to
pre-load a significant portion of expl3
when the format is built. This is
transparent at the user level, other than the significant decrease in document
processing time: there will be no “pause” for loading Unicode data
files. Loading of expl3
in documents and packages can be done as usual;
it will, at some future time, become possible to omit
\RequirePackage{expl3}
entirely, but, to support older formats, this explicit loading is at present still recommended.
The prereleases will never go stale in the future (we hope)
The release policy we will follow should ensure that the -dev
releases are never older than the main release.
When a full 2020-02-02 release is made, the -dev
release will be
updated to be the same format, or possibly
a pre-release of the next release. It will not be left as a
pre-release of 2020-02-02 at that point.
More details on prereleases please …
More details and some background information about these concepts and the process of the development formats is available in a TUGboat article:
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.
Enjoy — Frank