Is there a comprehensive and complete LaTeX reference?

When I dived into Python, I went through the beginner's tutorials. Of course, these tutorials cover only the basics and present only a shallow exhibition of what I can do with Python.

Right now I'm going through Getting to grips with LaTeX by Andrew Roberts. After this, I will want to see a complete LaTeX reference. For Python, I can immediately go to http://docs.python.org, then I am presented with a host of comprehensive documents about the Python standard core.

Is there a similar site for the LaTeX core? Something that I can "keep under my pillow", like The Python Standard Library? I want to be well-versed with the standard installation first (I have MikTeX) before I go out and use additional packages.

-
The 'additional packages' are probably in MiKTeX (and TeX Live). What is loaded by the kernel (just the kernel!) and what is available as part of your TeX system (lots of packages) are two very different things. –  Joseph Wright Aug 21 '10 at 6:01

Today LaTeX is more than just its core. I don't want to go without amsmath, inputenc, fontenc, babel, microtype, hyperref, natbib, graphicx and many more.

To learn just about the LaTeX kernel, Lamports book is not bad, it's good to read what the author said. It's his reference manual. Reading source2e.pdf provides further insights.

But the LaTeX Companion is really something you could keep under your pillow. It gives deep insights but also an overview to important packages for various subjects. For me it's the LaTeX encyclopedia, because it goes beyond the LaTeX kernel. The companion could be a good foundation and roadmap. I recommend it to you, because I think you prefer a good recommendation over just hearing there's none.

Current LaTeX distributions install a huge amount of documentation, you could access it by `texdoc` at the command prompt. For instance:

• `texdoc source2e` for the commented LaTeX source,
• `texdoc clsguide` for LaTeX2e for class and package writers,
• `texdoc koma` to get the KOMA-Script classes guide

and documentation to many hundred packages and classes, from small to big. What a book cannot provide, texdoc does for me.

-
+1 for `source2e.pdf` –  Lev Bishop Aug 21 '10 at 1:57
`source2e` is great for when you're tired of using `\show\foo` sigh `\expandafter\show\csname foo \endcsname` and tracking down how something works. I'm not sure how useful it is for teaching one how to use LaTeX. I really disagree about the LaTeX Companion though. I've got a copy around here somewhere. I've opened it maybe 3 times and been disappointed every time. –  TH. Aug 21 '10 at 4:27
I found the Companion very useful for learning what stuff was available, and dip in when I need to check on an area I don't really know. If you wan to know about the code, I don't think there's any alternative to reading it or doing the `\show` method. This is one of the things I'm very much aware of when working on the LaTeX3 stuff. –  Joseph Wright Aug 21 '10 at 5:29
I agree with what Joseph said. Companion is the one book that really wows me: beautiful and seems to explain things clearer than most other documents in particular fonts. –  Leo Liu Aug 21 '10 at 8:14
@TH: btw, the (ridiculously small) package show2e provides `\showcmd` precisely to automate the sigh part of using `\show` (at least in the standard cases). –  mpg Oct 26 '10 at 21:25

What I found most helpful when learning LaTeX was reading Knuth's TeXbook. It doesn't cover any LaTeX (of course), but you get a pretty deep understanding of why TeX behaves the way it does.

There are books like the LaTeX Companion which document various packages, but I find it easier to just look at the documentation for those packages that comes with my TeX distribution. (I have never used MiKTeX so I cannot comment on it.)

I should add that Lamport's book is not worth spending money on. It contains very little information that isn't in standard free tutorials like `lshort`.

-
I agree, with all your points. –  Lev Bishop Aug 21 '10 at 0:38

There is an unofficial reference which can be accessed (at least in TeX Live) with `texdoc latex2e`. For more in-depth information, you can use the source code documentation (`texdoc source2e`). Several special topics (the names are meant to be used with `texdoc`, too) are covered by the `usrguide` (switching from LaTeX 2.09), `clsguide` (writing packages and classes), `encguide` (8-bit font encodings), `fntguide` (8-bit font commands) and `classes` (standard classes). This should cover the basic LaTeX kernel. For other classes and packages, use the corresponding package manual (type `texdoc <PACKAGENAME>`).

I agree with the others in that the Companion is an invaluable source of information, but unfortunately it is a bit dated by now.

-

I love the ability to view documents in info format with Emacs. So I highly appreciate Karl Berry's effort to produce one. See http://svn.gna.org/viewcvs/latexrefman/trunk/:

This project is an attempt to write a reference manual for core LaTeX. It is unofficial and the LaTeX Project members have not reviewed it. -- README

It covers pretty much everything as far as core LaTeX is concerned.

Because it is written in texinfo, it produces pdf, dvi, html, txt, xml formats as well.

-
The pdf version is the result of `texdoc latex2e` mentioned by Philipp, btw. Also, for vim users, there is a convertion of (a sightly outdated version of) this document in vim-help format. It is available from the vim-latex page: vim-latex.sourceforge.net/download/latexhelp.txt –  mpg Oct 26 '10 at 21:37

The short answer, as far as I know, is no. Perhaps there is some complete reference out there which I'm unaware of, but I've been looking for a while and have never found such a thing.

Beyond that, I would have to agree with TH's answer.

-
In particular, is there a reference on LaTeX Secrets of the Illuminati? Something that covers \makeatletter, \strip@pt and similar invaluable macros which are part of the package but never mentioned? (I googled latex secrets and discovered the most amazing web sites!) –  John Kormylo Aug 16 '13 at 1:40