TeX pestilence (was Distributed RVS, Darcs, tech love)

Joachim Durchholz jo at durchholz.org
Thu Oct 25 09:33:44 CEST 2007

Wildemar Wildenburger schrieb:
> Joachim Durchholz wrote:
>> And yes, it sucks in major ways.
> Oh my God, I don't want to, but I just have to ask: Why?

First of all, irregularities.
"[...]almost all of TeX's syntactic properties can be changed on the fly 
which makes TeX input hard to parse by anything but TeX itself."

Then: No locals.
In particular, processing is controlled via global flags. If you need a 
different setting while a macro is processing, you have to remember to 
reset it before macro exit.

Many packages just set the flags to a standard value.
In other words, if you didn't know that a specific flag affects the 
operation of your macro, the macro may break when used with a different 
package that sets the flag to a different default value. (This may be 
one of the reasons why everybody just sticks with LaTeX.)

Four stages of processing, and you have to know exactly which is 
responsible for what to predict the outcome of a macro.
This is more a documentation problem - for several features, there's no 
description which stage is responsible for processing it. That can make 
working with a feature difficult, since you don't know which processing 
steps have already been done and which are still to happen.

My TeX days are long gone, so I may have forgotten some of the problems, 
but I think these were the worst. (And, of course, I may have gotten 
some details mixed up, so if you're seriously interested in the good and 
bad sides of TeX, verify before taking anything for granted.)

Note that it's just the markup language that I object to. The 
typesetting algorithms seem to be remarkably regular and robust.
I would have very much liked to see TeX split up into a typesetting 
library and a language processor.
Unfortunately, that was beyond my capabilities at the time I came into 
contact with TeX, and I never got around to revisiting the issue. 
However, the TeX algorithm has been extracted and made available as a


More information about the Python-list mailing list