Next: Command names Up: Writing classes and packages Previous: Using `docstrip' and `doc' Contents

##
Is it a class or a package?

The first thing to do when you want to put some new LATEX commands in a file is to decide whether it should be a document class or a package. The rule of thumb is:

> If the commands could be used with any document class, then make them a package; and if not, then make them a class.

There are two major types of class: those like `article`, `report` or `letter`, which are free-standing; and those which are extensions or variations of other classes--for example, the `proc` document class, which is built on the `article` document class.

Thus, a company might have a local `ownlet` class for printing letters with their own headed note-paper. Such a class would build on top of the existing `letter` class but it cannot be used with any other document class, so we have `ownlet.cls` rather than `ownlet.sty`.

The `graphics` package, in contrast, provides commands for including images into a LATEX document. Since these commands can be used with any document class, we have `graphics.sty` rather than `graphics.cls`.

Next: Command names Up: Writing classes and packages Previous: Using `docstrip' and `doc' Contents