TeX pestilence (was Distributed RVS, Darcs, tech love)
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