TeX Live 2021 released

Get the Champagne ready, we have released the final images of TeX Live 2021.

For this year’s release process we have changed how to deal with updates of the tlnet distribution for TeX Live 2020 during the preparation: Due to many complaints in the last year that the freeze period of 1-2 months which we need to get all binaries compiled and in shape, we have continued to update TeX Live 2020 while at the same time preparing TeX Live 2021. What that means is that probably far less people felt compelled to try the pretest release of TeX Live 2021, and thus the current release might have seen less testing – we will see how it fares!

Also, just shortly before the release, a security relevant report reached us and we had to fix up a bunch of security issues in various programs, thanks to the report with excellent test cases this could be done in time for the release.

Before providing the full list of changes, here a few things I would like to pick out:

  • MacTeX: support for new ARM based machines
  • dvipdfmx: The last year has seen an interesting rise in interest into dvipdfmx, which is often used to convert documents of the Japanese TeX engines, but also the main backend of XeTeX. The new version in TL 2021 has a long list of improvements and better support.
  • Engines: several new debug primitives (\tracing...)
  • have been introduced

Most of the above features have been available already either via tlpretest or via regular updates, but are now fully released on the DVD version.

Thanks goes to all the developers, builders, the great CTAN team, and everyone who has contributed to this release!

Finally, here are the changes as listed in the master TeX Live documentation:


  • Donald Knuth’s changes for his 2021 tuneup of TeX and Metafont are incorporated (https://tug.org/TUGboat/tb42-1/tb130knuth-tuneup21.pdf). They are also available on CTAN as the knuth-dist and knuth-local packages. As expected, the fixes are for obscure cases and do not affect any behavior in practice.
  • Except in original TeX: if \tracinglostchars is set to 3 or more, missing characters will result in an error, not just a message in the log file, and the missing character code will be shown in hex.
  • Except in original TeX: a new integer parameter \tracingstacklevels, if positive, and \tracingmacros is also positive, causes a prefix indicating the macro expansion depth to be output on each relevant log line (e.g., ~.. at depth 2). Also, macro logging is truncated at a depth ≥ the parameter value.
  • Aleph: The Aleph-based LaTeX format, named lamed, has been removed. The aleph binary itself is still included and supported.


  • Lua 5.3.6.
  • Callback for nesting level used in \tracingmacros, as generalized variant of the new \tracingstacklevels.
  • Mark math glyphs as protected to prevent processing as text.
  • Removed width/ic compensation for traditional math code path.


  • SOURCE_DATE_EPOCH environment variable support for reproducible output.
  • Avoid wrong final % in mpto.
  • Document -T option, other fixes to manual.
  • Value of epsilon changed in binary and decimal modes, so mp_solve_rising_cubic works as expected.


  • New primitives \pdfrunninglinkoff and \pdfrunninglinkon; e.g., for disabling generation of links in headers and footers.
  • Warn instead of aborting when “\pdfendlink ended up in different nesting level than \pdfstartlink”.
  • Dump \pdfglyphtounicode assignments in fmt file.
  • Source: poppler support removed, as it was too hard to keep in sync with upstream. In native TL, pdfTeX has always used libs/xpdf, which is cut-down and adapted code from xpdf.
  • XeTeX: Fixes for math kerning.


  • Ghostscript is now invoked safely by default; to override (assuming all input files are trusted), use -i dvipdfmx-unsafe.cfg. To use PSTricks with XeTeX, this is required, as in: xetex -output-driver=”xdvipdfmx -i dvipdfmx-unsafe.cfg -q -E” …
  • If an image file is not found, exit with bad status.
  • Extended special syntax for color support.
  • Specials for manipulating ExtGState.
  • Compatibility specials pdfcolorstack and pdffontattr.
  • Experimental support for dviluatex’s extended fnt_def.
  • Support new feature of virtual font to fallback Japanese font definition.


  • Default PostScript document title is now the basename of the input file, and can be overridden with the new option -title.
  • If an .eps or other image file is not found, exit with bad status.
  • Support new feature of virtual font to fallback Japanese font definition.


  • MacTeX and its new binary folder universal-darwin now require macOS 10.14 or higher (Mojave, Catalina, and Big Sur); the x86_64-darwin binary folder is no longer present. The x86_64-darwinlegacy binary folder, available only with the Unix install-tl, supports 10.6 and newer.
  • This is an important year for the Macintosh because Apple introduced ARM machines in November and will sell and support both ARM and Intel machines for many years. All programs in universal-darwin have executable code for both ARM and Intel. Both binaries are compiled from the same source code.
  • The additional programs Ghostscript, LaTeXiT, TeX Live Utility, and TeXShop are all universal and are signed with a hardened runtime, so all are included in MacTeX this year.

tlmgr and infrastructure:

  • keep only one backup of the main repository’s texlive.tlpdb.
  • even more portability across systems and Perl versions.
  • tlmgr info reports new lcat-* and rcat-* fields for local vs. remote Catalogue data.
  • full logging of subcommands moved to new log file texmf-var/web2c/tlmgr-commands.log.

That’s all, let the fun begin! And again, thanks to all the developers, builders, the great CTAN team, and everyone who has contributed to this release!

1 Response

  1. 2021/09/22

    […] the changes listed in the upstream release blog apply also to the Debian […]

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>