This one is a little late and a bit exotic. You will not find it in typical linux/bash tutorials or books. I stumbled upon it by literally going through all available commands on my old CentOS laptop, and curiosity earned its rewards…

Maybe you have at one point worked with process diagrams, e.g for workflows, that are data-driven and change a lot. Or formulae. Or just any other typesetting from source to print. I have at some points, and never found a really satisfying solution. LaTeX is overkill and dependency hell, Jupyter Notebooks are really cool as long as you stay digital. No satisfying print solution though. Why not try troff then?

Troff is a whole toolchain and adheres closely to the UNIX philosophy of a tool doing a very limited task very well, and then piping together those tools.

The troff workflow

Image: The troff workflow (obviously generated by troff)

Well, it is nerdy. And I haven’t really used it in production yet. But it is truly fascinating that such a high quality tool has been around since the seventies, and is distributed on almost any Linux and Mac machine nowadays, along with postscript. Thanks to GNU, and to manpages (where it is used to typeset terminal output!) And meanwhile we struggle with compatibility issues of Word, PDF, OpenOffice documents every day. Have I learned the wrong IT skills at school?

Well, the syntax is really arcane. It is imperative/assemblerish (seems you have to constantly toggle some buttons and move stuff around registers, and the brevity reminds of vi).

Here’s a little taste:

.ll 4.0i
.in 2.0i
101 Main Street
Morristown, NJ  07960
15 March, 1997
.sp 1i
.in 0
Dear Sir,

.ti 0.25i
I just wanted to drop you a note to thank you for spending the
time to give me a tour of your facilities. I found the experience
both educational and enjoyable. I hope that we can work together
to produce a product we can sell.

Scary. But wow, that thing is compact! Markdown seems like SOAP compared to it. There remains an intriguing chance of troff being worth the time learning, of fooling around with these ‘spells’ , in order to achieve writing efficiency comparable to stenography.

I might even take the chance. I certainly do not regret having learned vi.