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
.