# What are the available “documentclass” types and their uses?

Some of the available classes of documents in LaTeX are well known and widely used, such as the article and beamer classes, while others are not so well known, such as the standalone class.

I found this figure

which lists the main classes and is a good starting point, but the description is too short and still leaves one wondering when it would be more suitable to choose one class over the other and what the characteristics of each class is. Furthermore, the list is not exhaustive I think, given that I know at least one more document class that is not there (the standalone class, as I mentioned).

So my question is: what are the available classes of documents in LaTeX, and could you provide a brief description of the class and the situations where it would be recommended?

-
There is no such thing as a definitive list, so at best you will get a partial answer here. There are a lot of classes for journals, for example. –  Joseph Wright Aug 1 '10 at 20:24
@Joseph: I imagine classes can be created at any time, so I know what you mean. I am more interested in finding out some unknown package that might be useful to me and also understanding the differences between some of the "well-known" packages, because to date I have only ever used the three I mentioned in my question (article, beamer and standalone). –  Vivi Aug 1 '10 at 20:28
I think this question is too open ended and just voted to close. There are literally thousands of classes out there. I would be much more interested in similar questions by topic, e.g. we already have classes for letters, maybe also classes for slides, classes for cv's, etc. People will search by topic. –  Juan A. Navarro Aug 2 '10 at 22:52
@Navarro Don't vote to close it, it should be moved to community wiki, that way this can stay open for discussion and maybe we can learn something from it, it's a nice general question for beginners looking to get a foothold in LaTeX. –  EricR Aug 3 '10 at 4:49
The standalone class actually simply loads a real class but uses the preview package to reduce the page size to the content. It is supposed to be used for subfiles holding only picture or similar code which are then included into a main document. The standalone class and package allow this files to be compiled standalone or as part of the main document without adjusting the file. –  Martin Scharrer Feb 28 '11 at 0:43

There's a category in the TeX Catalogue: Alternative Document Classes.

-
To a large extent, imo this is the answer to the question asked. –  André Apr 11 '12 at 23:59
It's not. The page, "Alternative Document Classes" is woefully incomplete and poorly indexed. –  user26732 Oct 30 '13 at 15:22
@user26732: there are thousands of catalogue entries; i wrote about half of them, and subsequently went through and added topics to every one of them. if i have made mistakes (you offer no evidence) it would be useful were you to submit the evidence to the ctan team. (fwiw, i found one this morning and corrected the omission.) –  wasteofspace Sep 12 '14 at 9:27
@user26732 in what sense is the catalogue page “incomplete”? afaik (i spent ages getting it to this state) it lists catalogue pages for everything on CTAN which is categorised as an “alternative class”. are you complaining that it doesn’t list classes that are not on ctan, or that it doesn’t meet some other criterion. note that we (the ctan managers) don't add stuff (we’ve more than enough other stuff to do), yet we’ve had no complaints from anyone, just your sneering in the background. if you want something done, make a useful proposal rather than whingeing at the sidelines. –  wasteofspace Jan 3 at 23:23
"Incomplete" because several alternative document classes are not on the list, e.g., bookest, extbook, basque-book, serbian-book, Mentis, jura (jurabook) (to name a few) found at texcatalogue.ctan.org/bytopic.html#classes. The question sought identification of alternative document classes and the list at CTAN is incomplete. @wasteofspace –  user26732 Jan 5 at 6:09

The classes in the KOMA-Script bundle* (scrbook, scrreprt, scrartcl, scrlttr2) provide replacements of standard classes (book, report, article and letter respectively). They offer lots of configuration options to accommodate different layouts without using ugly hacks. Generally I think they are nearer to European (and in particular German) typography conventions than the standard classes are.

-
These classes add a lot of extra functions to those provided by the base classes. This means that using one of the KOMA-Script classes is often a way to reduce or avoid entirely needing to load additional packages to get the output desired. See also memoir. –  Joseph Wright Aug 1 '10 at 21:13
The link to "KOMA-Script bundle" is unfortunately broken –  gerrit Nov 30 '11 at 15:12
@gerrit: I fixed it. –  Tobi Nov 30 '11 at 15:26

