I've been using LaTeX for about 3 months, and I'm hooked. My background is programming, so for the basic, google is sufficient. I did some research on amazon.com and found these two books with many positive feedback:
Guide to LaTeX (4th Edition)

However, most of people said they are more like references than a real book. And if they really are, then I think I'd rather look up at CTAN. What I'm looking for is a book that can teach me how to program in LaTeX, for example:

  1. Write my own package

  2. Create animation

  3. Create and using macro in LaTeX

I know there are many options around, however to pick the right one is not an easy task. Any advice or suggestion would be greatly appreciated. Thank you.

  • 4
    I don't think there is a book which covers points 1 and 2. Also note it's 'LaTeX' not 'Latex' (or 'LaTex' or 'latex', but latex is the compiler.) Commented Jul 26, 2011 at 8:34
  • 1
    For 1. have a look at clsguide on CTAN. Commented Jul 26, 2011 at 8:35
  • …and also dtxtut. Commented Jul 26, 2011 at 8:54
  • 3
    @Martin: the compiler is pdftex, not latex
    – user2478
    Commented Jul 26, 2011 at 13:30
  • 1
    @Herbert: Ok, latex is a symlink to pdftex. Close enough ;-) Commented Jul 26, 2011 at 13:35

2 Answers 2


A personal list of list for heavy LaTeX users:

  • More Math into LaTeX, 4ed. (easier)
  • A Guide To LaTeX, 4ed.
  • Digital Typography Using LaTeX. Springer.

More advanced:

  • The LaTeX Companion, 2ed.
  • The LaTeX Graphics Companion, 2ed.

And more: Many documents of LaTeX packages (user-level).

A personal useful book list for macro writers:

A personal useful (package) documentation list for package and class writers, general purpose:

  • clsguide: LaTeX2e for class and package writers.
  • source2e: Documented source code of LaTeX kernel.
  • classes: Documented source code of LaTeX standard classes.
  • macros2e: Martin's useful manual for LaTeX internal macros. (c.f. source2e)
  • eTeX's manual.
  • etoolbox: a useful toolbox of eTeX. For modern packages it is really useful.
  • keyval: Support for key-value interface.
  • pgfkey or xkeyval or l3keys2e: More advanced key-value interface.
  • Some packages of Oberdiek bundle: ifpdf, ifxetex, ifluatex, atbegshi, kvoptions, zref, ...
  • Some packages of tools bundle: array, calc (c.f. eTeX's primitives), fontsmpl (c.f. fonttable), layout (c.f. layouts), showkeys, trace, xspace, ...
  • expl3, interface3 and source3 (i.e. l3kernel bundle): Introduction of LaTeX3 syntax and documented (developing) LaTeX3 kernel.
  • Some packages of l3packages bundle, especially xparse.
  • Documents of pdfTeX, and maybe XeTeX and LuaTeX.

To be continued... I'll add links for the documents.

  • I made the answer CW. Any modification is welcome.
    – Leo Liu
    Commented Jul 26, 2011 at 13:57

For point 1, have a look at the following links:

The Not So Short Introduction to LaTeX2e

LaTeX2e for Authors

Although they refer to LaTeX2e, it should be sufficient for most applications of LaTeX. For point number 2, have a look at the following article:

Tools for creating LaTeX-integrated graphics and animation under GNU/Linux

For point 3, have a look at the following link:

Martin Scharrer's Website

The document provided on this site lists the internal macros defined by the LaTeX2e base files which can also be useful to package authors.

  • macros2e is on CTAN already, you can update the link. Commented Jul 26, 2011 at 13:22
  • 3
    I must say (personally, I'm sorry), lshort is really not a good document. And it's only for beginners, but not suitable for any advance reference. A much better quick introduce to LaTeX is ltxprimer by Indian TUG.
    – Leo Liu
    Commented Jul 26, 2011 at 13:23
  • See the macros2e answer of mine for the updated CTAN and code repository links. I have to say that IMHO this document is not a starting point to learn how to define own macros. Commented Jul 26, 2011 at 14:22
  • @Bill: Thanks a lot. Your reference links are amazing ;)
    – roxrook
    Commented Jul 26, 2011 at 16:26
  • -1 The Not So Short Introduction to LaTeX2e & linkrot: scharrer-online.de
    – nilon
    Commented Sep 14, 2016 at 13:03

You must log in to answer this question.

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