Tex Live 2021 Now Available!
Paulo · October 20, 2021We’re pleased to announce that we’ve upgraded our LaTeX compile servers to make TeX Live 2021 live and available on Overleaf! As of October 2021, all new Overleaf projects will be based on TeX Live 2021 — you can read below for the key information and important changes.
What is TeX Live?
TeX Live is a free distribution of the TeX typesetting system that includes many TeX-related programs, fonts and macros packages, including LaTeX. At Overleaf we use TeX Live on our compile servers to power the real time preview and produce your project's PDF output.
Will my existing projects work as usual?
Absolutely! This upgrade to TeX Live 2021 will not affect any existing projects you are working on. All existing projects will continue to use the TeX Live image they were created with, and should continue to work as normal.
How can I switch to TeX Live 2021 for existing projects?
This is super easy with our Switch your TeX Live Compiler feature that we launched in April 2020. The TeX Live Compiler feature allows you to switch between TeX Live versions as and when you need to, and most importantly enables you to submit your work to publishers, preprint servers, and other platforms that use a specific TeX Live version to compile submissions.
What’s New in TeX Live 2021?
You can find the official release notes for TeX Live 2021 on the TUG website. The key highlights are:
General
- Donald Knuth's changes for his 2021 tuneup of TeX and Metafont are incorporated.
- If
\tracinglostchars
is set to3
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. Also, macro logging is truncated at a depth ≥ the parameter value.
LuaTeX
- Lua is updated to 5.3.6.
- Callback for nesting level used in
\tracingmacros
, as generalized variant of the new\tracingstacklevels
(see previous section). - Mark math glyphs as protected to prevent processing as text.
- Removed width/ic compensation for traditional math code path.
pdfTeX:
- 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 infmt
file.
It's worth noting that the underlying operating system is Ubuntu 20.04, which along with TeX Live 2021 enables new fonts for your Overleaf projects (for a full list of supported fonts see our help file Which OTF or TTF fonts are supported via fontspec?).
Key Changes in TeX Live 2021
Document Hooks and bad uses of \AtBeginDocument
At the end of 2020, LaTeX added support for a general hook management system:
- 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).
Old templates modifying \document
, \enddocument
using \def
may now break.
Some old templates may need to make sure that packages like hyperref
, cleveref
are loaded last with
\AddToHook{begindocument}{
\RequirePackage{hyperref}}
\RequirePackage{cleverer}
\hypersetup{...}
}
If you had been using a template that has worked fine in the past, but now reports errors at \begin{document}
when you switch to TL2021, you may want to continue using TL2020 and check with the template maintainer/author to see if they have released any updates to the template.
siunitx
The siunitx
package is now in v3, with many changes: see the package documentation for details.
Instead of \SI
, \si
, \SIlist
, \SIrange
, siunitx
now provides more descriptive command names, so you can now write \qty{3.5}{\meter\per\second}
; \unit{\kilo\ohm}
; \qtylist{0.76;0.8;1.54}{\micro\gram}
; \qtyrange{0.4}{2.5}{\centi\meter}
, etc. The old commands will still work, but it is recommended to use the new commands.
However many options, including load
, input-product
, inter-unit-separator
, input-complex-roots
, quotient-mode
, tab-format
, unitspace
, etc. have been deprecated. You'll encounter compile errors if you use these options now.
In addition, siunitx
will no longer accept quotient inputs like \qty{1/3}{\metre}
, unless you apply the parse-numbers=false
option: \qty[parse-numbers=false]{1/3}{\metre}
For complex numbers, there are now special commands \complexnum{1+2i}
or \complexqty{1+2i}{\metre}
.
Previously you could write \SI{18}{\squared\second}
or \SI{18}{\second\square}
without incurring compile errors; the output just won't be correct (the superscript 2
will be missing). siunitx v3 is now stricter: \square
must now be written before a unit, while \squared
must be written after a unit; otherwise compile errors will be raised. That is to say: write \qty{18}{\square\second}
or \qty{18}{\second\squared}
always.
In earlier versions of siunitx
, you could typeset a unit prefix e.g. \si{\micro}
. This is no longer allowed in siunitx
. Instead, you will need to write:
\DeclareSIUnit\noop{\relax}
\unit{\micro\noop}
as recommended in the siunitx
package documentation.
Obsolete packages
The catoptions
package is incompatible with TeX Live 2021; a simple \usepackage{catoptions}
will promptly give you an error. Don't use it; instead, consider a newer alternative, e.g. xkeyval
, pgfkeys
, or l3keys2e
.
This also means any package that uses catoptions
internally will also now fail, e.g. the xwatermark
package. You can use alternative packages that offer similar functionalities, for example draftwatermark
.
The tocstyle
, tabu
packages are now also obsolete, and should not be used.
Assorted notes
Be mindful of the following notes when using TL2021:
- Don't put blank lines in
\author{...}
,\title{...}
,\date{...}
. The default\maketitle
in TL2021 will complain very loudly. - The
polyglossia
andbabelbib
packages are not compatible now, so usebabel
instead ofpolyglossia
, if you need to continue usingbabelbib
in your project. - Some old templates' re-definition of
\@xfloat
will break figure environments; contact template maintainer for updates. - When using
\documentclass{amsart}
, captions might be misaligned. You can add\captionindent=0pt
as a fix. - When using
\documentclass[linenumbers]{aastex631}
, tabulars with auto-wrappingp{...}
columns will raise errors. As a workaround, you may need to add\nolinenumbers
before the tabular to suppress line-numbering, and then add\linenumbers
after the tabular, to re-enable them.
Where can I find information on previous TeX Live versions?
Full TeX Live release notes for all versions can be found on the TUG website. We’ve also written helpful updates for previous releases including TeX Live 2020, TeX Live 2019, TeX Live 2018 and TeX Live 2016.
Getting Help
As always, if you need help at any time with your Overleaf project, then please reach out to our support team, providing the link to your project, and they’ll try to help!