The memoir class is based on the book class. It implements a lot of design facilities that with other classes usually need loading additional packages. The result is a feature-rich, customizable and powerful class, especially useful for designing books.

memoir offers an extensive manual with more than 500 pages containing also examples for the design of a book and of a thesis.

-
By the way, does it make sense to use the memoir class for articles? I noticed that it provides a package option "article", but I have never actually tried it. –  Jukka Suomela Aug 3 '10 at 19:22
@Jukka Suomela you need to make some tweaks to use memoir for articles: you probably want to do \setcounter{secnumdepth}{3} and \renewcommand*\thesection{\arabic{section}} you might also want to pass the openany,oneside options to the document class as well. –  Seamus Jan 7 '11 at 18:04
@JukkaSuomela ... and also \pagestyle{plain} for empty headers and centered page numbering in the footer (default for the article class). I wouldn't advise using the article option of the memoir class (instead of the above tweaks), because it will most likely won't work as you expect it so (for example, sections are typeset in a bigger font than chapters, so there is no convenient way to emulate subsections in this setting). –  T. Verron Jun 18 '12 at 16:39

I've grown to love standalone recently, particularly for tikz-graphics. Never again I will have to run pdfcrop on the output from my pdflatex run, because that is what the standalone class does.

-

The beamer class is designed for creating presentations (although it can be used for academic posters in conjunction with the beamerposter package). It provides a wide range of graphical functions for making 'good looking' presentations. The specialist functions in beamer include modifications to standard macros (such as the lists itemize and enumerate) so that they can be revealed partwise. The class is designed to be able to also produce article-style material by including the appropriate. The documentation also provides advice on what makes a good presentation.

-

I think the base classes probably deserve a single answer. (minimal, letter and slides are different enough to need their own answers.)

The article class is, as the name suggests, intended for writing articles. This means relatively short documents which do not contain chapters or parts, only sections, subsections, etc. As one of the base classes, the formatting is pretty basic. However, as the article class does provide the basic function most people expect from LaTeX it is often used with modifications for longer documents.

The report class is intended for longer documents which will have chapters, while book is intended for very large documents. The standard settings for report and book are slightly different from article. For example, the default for article is to put the \maketitle information at the top of the first page, whereas report and book use separate title pages. book includes pre-defined shortcuts for the \frontmatter (unnumbered chapters with roman page numbers), \mainmatter (numbered chapters and arabic page numbers) and \backmatter.

All of the base classes have very basic formatting. Some of this can be questioned, but the LaTeX Project have made it clear that with so much use of these classes, the decisions are 'fixed'. As a result, modifying the base classes is an approach many people use for their own documents.

-

Sorry about violating your "one class per answer" request, but I feel that these three should be included in the same post: amsart, amsbook, and amsproc. They come from the ams-LaTeX collection prepared by the American Mathematical Society and are the standard document classes to use for preparing documents for publication by the AMS. As their names suggest, they are modified versions of the article, book, and proc classes to adhere to the AMS's house style, and also incorporate the features of the package amsthm and load supplementary mathematics packages amsmath and amsfonts. For more detail one should refer to the website for the collection.

-
amsthm is not loaded into the ams classes; its features are built in, and differ slightly from the defaults of the separate package. amsfonts is loaded, but can be suppressed by using the document class option <code>noamsfonts</code>. –  barbara beeton Jan 8 '11 at 18:58
@barbara: thanks for the correction. –  Willie Wong Jan 11 '11 at 3:42

Provides a class exam, which eases production of exams, even by a LaTeX novice. Simple commands are provided to:

• create questions, parts of questions, subparts of parts, and subsubparts of subparts, all with optional point values;
• create a grading table, indexed either by question number (listing each question and the total possible points for that question) or by page number (listing each page with points and the total possible points for that page);
• create headers and footers that are each specified in three parts: one part to be left justified, one part to be centered, and one part to be right justified, in the manner of fancyhdr

