What's the difference between pdfTeX and pdfLaTeX?

If a .tex file starts with \documentclass -- or, possibly, the now-obsolete \documentstyle command -- it's a file that needs to be compiled by a TeX engine that loads the LaTeX format file rather than the Plain TeX format file. Format files (or, shorter, "formats") are, loosely speaking, large collections of macros. There are many TeX formats; nowadays, the best known formats -- other than the original PlainTeX format -- are LaTeX (LaTeX2e, to be a bit more precise) and ConTeXt.

The LaTeX(2e) format is, to a first approximation, a large superset of the Plain-TeX format. It's not a strict superset, though, because there are some "Plain TeX" macros that aren't implemented in LaTeX. Hence, .tex files that contain LaTeX commands cannot be compiled if the PlainTeX format is loaded instead of the LaTeX format.

Note that the \documentclass instruction is itself a "LaTeX"-specific macro, i.e., it is not recognized by "Plain TeX". Therefore, pdftex (which loads the "plain TeX" format) cannot proceed properly once it encounters the \documentclass instruction on line 1 of the input file.

Addendum: For more information on TeX formats see, for instance, the webpage TeX formats and engines as well as the TeX.SE page List of TeX formats.


pdftex expects the file to be plain TeX. pdflatex expects it to be LaTeX. These are two different dialects of TeX. You do not expect a C compiler to work with Java, do you?

Note that in practice pdftex and pdflatex are often the same command, which analyzes how it was called to switch to the proper input language. On some systems gcc behaves in the same way, compiling C if it is called as gcc or Fortran if it is called as gfortran.

Tags:

Pdftex