I know that there are a already number of questions on this site about good instructional (La)TeX materials for users at different levels.

What I am interested in, though, is what set of documents will give me (in which reading order) as complete an understanding as possible of TeX and LaTeX. If one would like to know all, why bother with "intros" anyway ;-)

I was gonna write that for TeX the best first document (and, in the sense described above, technically the only necessary one) should be "The TeXbook", but then there's e-TeX, which is not covered. And I don't know to what extent there is other, hidden advanced knowledge one can only learn only from various advanced tutorials or from looking at the source code.

Let's, for simplicity, assume that I am excluding knowledge about LaTeX packages from this question. For those, the best way is to read the package documentation. One should skim the package documentation of certain frequently used packages (those one is using) anyways.

Once one has an understanding of (e-)TeX, I have the same question for LaTeX 2e.

One reason for asking this question is that I never cease to be amazed at what gems of obscure tricks there exist. There's gotta be a way of acquiring this knowledge in a most efficient way other than by "reading around randomly and perusing the source code".

  • 3
    You also need to hijack a few brains while you are at it.
    – percusse
    Commented Feb 10, 2013 at 2:21
  • @percuße If "(La)TeX documentation" is an unsolved problem, there is value in drawing attention to that fact :-) Cause it ought to be tackled. And I'm sure there are good approximation strategies available. Commented Feb 10, 2013 at 2:28
  • 1
    I mean if you leave a lot of smart people with a limited set of instructions, they will beat the hell out of them. So, you will always keep seeing clever solutions. I guess it's not only about knowing it but also owning it in the face of weird problems :)
    – percusse
    Commented Feb 10, 2013 at 2:30
  • 1
    @percuße That is a good point. I guess there are two flavors to my question then: How to learn about "all" commands (a tricky one, because internal macros can be accessed, and it's not clear which ones one "should" know about) and how to learn about the most commonly used tricks. For the latter, I wouldn't be surprised if advanced tutorials are the best source, though there's gotta be a reasonably small selection with good coverage. Again, if not, it can be regarded as an action item :-) Commented Feb 10, 2013 at 3:12
  • 1
    Just come across this question. (mostly for future readers) There's package writing - Where do I start LaTeX programming? - TeX - LaTeX Stack Exchange but for this purpose it's not like that anyone actually collect these tricks...? There's TeX macro idioms, or: understanding advanced macros - TeX - LaTeX Stack Exchange but not very useful I guess.
    – user202729
    Commented Jun 27, 2022 at 4:29

5 Answers 5


You should read the TeXBook.

It doesn't cover everything (as you say, it doesn't cover e-TeX for example). But if you have digested the the TeXBook then you can pick up the rest as needed. The e-tex manual can be skimmed over in a few minutes if you know the basics, xetex similarly. Not that you gain mastery of all the extra commands in a few minutes, but if you know the core well, often you just need the extra manuals to check syntax of a particular command.

The information in the TeXBook can be found elsewhere, searching this site or the excellent free "TeX By Topic" manual. Often these alternative sources present the information in a more coherent and organised way, but somehow the TeXBook encapsulates more than just the syntax of the TeX language: it has something of Knuth's soul and passion for typesetting and reading it helps you understand why TeX is the way it is not just learn the way it is.

Of course, reading the TeXBook from cover to cover several times and using TeX for 25 years doesn't mean you understand all TeX code. I haven't the faintest idea about TikZ for example.

  • 1
    My personal answer digest: First "The TeXbook" (answer by David Carlisle) and then "The LaTeX Companion" (answer by Tobi), in this order. Yiannis Lazarides' answer is insightful as well, though I think an efficient path (guided by this question/answer set) will be much faster. The answer by user "vonbrand" has good opinions. I take the answer by user "morbusg" as a joke, as I - despite its wit - factually agree with barely anything in it. For example, "The TeXbook" is good, but Lamport's book is not necessarily the best intro to LaTeX from today's perspective. Commented Feb 18, 2013 at 13:58
  • The TeXbook, TeX, the program, Knuth's collected papers on computer typography, then ... everything else. For a historical perspective (and a very humbling discovery that nothing is perfect the first time, even if Knuth himself did it), TeX and METAFONT.
    – alexsh
    Commented Mar 22, 2014 at 23:14

