Donald Knuth – The Patron Saint of Yak Shaves
yakshav.es
yakshav.es
I know Knuth thinks it's feature complete, but it produces deeply incomprehensible error messages and lots of erroneous warnings that look like errors. Very hard to debug, and that alone turns people off.
If you add in the preamble
\hfuzz=1pt
then (La)Tex will allow bigger overflows without complaining (and almost nobody will notice). The default value is 0.1pt, that is really small.For internal documents or early drafts you can use 5pt. :)
I can't really comment on what Knuth did right or wrong, but for me reading The TeXBook pretty much made Tex fun where it had previously felt arcane and frustrating. I'm convinced that overall the few hours invested there ended up saving me more hours of frustration on my masters thesis.
It seems that there's room to say that we should learn our tools before cursing them. Typography is surprisingly subtle and fraught with challenges, and I'm not yet convinced that it's a problem that can be made to Just Work in all cases.
I wrote my own thesis in Latex and would do it again in a heartbeat. But it really lacks popular appeal.
Knuth has done a great job that should be the model for all other software writers: every error is described in two ways, one somewhat formal and one somewhat informal, and every error is shown with enough context (and this is configurable too) for you to quickly see what the issue is, and you can even fix errors without having to abort the compilation. He has a great talk where he describes how the English language is optimized for dialogue (things like "I" and "you") and TeX messages are designed in that way.
Unfortunately, LaTeX consists of several layers of complicated macros (all in the name of making things convenient for, and hiding things from, the user) and as they (correctly) decide that all these layers won't make sense to the user, they actually turn off all the context that goes with the error, leading to error messages that are incomprehensible even to experts. But I don't think it's right to blame the fact that LaTeX didn't bother to implement good error-recovery on TeX.
Is this online? I listen to everything I can from Knuth but haven't heard this one.
> My work on developing TeX, METAFONT, and Computer Modern has come to an end. I will make no further changes except to correct extremely serious bugs. […] I strongly believe that an unchanging system has great value, even though it is axiomatic that any complex system can be improved. Therefore I believe that it is unwise to make further "improvements" to the systems called TeX and METAFONT. Let us regard these systems as fixed points, which should give the same results 100 years from now that they produce today. […] anybody can make use of my programs in whatever way they wish, as long as they do not use the names […] In particular, any person or group who wants to produce a program superior to mine is free to do so. […] Of course I do not claim to have found the best solution to every problem. I simply claim that it is a great advantage to have a fixed point as a building block. […] I welcome continued research that will lead to alternative systems that can typeset documents better than TeX is able to do.
make latexpdf epub text htmlWith work, you can get something that does most of what you want with a few stacks. You can cobble it together for markdown. Alternatively, there are strong plugins to emacs org mode that can go to TeX, then postscript, then PDF. There is probably a stack centred around docbook as well.
My experience has been that if you care about details, you will need to write parts yourself, as you have done. Emacs org mode is a good starting point. You can create your foundation data structures in org-mode trees, and then transform out to the main render pipelines (TeX, etc).
https://books.google.com/books?id=_tgh4bgQ6PAC&printsec=fron...
Compilers are computer programs that translate a program written in one language into a program written in another language.