# Which books can I read via texdoc?

For years, I was faithfully downloading a copy of TeX by Topic whenever I reinstalled my computer. Then I learnt about `texdoc texbytopic` and my life got just that smidgen easier. I've just returned from a foray in cyberspace where I wanted to learn about the `\mathpalette` command and found TeX for the impatient. One of the exotic fruits I found on that foray was Where can I find an online manual for low-level LaTeX commands? where Martin suggested `texdoc impatient`.

On the basis that a book in `texdoc` is

1. free,
2. on my system, and
3. at least vaguely approved by the TeX community

if I found myself at a loose end one evening and wanted to curl up with a good book on TeX, the ones in `texdoc` seem a good place to start.

But knowing what is there is a difficult task, so I thought that a nice CW list would help us all find something to read on those long winter nights.

I think that this is an obvious CW question (assuming it doesn't get closed) and one organised answer would be better than a load of disorganised ones. What would be useful information to have would be:

1. Name of book
2. `texdoc` invocation
3. Which main distributions is it in (TeXLive? MikTeX?)
4. Vague area of coverage

As I intend this to be CW, we can build that up incrementally, so if you know of a book but don't know about distributions, list it and someone can test if it's in their distribution.

One thing to be clear is that this is not for individual packages, even if the documentation is more like a book than anything else.

-
Good question. I didn't "grow up" with texdoc and as a result, it is always my destination of last resort and I have no idea what is there. – Ryan Reich Sep 6 '11 at 15:33
None of the `texdoc xxx` with the the books listed in these posts works for me with MiKTeX 2.9. For manuals of packages that I have installed, it does work. Does MiKTeX not contain them or might there be some other issue so that I should ask a separate question? – doncherry Sep 9 '11 at 19:11
@doncherry: (I don't have MiKTeX so can't test this myself) are the files on the system? Can you search for, say, `texbytopic.pdf`? – Loop Space Sep 9 '11 at 19:14
@Andrew: No, can't be found. I don't have the full install of MiKTeX though, so only when I first use a package it's downloaded. I double-checked the package manager and found something, I'm working on an answer right now. – doncherry Sep 9 '11 at 19:40
`texdoc texdoc` does not produce an infinite loop but brings the documentation of `texdoc` up. It is useful for those who do not know what `texdoc` is. – kiss my armpit Jul 18 '14 at 16:19

In addition to "TeX by Topic":

1. Oetiker's "The Not So Short Introduction to LaTeX 2ε" in English. Available in other languages as, for example, `texdoc lshort-german` but these are usually older than the English version. Invoke as `texdoc lshort` in TeX Live

Not all language versions are obvious; to get a full list of what's available, at least on linux, `texdoc -l lshort`; as of July 2014, there are over 60 possibilities, of which 17 are marked "The document itself".

2. Knuth's “TeX82” (= "TeX: The Program"). Invoke as `texdoc tex` in TeX Live.

3. "TeX for the Impatient” (2003) by Abrahams, Hargreaves and Berry. Invoke as `texdoc impatient/book.pdf` in TeX Live. Also available in French as `texdoc impatient-fr/fbook.pdf`.

4. "A Few Notes on Book Design" (2009) by Peter R Wilson. Available as `texdoc memdesign` in TeX Live. Whilst originally part of the `memoir` class documentation it is now separate from that documentation and is a volume on book design in its own right so I think it can satisfy the criteria for this list.

-

It seems to me that given a package name, `texdoc` will search for a PDF in the package directory and display it using your favorite PDF reader.

For example, when typing `texdoc impatient`, it opens:

``````/path/to/texlive/2011/texmf-dist/doc/plain/impatient/book.pdf
``````

When typing `texdoc texbytopic`, it opens:

``````/path/to/texlive/2011/texmf-dist/doc/plain/texbytopic/TeXbyTopic.pdf
``````

etc. With that in mind, here is a quick and dirty way to get a list of parameters you can pass to `texdoc` using `sed`:

``````find /path/to/texlive/2011/ -type f -name '*.pdf' | sed 's@.*/\([^/][^/]*\)/[^/][^/]*\.pdf@\1@' | sort -u
``````

which on TL2011 returns 1720 names.

That said, the books you mentioned were found specifically in `/path/to/texlive/2011/texmf-dist/doc/plain`, so you can restrict that to:

``````find /path/to/texlive/2011/texmf-dist/doc/plain/ -type f -name '*.pdf' | sed 's@.*/\([^/][^/]*\)/[^/][^/]*\.pdf@\1@' | sort -u
``````

which returns 14 results:

``````fontch
font-change
gentle
getoptk
hyplain
impatient
impatient-fr
metatex
mkpattern
newsletr
pgfplots
present
texbytopic
tugboat-plain
``````
-
Exactly! 1720 is a bit too many for me to go through and figure out which are books and which are package documentation. I'm after the things that you can get via `texdoc` that you would never find if all you ever did was `texdoc package`. – Loop Space Sep 6 '11 at 8:12
For some reason the `sed` command didn’t work on my Mac – not sure what the issue is (surely something to do with extended regex) but the following version did: `sed 's@^.*/\([^/]*\)/[^/]*\.pdf\$@\1@'`. – Konrad Rudolph Sep 6 '11 at 10:08
@Konrad: MacOS doesn't use GNU Sed, it's another version (with slightly different options and syntax). – ℝaphink Sep 6 '11 at 10:12
@Raphink True but I’m not aware of any syntax changes in the above expression. Specifically, `\+` should normally work the same since both commands use the BRE dialect by default. – Konrad Rudolph Sep 6 '11 at 10:18
The `sed` command should now work on both Mac and GNU/Linux. I converted Raphink's regular expression to POSIX BRE format (and dropped the unnecessary `-e`). – mvkorpel Jul 18 '14 at 10:25

`texdoc gentle` gets you michael doob's "a gentle introduction to tex", which was the precursor to "tex starting from square 1" and still a good resource for learning about plain tex. in tex live; don't know about other distributions.

somewhat more obvious is `texdoc metapost`, "metapost, a user's manual"; although this is user documentation rather than a formal book, mp is a large enough system that the user's manual (it doesn't cover the program code itself) seems to fall within the subject category.

