I have been using LaTeX for a little over two years now. I mostly use it to prepare homework solutions in mathematics and engineering coursework. I also use it to document my research and writing some reports.

Recently I have started to use it for my resume, because I find the formatting to be significantly more stable than anything I can get using Microsoft Word. However, I have not been able to find a satisfactory resume class, so I am now modifying a resume class to suit my needs.

To improve the resume class, I am now trying to make some new environments and commands to make the construction more intuitive. The class file that I am modifying appears to be in Plain TeX, which inspires my question.

Are there certain layout and design problems that can only be solved using Plain TeX, or can everything be done using LaTeX?

  • 4
    I think that Leslie Lamport answered part of this question in the first chapter of his book LaTeX: A Document Preparation System: "Think of LaTeX as a house built with the lumber and nails provided by TeX. You don't need lumber and nails to live in a house, but they are handy for adding an extra room. Most LaTeX users never need to know any more about TeX commands than they can learn from this book. However, the lower-level TeX commands described in the TeXbook can be very useful when creating a new package for LaTeX." Sep 15, 2012 at 19:16

1 Answer 1


Plain TeX and LaTeX are different formats, in particular they have different output routine (the code that makes up pages and adds floats and page headers etc).

Apart from the output routine code, almost all the macros defined in Plain TeX are also in LaTeX, so when you look into a class file you may well see code that uses those commands, and in particular includes TeX primitive commands (such as \hbox or \vskip).

To give an example most LaTeX2e packages and classes use the TeX primitive \def to define internal macros rather than the LaTeX command \newcommand (which is itself defined in terms of \def). \def is quicker and if you are defining some specific internal macro, the extra checks that \newcommand does to check the command name has or has not been used are not relevant.

  • 1
    Is it correct to say then that plain TeX is more or less a subset of LaTeX (outside the output routine of course)? Sep 15, 2012 at 18:16
  • 3
    more or less correct (or incorrect depending on your point of view:-) LaTeX does not input the plain tex source code but it defines most of the commands that are in plain tex and most of the have the same definition. But of course "plain tex" is a very small example format, most of the low level commands you see in latex class files are not plain TeX but TeX primitives. Sep 15, 2012 at 19:03
  • I see now. I guess I was mistaking plain TeX for TeX primitives. I guess I have some more reading to do. Sep 15, 2012 at 19:36
  • It’s more the other way arround: LaTeX is a superset of TeX primitives. But there are other formats, like ConTeXt, which are also based on TeX but evolved in annother direction. Sep 15, 2012 at 19:58
  • Isn't LaTeX just a set of TeX macros and can't this be a simple answer to the question?
    – Hibou57
    Jul 24, 2014 at 22:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.