Headers and/or footers can be different on the first page of the exam, can be different on the last page of the exam, and can vary depending on whether the page number is odd or even, or on whether the current page continues a question from a previous page, or on whether the last question on the current page continues onto the following page.

Multiple line headers and/or footers are allowed, and it's easy to increase the part of the page devoted to headers and/or footers to allow for this.

A quick example:

\documentclass{exam}
\begin{document}
\begin{questions}
\question[10]
Why is there air?
\question
What if there were no air?
\begin{parts}
\part[5]
Describe the effect on the balloon industry.
\part[5]
Describe the effect on the aircraft industry.
\end{parts}
\question[20]
\begin{parts}
\part
Define the universe. Give three examples.
\part
If the universe were to end, how would you know?
\end{parts}
\end{questions}
\end{document}

-

A document class to create small hand-outs (flyers) that fit on a single sheet of paper which is then folded twice. Pages are rearranged by LaTeX so that they print correctly on a single sheet — no external script is necessary.

-
Ugh... that's what inkscape is for. –  naught101 Sep 19 '12 at 6:41

The tufte-la­tex package pro­vide two classes: tufte-handout and tufte-book in­spired, re­spec­tively, by hand­outs and books cre­ated by the work of Ed­ward Tufte.

Tufte’s style is known for its extensive use of sidenotes, tight integration of graphics with text, and well-set typography.

\documentclass{tufte-handout}
\author{by Fran}
\title{A Minimal Working Example}
\usepackage{lipsum,blindtext}
\usepackage[demo]{graphicx} % Demo option for MWE without image
\begin{document}
\maketitle
\begin{marginfigure}
\includegraphics[width=.9\textwidth]{Scrooge}
\caption{\blindtext}
\end{marginfigure}
\blindtext
\end{document}

-

The minimal class is the absolute minimum you load and actually have LaTeX work. It's only intended for testing purposes, as it doesn't define many things you almost always expect (things like titling and sectioning commands). You would not usually use the minimal class yourself as it is so basic that there will not really be suitable for real work.

-

moderncv is a class for typesetting modern curriculums vitae. If offers both a classic and a casual style. It is fairly customizable allowing the definition of your own style regarding colors and fonts.

More classes useful for writing a CV can be found in the CV category of the TeX Catalogue.

-
your link could not be retrieved! –  OL SAY Jan 3 at 16:36
@OLSAY I updated the link. –  Stefan Kottwitz Jan 3 at 19:48

The hitec document class de­signed for use for doc­u­men­ta­tion of high-tech­nol­ogy com­pa­nies. It is a hack on the standard article class, but it looks very different. In fact, one of the design aims was to escape the academic look of the well-known LaTeX document classes.

\documentclass{hitec}
\author{by Fran}
\title{A Minimal Working Example}
\usepackage{blindtext}
\usepackage{graphicx}
\begin{document}
\maketitle
\blinddocument
\end{document}

-

REVTeX is a class designed for the American Physical Society (APS). It can produce output which is ready for production printing for a range of APS journals, depending on class options. The class provides a wide range of specialist functions needed by the journals, for example modifying how the \author macro works to improve the meta-data control. The REVTeX documentation includes a wide range of advice not only on the class itself but also on wider LaTeX use.

-

There are also many classes made specifically for formatting Masters and PhD theses. This is especially true in the U.S., where formatting requirements are often highly specified by particular universities and usually by people who have absolutely no sense about nice looking formatting. Some of these classes are available on CTAN (search for your university or just 'thesis') but many are unfortunately only circulated locally within a university. Classes that are available on CTAN and actively maintained are likley to be your best choice, if they are available.

If your university does not have a class available, and you are thinking of creating one, I would recommend basing it on one of the 'augmented' classes such as memoir or scrbook rather than one of the basic classes since, as other answers note, both of these classes provide non-hacky ways of implementing all sorts of formatting requirements, and both are extensively documented.

-