although it's not about tex itself, `texdoc comprehensive`, for "the comprehensive latex symbol list`, covers an area that's the subject of lots of questions, and might be the resource most frequently cited in answers.

in the tex family, though also not about tex itself, `texdoc mf` gets "metafont: the program".

-

In addition to the above answers, In TeXLive distribution the `texdoc` command line has a Perl/Tk-based GUI known as `texdoctk` for easy ac­cess to pack­age doc­u­men­ta­tion.

On Windows 7 with TeXLive 2012 it works without any installation `perl/tk`

On Ubuntu with TeXLive 2012 it needs installation `perl/tk`

With any keyword/package name in GUI `TeX Documentation Browser` search box it leads to list of relevant pdfs similar to `texdoc -l <keyword>`

PS: It's another choice available, kindly ignore incase you know or prefer command line. To have it for record.

-

## MiKTeX

Most of the answers here refer to TeX Live and I couldn't really retrieve any of them with MiKTeX 2.9, so I tried to find out what MiKTeX has in store. The package manager lists the following as "Documentation":

```comprehensive
es-tex-faq
first-LaTeX-doc
firststeps
fontsampler
greekdoc
guides
Italian-doc
knuth
l2tabu ~-english ~-italian
latex-doc-ptr
latex-veryshortguide
latex2e-help-texinfo
latex4wp
lkort
lshort-english ~-finnish ~-french ~-german ~-mongolian ~-persian ~-polish ~-portuguese
~-russian ~-slovak ~-slovenian ~-spanish ~-ukranian
metapost-examples
tds
tex-refs
uk-tex-faq
```

To be able to access these, you need to install them via the package manager first.

I tried invoking some of these via `texdoc` and it seems to me that you can only invoke those available in a compiled form (pdf or dvi) or as HTML files (`uk-tex-faq`). `texdoc knuth` doesn't work, presumably because you're not allowed to compile The TeX Book. (See additionally How to force MikTeX' texdoc to open package manuals with a PDF reader rather than the DVI viewer?)

Obviously, not all of these can be called a book, but I'm afraid this is all there is in MiKTeX.

-
How to deal with documents like `ascii-chart` and – more important, I think – `voss-mathmode`, what are uncategorized? – Speravir Feb 27 '13 at 18:37

My LaTeX books can be read via `texdoc`:

``````texdoc dickimaw-novices
``````

for "LaTeX for Complete Novices" (introductory) and

``````texdoc dickimaw-thesis
``````

for "Using LaTeX to Write a PhD Thesis" (thesis-related topics).

The article "Creating a LaTeX minimal example" (debugging techniques) is also available via `texdoc`:

``````texdoc dickimaw-minexample
``````

I will also add my pending LaTeX book "LaTeX for Administrative Work" (intermediate to advanced admin-related topics) to CTAN at some point after it's published. If you do:

``````texdoc -l dickimaw
``````

you'll get the list of available documents. (Available on both MiKTeX and TeX Live.)

-