What TeX Gets Right
newton.cx
newton.cx
Which required a special type of source reference/footnote formatting that I took from some legal/law-related LaTeX package. It also required sections typeset in Sanskrit and old Greek. Different package. There were issues when using them together. That was just the most headache-inducing bit I remember as this was way more than a decade ago.
I'm also a developer, most of my life was C/C++, now Rust. But also Tcl, Python, Lua, some projects in specialized functional languages etc.
Even with this BG, using LaTeX for the aformentioned thesis, a project where no good readymade template/package that covered all requirements was available, was painful.
I worked as a typographer and designer for a decade from my late teens to my late 20's. That was mostly PageMaker and then InDesign (I circumvented QuarkXPress where I could).
Using these desktop publishing packages was also often painful. Just in ways orthogonal to the painfulness of LaTeX.
I think a typsetting system needs to hit a sweet spot where you can do almost anything you can do in a desktop publishing software and almost anything you can do in a system like LaTeX.
I think typst (see [1], currently on HN front page) is on a good trajectory to be just that. Eventually.
I don't think (La)TeX was or ever will be able to hit that sweet spot.
But I could find that "sweet spot" in ConTeXt. Switched to it 12 years ago and never looked back.
I can't feel the same way about Typst. Maybe I'm wrong but it seems to me it's going to have the same kind of Achilles heel than LaTeX.
I'd say not quite, it's more the way that the entire system is built on shaky grounds, namely an insane operational model, an insane syntax, the lack of separation of concerns and the lack of namespaces. TeX could have been built on top of a predictable syntax, a transparent operational model, with a separation of styling and content and giving modules segregated namespaces, but none of that happened. When Leslie Lamport wrote LaTeX he tried to inch closer to these and other desiderata; when I built a system on top of XeLaTeX that started with a Markdown-ish/HTML-ish input syntax and compiled a XeLaTeX source text I certainly hoped I could achieve some kind of operational sanity and shield me from many of the dirty details, but in the end I gave up.
Edit Ah and to address your point I believe it's not modularity per se it's just that TeX is at its very heart an environment that is actively hostile to being clean and modular, it acts like it wants very much to be a wibbly-wobbly ball of stuff.
In the end I gave up Typst. Didn't like it. Yes, Typst might be better for some but for writing basic documents like an article or basic math paper, Typst didn't work for me.
It’s like writing an article about Python and someone comments about speed differences between Cpython and Julia. Sure, Cpython isn’t Python, but isn’t that still valid and interesting?
If TeX gets fixed in the way OP is dreaming about (but doesn't actually detail), it probably wouldn't be compatible with LaTeX. Just like many styles aren't compatible with ConTeXt.
No way, I found no good statistic about it but I would be surprised if Cpython was under 80% of user share among python implementations.
The comments don’t have to be exactly what the article is talking about, it was just mentioning another direction typesetting could evolve. The article is about improving TeX, and someone made a comment about typst, which claims to be a LaTeX successor. Do you not see how that is relevant to the article?
I can not imagine someone having an easier time with (La)TeX than with Typist, when starting from zero.
The author carefully notes that the blog is not typeset in TeX, but I was disappointed that someone who cares for typography would think that the point of math mode is to shove everything in an <em> (not even <i>) tag. TeX sets what it thinks of as variables in an appropriate slanted (not exactly italic) type, but it would not (unless specifically instructed to do so) put the exponent 2 in y = x^2 in that same slanted type.
(Incidentally, the Turing completeness that the author mentions was against Knuth's original vision for the language; as the mythology around TeX goes—although I can't find a source right now—he added the relevant extra power (I'm not sure what it was) only "reluctantly." At Guy Steele's request, by the way!)
That is totally absurd. TeX is an awful programming language and there is no changing that. Either you accept it and suffer through it or use something else. But it obviously the worst thing about typesetting in any TeX derived system.
I remember in the '80s hearing that someone had written a Fortran compiler in troff, just to prove it could be done.
You must be fun at parties.
There's all kinds of weird stuff that people do, like the other day I saw a guy with a wingsuit that was apparently crafted from a carpet jump into the abyss to ride the winds. "I can not take people seriously who do not just use a carpet and jump off cliffs". You do you I guess.
Early on in my learning graphic design I found the interactive tools of the time (Aldus PageMaker, Quark XPress) quite primitive and limiting --- at one point in order to have the control I wanted I was using Altsys Virtuoso (basically Macromedia Freehand v4, a drawing program) to lay out books --- at least it would hang punctuation.
Finding TeX on my NeXT Cube and then learning it meant that I had access to a tool which rather than being limited by what features a corporation decided to implement for a given version, was only limited by computer processing power, storage space, and my facility to write macros.
A good example of this is: https://graphicdesign.stackexchange.com/questions/31088/any-...
In addition to a lot of books and so forth, I've used TeX to:
- write the typesetting back-end for "HS" ads for an interactive phone book production system
- measure all the ads for a country's phone book, check the dimensions against their nominal size, and then either correct them (so that they would fit correctly) or note that ad in a list (so that the ad could be re-designed at the correct size)
- implement the typesetting back-end for a customizable story book where the text was selected by the user and their choices would be implemented so as to set the desired appearance of images
More importantly, for general development, when making TeX, Dr. Donald E. Knuth created Literate Programming:
http://literateprogramming.com/
which programming style has allowed me to make larger and more complex programs more easily.
What TeX gets wrong: flexible macros. There's a very good reason we shy away from "cannot be parsed, only executed" when designing a language these days. There's also the major issue of namespacing.
It's quite reminiscent of the Curse of Lisp, except somehow worse.
Macro expansion just is not a good programming paradigm. And often when I was facing a problem which could have been handled programmatically in TeX, e.g. generation of a table, it turned out far more complex than expected. No doubt if I didn't have hundreds of hours typesetting LaTeX, but hundreds of hours programming TeX it would have been relatively easy. But my point is that having a good language at the core would make these tasks immediately obvious to someone with significant programming experience.
I don't think a lisp would have been a bad option, although I generally do not really like the syntax. Certainly it is a far better option than macro expansion.
I'm grinding on the thesis in emacs, zotero, texlive, and qgis.
Not a proprietary package in sight.
And I will use proprietary software when sensible: my Open Source leanings are not religious in nature.
But the public nature of the product is huge.
Like typst?