LaTeX in 2020

My PhD is in Pure Mathematics. Every day I read beautiful documents typeset in the wondrous system of LaTeX. It is neat, elegant, easy on the eyes and designed with mathematicians in mind. I love LaTeX documents, and so should you.

But it is not only in academic writing that the TeX’ed document appeals. The archery club I run has its minutes taken (not by me) in LaTeX. This blog, when it has formulae, will use some form of TeX. I’ve written formal letters in LaTeX And then there is this beauty:

A beautiful page of LaTeX

That is the DnD 5e LaTeX template. What follows is my struggle to try render that very page on my own laptop.

The Problem

To get started, I needed to install some packages. Long story short, I realised I needed to reinstall my LaTeX installation. Firstly, lets look at the recommended way to install LaTeX on Ubuntu:

# apt install texlive

I am working on Ubuntu 18.04 (published April 2018). While Ubuntu 20.04 is the latest long term support version, 18.04 should be good until April 2023. The exact version of the operating system I’m on shouldn’t matter, but unfortunately it does.

The above works out fine and we now have access to tlmgr - the tool for managing packages for a TeX Live installation1. But if, for example, we try to update our TeX packages to the latest version we learn

(running on Debian, switching to user mode!)
tlmgr: Remote repository is newer than local (2017 < 2020)
Cross release updates are only supported with
  update-tlmgr-latest(.sh/.exe) --update
Please see for details.

Lets unpack this, line by line.

  1. I ran this as a user, not a superuser. Why is it telling me it is switching to “user mode”, and why so enthusiastic? Did I do something wrong?
  2. Yes, 2017 < 2020. I would presume that “the repository” has some sort of version numbering to keep track of things. Does this imply that the version number is simply the year in which the repository was made? And just from the sentence structure, if you say “A is newer than B”, then as justification I expect to see A > B, not B < A. It took me a moment to work out which was 2017 and which 2020.
  3. What is a cross release?
  4. Ok, is this a script in my path? Suspiciously it has an option for .exe and I am on Linux.
  5. Ahh, at last, a lead.

Googling the terminal output, the first hit is a TeX stackexchange question. I’ll let the question speak for itself:

I’m not able to get past this error. I do not wish to do a fresh install of texlive. Why is texlive so frickin annoying? Why does it force me too fresh install? Why can’t I just upgrade texlive like any other piece of software? Why can’t I just use the older version? Why can’t I live in peace?

The answers speak for themselves. Top of the list (and accepted by the poster) is “Downgrade to 2017” with successive answers either being “what do you need that came out since 2017” and “just install a new version of TeX Live.” I claim that downgrading code is never the answer, so lets try the latter.

The link given in the output above is good, and points to a page proudly proclaiming to have been updated on 2020/04/12 at 22:31:56. The title is “Upgrade from TeX Live 2019 to 2020”. Ok… well, I am sure I can substitute/upgrade three times.

It asks you to not update, and rather install the new version fresh. Since I installed TeX Live but minutes ago that shouldn’t be a problem. However following's advice and heading over to the “Quick Install” page (updated just minutes after the “Upgrade” page), we are presented with the perplexing instruction to “[get] the DVD from a TeX user group (ideally by becoming a member)”.

I check my calendar. Yep. It is indeed 20202.

Thankfully they offer an option to download. The first three options provided are: installing over the internet (yay), or getting a DVD (what) or downloading an ISO to burn to a DVD (no). Following the link to the internet installation (we are now three links deep from where we started) we finally get a tarball. Huzzah!

Running the installer meets with a rude shock: an estimated 7GB of required space. Installation from apt took under 200MB3. 2GB of the space is taken up by “additional fonts”. TeX Live seems to want to clone all of CTAN (a package repository for LaTeX) to my computer. I don’t actually have that space on my little laptop and I’m reticent to pick and choose which of the features to install, because they are given odd names like “Humanities packages” and “PSTricks”. Even so, I only get the estimated size down to about 2GB before I’m deselecting things I don’t understand. I call it a dead end.

As with most things in IT problems, we are several layers deep now, and need to backtrack up the tree of choices to find a new approach. In this case, its to the Upgrade page on What if we actually try to upgrade?

The first step is to “download and cleanup”. Cleaning up seems to involve deleting some directories (sudo rm never feels good), but then its the same thing again. The same installer. Worse, reading on, you are asked to change your PATH manually to the new TeX Live binary folder.

At this point I give up completely.

Post mortem

The key to the riddle of “why is this so hard” lies in the penultimate section of the update page (emphasis mine).

If you want to update packages from CTAN after installation, see these examples of using tlmgr. This is not required, or even necessarily recommended; it’s up to you to decide if it makes sense to get continuing updates in your particular situation.

TeX live has decided that the world is so stable that whatever packages you install when you install TeX Live will be enough and you will never need another from CTAN. At least not more than one year after your installation.

And in fact that is the theme here: Ubuntu supplies a TeX Live from 2017 as part of its 18.04 repository and TeX Live from 2017 won’t update anything. Both assume that “old code is fine - tried and tested”, which is to an extent true. But sometimes we want new features and new libraries. The DnD 5e template is not yet on CTAN (although there is a GitHub issue pending), but even if it were I would probably have to wait until I installed a new operating system on my computer before I could use it.

And that is just not what I want from my 21st century technology.

  1. You should be forgiven for being slightly confused. I am talking about LaTeX, TeX, and TeX Live here. They are all three subtly different things. I consider this part of the problem. ↩︎

  2. Also, its not just me that thinks this feels cult-like, right? ↩︎

  3. Which is still a lot more than I’d like. ↩︎