Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

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?

share|improve this question
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." –  Gonzalo Medina Sep 15 '12 at 19:16
add comment

1 Answer 1

up vote 15 down vote accepted

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.

share|improve this answer
Is it correct to say then that plain TeX is more or less a subset of LaTeX (outside the output routine of course)? –  Carl Morris Sep 15 '12 at 18:16
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. –  David Carlisle Sep 15 '12 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. –  Carl Morris Sep 15 '12 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. –  Frakturfreund Sep 15 '12 at 19:58
Isn't LaTeX just a set of TeX macros and can't this be a simple answer to the question? –  Hibou57 8 hours ago
add comment

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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