The paper document class is similar to ar­ti­cle but with a default look more European in my opinion, but this class have some new lay­out op­tions and font com­mands for sec­tions. Define also a key­words en­vi­ron­ment and com­mands as sub­ti­tle, in­sti­tu­tion, \smalltableofcontents, etc.

Unfortunately texdoc paper give only a brief English abstract but is not too hard discover the options and useful commands in the code between the German text.

An example with defined section font (only to add color), and also a custom keyword name:

\documentclass[a4paper,latin]{paper}
\usepackage{babel}
\usepackage[margin=2.5cm]{geometry}
\usepackage{graphicx}
\usepackage{lipsum}
\usepackage{xcolor}
\usepackage{booktabs}
\sectionfont{\large\sf\bfseries\color{black!70!blue}}
\renewcommand\keywordname{Clavem verborum}
\title{Minimum exemplum laborandi}
\subtitle{Exemplum apparentia \texttt{paper} tabellae\\
\hfill\includegraphics[height=2cm]{/home/fran/logo}
\vspace{-2cm}}
\author{Ph. D. Franciscus Studiosum Somniantis}
\institution{Ignotum Universitas \\

\begin{document}
\twocolumn[\maketitle
\hrule
\smalltableofcontents
\begin{abstract} {\lipsum[12]} \end{abstract}
\begin{keywords}
MWE, \LaTeX, document class, \texttt{paper},
\texttt{article}, dummy text
\end{keywords}
\hrule\bigskip
]

\section{Introductio}
Some introduction. \lipsum[2]
\section{Materia et modos}
More dummy text. \lipsum[4]

\begin{table}[b]
\centering
\begin{tabular}{lcccccc}
\toprule
& I &  II & III & IV & V & VI \\
\midrule
Vandali     & 123 & 456 & 678 & 321 & 644 & 768  \\
Visigothorum & 021 & 229 & 678 & 123 & 456 & 678 \\
\bottomrule
\end{tabular}
\caption{Visigothi cum Romanis foederati Hispaniam ingressi sunt et contra Vandalos. Mortem comitis utraque pugna.}
\end{table}

\section{Consequitur}
These are the results. \lipsum[1]
\section{Disputatio}
\lipsum[4]
\section{Conclusionibus}
\lipsum[5]
\end {document}


With defaults sections, but with the center and twocolumn options (obviously now without the command \twocolumn[...] and with minor changes to adapt that was within):

-
does it handle floats in the two-column layout well? –  Ingo Jun 29 '13 at 11:39
@Ingo, as far I know, as well as the standard article. –  Fran Jun 29 '13 at 15:09
Index is latin? –  Peregring-lk Oct 12 '13 at 11:01
@Peregring-lk I not an expert, but babel is correct, index (nominative singular) is latin. See in Google books René Aubert, 1552: Index rerum et verborum, quae in Pandectis tractantur, copiosißimus. –  Fran Oct 12 '13 at 12:15
@Fran Thank you for the reference hehe. My question was half a joke (because latin is not the issue here), but half a real question (because I was a little surprised). I've thought only you have forgot to rename the index title (and I've nor known babel has support for latin also neither seen the latin option). –  Peregring-lk Oct 12 '13 at 15:30

It provides a full set of facilities in three different output modes (journal-like appearance, double-spaced manuscript, LaTeX-like document), in contrast to the earlier apa6e, which only formats double-spaced manuscripts in APA style. The class can mask author identity for copies for use in masked peer review.

Citations are provided using the apacite bundle; the class requires that package if citations are to be typeset.

-

powerdot is a good alternative to the beamer class. Presentations can be developed easily. It provides many styles and allows creating your own style. powerdot offers automatic overlays, notes and a handout mode, further it supports LyX.

It's intended to replace the older classes prosper and HA-prosper.

powerdot requires PSTricks. So, it may be a good choice when you're using PSTricks in a presentation, but it cannot benefit from pdfTeX features.

