What is the best way to learn TeX?

The TeXBook (by Knuth himself) is actually great! It starts with examples and explains clearly all the things starting from the simplest things that you're most likely to need, and goes sufficiently deep. It is a strange book in that it needs to be read in multiple passes, but you can do it. It's worth reading, especially since it also gives you insights that can be later crucial — into typography, why Knuth made the choices he made, and other issues about the internals of TeX.


Roger, you may have noticed something about the replies to your question. There is no consensus. This indicates that there is no real standard path to learning TeX. I've learned TeX the same way most of these folk have. I've read The TeXbook. I've read 'TeX by Topic'. I've spend hours, days, years pouring over OPC (other people's code) as the spittle drips from my mouth onto the page and my brain freezes and causes global body-locking until I fall off my chair in a dead faint. I've screamed and yelled at the impersonal sky-gods who have decreed that the people who know TeX will never set up easy and accessible methods of teaching and learning TeX except by the hard and stony path that they have trod. There shall be no web-sites where tex code can be looked at and reviewed by the tex-sages. There shall be no books on advanced TeX programming or methods of learning the TeX way implements standard algorithms or do standard thing that are in chapter 1 of most programming books. There shall be no path but the one; the path of figuring it all out by yourself.

You see, Roger, the *TeX community is not like other communities of software enthusiasts. In other communities there are books, magazines, classes, websites, and endless ways to learn the tips and tricks of programming in their language. People who know things are glad to help you, even if you are asking things that require them to read more than 10 lines of your code. Sometimes lots of code. There are places to get code reviews of your code. They actually like to spread their knowledge and watch their language spread around the world, creating thriving and pulsing groups of enthusiastic coders.

But in the *TeX world, we hate sharing what we know. Especially with those who don't know and want to learn. We're definitely not going to make it easy for you. If you weren't lazy, you'd do what we did, read the TeXbook, read 'TeX by Topic', read OTP, drool on our desks till you faint. You know, what non-lazy people who don't want others to do all their work for them do.

Let's see. It's almost 2011. TeX was created in 1979 and 'finalized' in 1982. That's almost 30 years ago. Ruby was released in 1995, 15 years ago. Last time I was in Borders, there was a whole shelf or two of Ruby programming books. There were none on programming TeX.

You know what happens when there is no simple path to learning something? Knowledge is lost over time. Are there more people willing to tread the hard and stony path to learning TeX today than 10 years ago, or less? Where is *TeX, and by extension, typographically beautiful documents, going to be in 50 years? Will *TeX, or any descendants, exist?


Victor Eijkhout's Tex by Topic provides for a good reference. It can complement more tutorial-style texts.