A Research Blog

Why I dislike TeX (a pre-deadline rant)

TeX and LaTeX are in many ways, amazing pieces of software. Their contribution to improving and enabling scientific communication cannot be questioned, and I have been a (mostly) grateful user. But sometimes even grateful users have to rant a bit..

My main issue with TeX is that, at its heart, it is a programming language. A document is like a program, and it either compiles or doesn’t. This is really annoying when working on large projects, especially towards a deadline when multiple people are editing the document at the same time.

The issue is that a document is not like a program: if I made a typo in line 15, that’s not an excuse not to show me the rest of the document. In that sense, I much prefer markdown, as it will always produce some output, even if I made some formatting errors. Even the dreaded Microsoft Word will not refuse to produce a document just because I forgot to match a curly brace. (Not that I’d ever use Word over LaTeX!)

In fact, in this day and age, maybe it’s time for programs to behave more like documents rather than the other way around. Wouldn’t it be nice if we could always run a program, and instead of halting at the first sign of inconsistency, the interpreter would just try to guess the most reasonable way to continue with the execution? After all, with enough data one could imagine that it could guess correctly much of the time.

Do people actually learn TeX as a language, though? I thought one mostly fiddles with stuff and crosses their fingers. On top of that, “multiple people editing a large, complex project at the same time” is a solved problem for projects vastly more complicated than papers. But from what I’ve heard most folks use Dropbox instead of git for TeX projects.

If I understand correctly, the reason academics wouldn’t spend the time to find/make better tools is because tooling is a tertiary concern to writing math papers. Unlike for software engineers, where smooth tooling across large teams is the primary concern while the ideas are simple. You could rebalance the tradeoff or reorganize your workflow so that typesetting (the kind where you care about page size and columns and figure placement) is the last step and you can use Markdown for the other 95% of the writing process.

I do use git and overleaf and indeed prefer to use markdown when I’m not writing a research paper.

I think that one of the reasons we need to use heavy duty tools such as git to collaborate on a papers (or a constant barrage of emails “I am taking the token for X”), as opposed to something easier such as Google docs, is because Tex makes documents more like programs.

As I said, if anything I believe that programming should become more “forgiving” ( like documents) than the other way around.