-
can you explain more? what is the difference between powerdot and beamer? –  Vivi Aug 1 '10 at 20:54
powerdot requires PSTricks. So, it may be a good choice when you're using PSTricks in a presentation, but it cannot benefit from pdfTeX features. I usually prefer beamer with pdfLaTeX and TikZ. –  Stefan Kottwitz Aug 1 '10 at 21:53
Stefan, put that in your answer! You can edit it! I am sure this info will be useful for someone, but here in the comments the chances of it being read are slimmer. –  Vivi Aug 1 '10 at 21:58
Ok, Vivi, done, I've edited the answer and provided more information. –  Stefan Kottwitz Aug 2 '10 at 12:39
I still don't understand from your answer why would anyone prefer powerdot to beamer? (I'm putting the question this way because I think beamer is much more popular.) Obviously dependency on PSTricks is not a feature. Thanks in advance for explaining. –  Roman Cheplyaka May 29 '11 at 12:21

slides is the basic class for presentations. It predated presenting using projectors, and shares with the other base classes the somewhat questionable layout choices. Other options such as powerdot or beamer are very much better choices than slides.

-

The extsizes package provides the classes extarticle, extreport, extbook, extletter and extproc. They can be used instead of a corresponding base class and allow choosing a base font of a size between 8pt and 20pt.

When you're in need of a base font size that standard classes don't provide, these classes adjust commands like \tiny, \Huge etc. fitting to your desired base font size, further they adjust page dimensions, list and float dimensions accordingly.

Note that the KOMA-Script classes allow any font size specified in any TeX measurement unit so they might be considered as well when specific font sizes are needed.

-

The kerntest document class. From the documentation abstract:

This class makes it easy to generate tables that show many diﬀerent kerning pairs of an arbitrary font, usable by LaTeX. It shows the kerning values that are used by the the font by default.

In addition, this class enables the user to alternate the kernings and to observe the results. Kerning pairs can be deﬁned for groups of similar glyphs at once. Automatically, an mtx ﬁle is generated that can be loaded by fontinst to introduce the user-made kernings into the virtual font for LaTeX.

\documentclass[family=ptm]{kerntest}
\kernsetup{encoding=T1,series=bx,shape=n,example=M}
\kernsetup{size=17.28pt,baselineskip=17pt,papersize=a4paper}
\kernsetup{extraname=example,color=true,footer=false}
\newglyphclass{right}{fullstop}{period,comma}
\newglyphclass{left}{fullstop}{period,comma}
\begin{document}
\begin{kerntable}
\testkern{016}{-30}{046}{-30}{017} decimal \\
\testkern{'020}{-}{'101}{-80}{'021} octal \\
\testkern{quotedblleft}{-}{Aring}{-80}{quotedblright} by name\\
\testkern{quotedblleft}{-100}{AE}{-}{quotedblright} \\
\testkern{quotedblleft}{-}{B}{-60}{quotedblright} \\
\testkern{quotedblleft}{-}{C}{-}{quotedblright} \\
\testkern{T}{-}{f}{+90}{T} \\
\testkern{quotedblbase}{-60}{T}{-}{quotedblleft} \\
\testkern{quotedblbase}{-}{A}{-200}{quotedblleft} \\
\testkern{quotedblbase}{-}{Aring}{-}{quotedblleft} \\
\testkern{quotedblbase}{-}{Abreve}{-}{quotedblleft} \\
\testkern{guillemotright}{-55}{V}{-55}{guillemotleft} \\
\end{kerntable}
\end{document

-

The pressrelease class is provided for typesetting press releases.

A press release is a written statement to inform the media of forthcoming events, new products, awards or any other type of news item. A press release should be a compact document that briefly outlines the main details of the news item. Therefore press releases are usually no longer than a single page. Hard copies are typically double-spaced to allow the journalist room to scribble notes. The end of the press release is signalled by three hash (#) signs (end of release marker).

The following is a minimal example, taken from the package's sample repository sample-pressrelease.tex:

% arara: pdflatex
% arara: pdflatex
\documentclass[a4paper,11pt]{pressrelease}

\usepackage[british]{babel}
\usepackage{graphicx}

\PRlogo{\includegraphics[height=2cm]{example-image}}

\PRcompany{Some Company}
\PRdepartment{Some Department}
\PRcontact{Ann Other}
\PRlocation{Some City}
\PRphone{01234 56789}
\PRmobile{07123456789}
\PRfax{01234 56788}
\PRurl{http://www.some-company.com/~abc}
\PRemail{ann.other@some-company.com}
\PRhours{9:00--17:30 Mon--Fri}

\begin{document}

\begin{pressrelease}

This is an example press release. Keep it short and use the third
person. Avoid the use of exclamation marks and all-caps. Put all the
pertinent details in the first paragraph. Answer who, what, when,
where and why.

Use short paragraphs. Try not to exceed 500 words. Keep to the point
and avoid jargon. This is the default layout. The image is from the
\textsf{mwe} package.

Some Company was set up in 2014.

\end{pressrelease}

\end{document}

-

ctex contains a set of LaTeX classes and packages for Chinese typesetting. Specifically it provides the "default" classes ctexart, ctexbook and ctexrep.

-

Consider the ltxdoc class. It's small, fast, and frills free. Although it was designed for documenting LaTeX source files, it's very useful for producing your own documentation and notes, even if you are not interested in the 'doc' format or developing your own .dtx, .cls, or .sty files. Since ltxdoc loads the article class, you can easily customize it by passing options to the article class or loading other packages.

\documentclass[letterpaper]{ltxdoc}
\usepackage[hmargin={3.5 cm,1.5cm},
top=1.5cm, marginpar=3.5cm
]{geometry}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage{multicol}
\begin{document}
\title{\textsf{Device Notes}}
\author{Ann Nonymous\\Skunkworks Division}
\maketitle
\abstract{\lipsum[3]}
\tableofcontents
\protect\setlength{\columnsep}{5pc}
\protect\begin{multicols}{2}}
\section{The Device}
\lipsum[30]
\section{How to Install}
\lipsum[33]
\section{How to Use}
\lipsum[37]
\section{Other Applications}
\lipsum[41]
\end{document}


-

In a slightly different track of answers, I would like to mention the cd document class [ 1 ] that is designed for creating cd covers. It has

Easy batch printing with crop marks, full typographical control, extended foreign language support, fully open text-based format for easy copy-and-modify operations, and so on.

Although the examples in the documentation [ 2 ] are all about music disks, I personally use it when I have to distribute code.

\documentclass[a4paper]{cd}
\begin{document}
\covertext{
Pouya\\ \vspace{1cm}
\textbf {Full title of the work}
}

\leftspine{\textnormal{Pouya}}
\rightspine{\textbf{Shorter title for the sides}}
\lefttracklist{
\track Code
\track Documentation
\track Notes for users
\track Demos
}
\leftinfo{Some example information}
\makecover\par
\makeback\par
\end{document}


-

...in­te­grates the let­ter class with fan­cy­hdr and ge­om­e­try to au­to­mat­i­cally make let­ter­head sta­tionery. Use­ful for writ­ing let­ters, fax, and memos. You can set up an ad­dress book us­ing ‘wrap­per’ macros. You put all the in­for­ma­tion for a per­son into a wrap­per and then put the wrap­per in a doc­u­ment. The class han­dles let­ter­heads au­to­mat­i­cally. You place the ob­ject for the let­ter­head (pic­ture, in­for­ma­tion, etc.) in a box and all siz­ing is set au­to­mat­i­cally.

From the documentation, this is how one would write a simple letter:

\documentclass[stdletter]{newlfm}
\nameto{George Bush} \addrto{\parbox{2in}{The White House \\ Washington, DC}}
\namefrom{Paul Thompson} \addrfrom{\parbox{2in}{The Pink House \\ Belleville, IL}}
\begin{document}
\closeline{Sincerely yours,} \greetto{Dear Mr. Bush,}
\begin{newlfm}
How are the azaleas?
\end{newlfm}
\end{document}

-