You only need to read https://tex.stackexchange.com/a/5713/963 and follow the implicit instructions at every stage.

  • +1: this answer needs imho more attention; while it is personal and my path is definitely a bit different (and such differences are acknowledged in his little essay, to his credit), it contains the level of detail I was looking for: well done! Commented Feb 10, 2013 at 12:56

This answer is a bit outdated since The LaTeX Companion is quite old by now. And doesn’t cover things like LaTeX3 or Lua(La)TeX programming.

I’d most of the things one needs to know of the user (author) level of LaTex can be found in LaTeX companion. Of curse for the immense amount of packages a book can always only scratch the surface and give a starting point. However I started my journey to the faboulous world of TeX with this book and from there on nearly only read package manuals and code examples.

latex companion

Too learn more about package and class writing the clsguide and the dtxtut might help.

  • That doesn't cover TeX though, does it?
    – cfr
    Commented Apr 30, 2018 at 22:31
  • No it doesn’t (at least in the great version I read). Do you think I should chang my answer from “all” to „all abut LaTeX”?
    – Tobi
    Commented May 1, 2018 at 10:29
  • Well, that would be more accurate since the question wants 'all' for TeX and LaTeX and you don't really think this provides 'all' in that sense. I suppose you could argue that 'all' you need to know of TeX & LaTeX is LaTeX and all you need to know of LaTeX is .... But I don't think that would answer the question, even if it was plausible.
    – cfr
    Commented May 2, 2018 at 2:25
  • Unfortunately, the idea that all that a user needs to know about LaTeX is LaTeX itself (and not the internals of TeX) has always been an aspirational goal of LaTeX and never the reality. And neither clsguide nor dtxtut cover all or even the majority of what a package writer needs to know: most of that is TeX itself, and one has to unlearn a lot of LaTeX for that. As Joseph Wright says here, “programming LaTeX2e is a mix of TeX, documented LaTeX, undocumented LaTeX and picking up stuff from packages”. IME only a small part is documented LaTeX. Commented May 3, 2018 at 17:41
  • Inundated my answer again. However the original answer is five years old, I‘m a bit surprised it get that much attention now ;-)
    – Tobi
    Commented May 3, 2018 at 17:55
  1. Concrete Mathematics
  2. TAOCP
  3. uname -m instruction set, for all values of m.
  4. SICP
  5. tex.web
  6. The TeXbook
  7. latex-base
  8. LaTeX: a Document Preparation System

Please note that just reading through all of the above does not guarantee an understanding of anything.


"All of TeX/LaTeX" is an incredibly vast area. You'd need a few lifetimes for this. Better concentrate on what you need for the task at hand.

In my experience, if you try to "learn ahead", what happens is that (a) if you don't understand why to use something while studying, you won't learn it right; (b) when an use shows up, you've already forgotten about it; (c) when an use pops up, the tools have changed/there are new tools; (d) learning without motivating force requires too much self-discipline; or (e) some frustating combination of the above.

  • These are very good thoughts, and to a considerable extent I agree. I am not sure about the "few lifetimes", after all it's also possible (though difficult and a lot of work) to learn "all" of a programming language without library add-on classes and modules. In the LaTeX world, the notion of a "library" corresponds to a package. So, learning all of TeX and LaTeX without any libraries/packages is definitely possible, and learning about the most commonly used packages ought to be possible too. ... Commented Feb 10, 2013 at 4:14
  • ... I don't mean "all" literally, of course, but I mean it in the sense of "well enough to reach the level the TeX.SE experts on this site have". Also I don't mean "all" of their knowledge, as a lot of it will not be needed. If one can condense it to only the parts that often needed, that's probably a more realistic definition than "literally all". Commented Feb 10, 2013 at 4:16
  • @LoverofStructure, as I say in the closing ramblings in my answer, learn well what you are really using. Soon you'll be as expert as anybody here in that particular domain. This site is a super-expert because experts in many subfields flock together here.
    – vonbrand
    Commented Feb 10, 2013 at 4:24
  • 1
    @LoverofStructure As I understand it, that's a bad analogy because you can change the language on the fly. I don't know other programming languages, so I can't say, but I've understood them to be less anything-is-possible, so the core/library distinction makes sense in a way that it doesn't here.
    – cfr
    Commented Apr 30, 2018 at 22:34
  • Programming languages you can change on the fly... any member of the Lisp family, FORTH are prime examples. Also C++ and other OO languages can be morphed out of recognition.
    – vonbrand
    Commented May 19, 2018 at 12:53

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .