LaTeX/Document Structure
The main point of writing a text is to convey ideas, information, or knowledge to the reader. The reader will understand the text better if these ideas are well-structured, and will see and feel this structure much better if the typographical form reflects the logical and semantic structure of the content.
Given only the logical and semantical structure of a text, LaTeX derives the typographical form of the text according to the “rules” given in the document class file and in various style files. LaTeX allows users to structure their documents with a variety of hierarchical constructs, including chapters, sections, subsections and paragraphs.
Global structure
editWhen LaTeX processes an input file, it expects it to follow a certain structure. Thus every input file must contain the commands
\documentclass{...}
\begin{document}
...
\end{document}
|
The area between \documentclass{...}
and \begin{document}
is called the preamble. It normally contains commands that affect the entire document.
After the preamble, the text of your document is enclosed between two commands which identify the beginning and end of the actual document:
\begin{document}
...
\end{document}
|
You would put your text where the dots are. The reason for marking off the beginning of your text is that LaTeX allows you to insert extra setup specifications before it (where the blank line is in the example above: we'll be using this soon). The reason for marking off the end of your text is to provide a place for LaTeX to be programmed to do extra stuff automatically at the end of the document, like making an index.
A useful side-effect of marking the end of the document text is that you can store comments or temporary text underneath the \end{document}
in the knowledge that LaTeX will never try to typeset them:
\end{document}
...
|
Preamble
editDocument classes
editWhen processing an input file, LaTeX needs to know which layout standard to use. Layouts standards are contained within 'class files' which have .cls as their filename extension.
\documentclass[options]{class}
|
Here, the class
parameter for the command \documentclass
specifies the .cls file to use for the document. It is recommended to put this declaration at the very beginning. The LaTeX distribution provides additional classes for other layouts, including letters and slides. It is also possible to create your own, as is often done by journal publishers, who simply provide you with their own class file, which tells LaTeX how to format your content. But we'll be happy with the standard article class for now. The options
parameter customizes the behavior of the document class. The options have to be separated by commas.
Example: an input file for a LaTeX document could start with the line
\documentclass[11pt,twoside,a4paper]{article}
|
which instructs LaTeX to typeset the document as an article with a base font size of 11 points, and to produce a layout suitable for double sided printing on A4 paper.
Here are some document classes that can be used with LaTeX:
article | For articles in scientific journals, presentations, short reports, program documentation, invitations, ... |
IEEEtran | For articles with the IEEE Transactions format. |
proc | A class for proceedings based on the article class. |
minimal | It is as small as it can get. It only sets a page size and a base font. It is mainly used for debugging purposes. |
report | For longer reports containing several chapters, small books, thesis, ... |
book | For books. |
slides | For slides. The class uses big sans serif letters. |
memoir | For sensibly changing the output of the document. It is based on the book class, but you can create any kind of document with it [1] |
letter | For writing letters. |
beamer | For writing presentations (see LaTeX/Presentations). |
Here is a comprehensive list of document classes.
The generic document classes that come with LaTeX offer some layout flexibility, which is why they have a lot of options in common. Non-generic classes (those provided by university departments or publication houses) may have different options than those shown below or no options at all. Normally, third-party classes come with their own documentation. The most common options for the generic document classes are listed in the following table:
10pt, 11pt, 12pt | Sets the size of the main font in the document. If no option is specified, 10pt is assumed. |
a4paper, letterpaper,... | Defines the paper size. The default size is letterpaper; However, many European distributions of TeX now come pre-set for A4, not Letter, and this is also true of all distributions of pdfLaTeX. Besides that, a5paper, b5paper, executivepaper, and legalpaper can be specified. |
fleqn | Typesets displayed formulas left-aligned instead of centered. |
leqno | Places the numbering of formulas on the left hand side instead of the right. |
titlepage, notitlepage | Specifies whether a new page should be started after the document title or not. The article class does not start a new page by default, while report and book do. |
twocolumn | Instructs LaTeX to typeset the document in two columns instead of one. |
twoside, oneside | Specifies whether double or single sided output should be generated. The classes article and report are single sided and the book class is double sided by default. Note that this option concerns the style of the document only. The option twoside does not tell the printer you use that it should actually make a two-sided printout. |
landscape | Changes the layout of the document to print in landscape mode. |
openright, openany | Makes chapters begin either only on right hand pages or on the next page available. This does not work with the article class, as it does not know about chapters. The report class by default starts chapters on the next page available and the book class starts them on right hand pages. |
draft, final | final is default. draft makes LaTeX indicate hyphenation and justification problems with a small square in the right-hand margin of the problem line so they can be located quickly by a human. It also suppresses the inclusion of images and shows only a frame where they would normally occur. |
For example, if you want a report to be in 12pt type on A4, but printed one-sided in draft mode, you would use:
\documentclass[12pt,a4paper,oneside,draft]{report}
|
Packages
editWhile writing your document, you will probably find that there are some areas where basic LaTeX cannot solve your problem. If you want to include graphics, colored text or source code from a file into your document, you need to enhance the capabilities of LaTeX. Such enhancements are called packages. Some packages come with the LaTeX base distribution. Others are provided separately. Modern TeX distributions come with a large number of packages pre-installed. The command to use a package is pretty simple: \usepackage
:
\usepackage[options]{package}
|
command, where package is the name of the package and options is a list of keywords that trigger special features in the package. For example, to use the color package, which lets you typeset in colors, you would type:
\documentclass{report}
\usepackage{color}
\begin{document}
...
\end{document}
|
You can pass several options to a package, each separated by a comma.
\usepackage[option1,option2,option3]{''package_name''}
|
The document environment
editTop matter
editAt the beginning of most documents there will be information about the document itself, such as the title and date, and also information about the authors, such as name, address, email etc. All of this type of information within LaTeX is collectively referred to as top matter. Although never explicitly specified (there is no \topmatter
command) you are likely to encounter the term within LaTeX documentation.
A simple example:
\documentclass[11pt,a4paper]{report}
\begin{document}
\title{How to Structure a LaTeX Document}
\author{Andrew Roberts}
\date{December 2004}
\maketitle
\end{document}
|
The \title
, \author
, and \date
commands are self-explanatory. You put the title, author name, and date in curly braces after the relevant command. The title and author are usually compulsory (at least if you want LaTeX to write the title automatically); if you omit the \date
command, LaTeX uses today's date by default. You always finish the top matter with the \maketitle
command, which tells LaTeX that it's complete and it can typeset the title according to the information you have provided and the class (style) you are using. If you omit \maketitle
, the title will never be typeset.
Using this approach, you can only create a title with a fixed layout. If you want to create your title freely, see the Title Creation section. You should remember, however, that the goal of LaTeX is to leave formatting to the documentclass designer, and if you wish to submit your work to multiple publishers then you should avoid designing a custom title.
Abstract
editAs most research papers have an abstract, there are predefined commands for telling LaTeX which part of the content makes up the abstract. This should appear in its logical order, therefore, after the top matter, but before the main sections of the body. This command is available for the document classes article and report, but not book.
\documentclass{article}
\begin{document}
\begin{abstract}
Your abstract goes here...
...
\end{abstract}
...
\end{document}
|
By default, LaTeX will use the word "Abstract" as a title for your abstract. If you want to change it into anything else, e.g. "Executive Summary", add the following line before you begin the abstract environment:
\renewcommand{\abstractname}{Executive Summary}
|
Sectioning commands
editThe commands for inserting sections are fairly intuitive. Of course, certain commands are appropriate to different document classes. For example, a book has chapters but an article doesn't. Here are some of the structure commands found in simple.tex.
\chapter{Introduction}
This chapter's content...
\section{Structure}
This section's content...
\subsection{Top Matter}
This subsection's content...
\subsubsection{Article Information}
This subsubsection's content...
|
Notice that you do not need to specify section numbers; LaTeX will sort that out for you. Also, for sections, you do not need to use \begin
and \end
commands to indicate which content belongs to a given block.
LaTeX provides 7 levels of depth for defining sections (see table below). Each section in this table is a subsection of the one above it.
Command | Level | Comment |
---|---|---|
\part{''part''}
|
-1 | not in letters |
\chapter{''chapter''}
|
0 | only books and reports |
\section{''section''}
|
1 | not in letters |
\subsection{''subsection''}
|
2 | not in letters |
\subsubsection{''subsubsection''}
|
3 | not in letters |
\paragraph{''paragraph''}
|
4 | not in letters |
\subparagraph{''subparagraph''}
|
5 | not in letters |
All the titles of the sections are added automatically to the table of contents (if you decide to insert one). But if you make manual styling changes to your heading, for example a very long title, or some special line-breaks or unusual font-play, this would appear in the Table of Contents as well, which you almost certainly don't want. LaTeX allows you to give an optional extra version of the heading text which only gets used in the Table of Contents and any running heads, if they are in effect. This optional alternative heading goes in [square brackets] before the curly braces:
\section[Effect on staff turnover]{An analysis of the
effect of the revised recruitment policies on staff
turnover at divisional headquarters}
|
Section numbering
editNumbering of the sections is performed automatically by LaTeX, so don't bother adding them explicitly, just insert the heading you want between the curly braces. Parts get roman numerals (Part I, Part II, etc.); chapters and sections get decimal numbering like this document, and appendices (which are just a special case of chapters, and share the same structure) are lettered (A, B, C, etc.).
You can change the depth to which section numbering occurs, so you can turn it off selectively. By default it is set to 3. If you only want parts, chapters, and sections numbered, not subsections or subsubsections etc., you can change the value of the secnumdepth counter using the \setcounter
command, giving the depth level you wish. For example, if you want to change it to "1":
\setcounter{secnumdepth}{1}
|
A related counter is tocdepth, which specifies what depth to take the Table of Contents to. It can be reset in exactly the same way as secnumdepth. For example:
\setcounter{tocdepth}{3}
|
To get an unnumbered section heading which does not go into the Table of Contents, follow the command name with an asterisk before the opening curly brace:
\subsection*{Introduction}
|
All the divisional commands from \part*
to \subparagraph*
have this "starred" version which can be used on special occasions for an unnumbered heading when the setting of secnumdepth would normally mean it would be numbered.
If you want the unnumbered section to be in the table of contents anyway, use package unnumberedtotoc [1]. It provides the command
\addsec{Introduction}
|
which will take care of a proper header as well. \addpart
and \addchap
are also available. KOMA classes provide those commands by default.
If you don't want to use package unnumberedtotoc, you have to do everything by hand using \addcontentsline
and \markright{}
(or even \markboth{}{}
).
\section*{Introduction}
\markright{}
\addcontentsline{toc}{section}{Introduction}
|
Note that if you use PDF bookmarks you will need to add a phantom section so that hyperlinks will lead to the correct place in the document. The \phantomsection
command is defined in the hyperref package, and is Commonly used like this:
\phantomsection
\addcontentsline{toc}{section}{Introduction}
\section*{Introduction}
|
For chapters you will also need to clear the page (this will also correct page numbering in the ToC):
\clearpage %or \cleardoublepage
\phantomsection
\addcontentsline{toc}{chapter}{List of Figures}
\listoffigures
|
Section number style
editSee Counters.
Ordinary paragraphs
editParagraphs of text come after section headings. Simply type the text and leave a blank line between paragraphs. The blank line means "start a new paragraph here": it does not mean you get a blank line in the typeset output. For formatting paragraph indents and spacing between paragraphs, refer to the Paragraph Formatting section.
Table of contents
editAll auto-numbered headings get entered in the Table of Contents (ToC) automatically. You don't have to print a ToC, but if you want to, just add the command \tableofcontents
at the point where you want it printed (usually after the Abstract or Summary).
Entries for the ToC are recorded each time you process your document, and reproduced the next time you process it, so you need to re-run LaTeX one extra time to ensure that all ToC pagenumber references are correctly calculated. We've already seen how to use the optional argument to the sectioning commands to add text to the ToC which is slightly different from the one printed in the body of the document. It is also possible to add extra lines to the ToC, to force extra or unnumbered section headings to be included.
The commands \listoffigures
and \listoftables
work in exactly the same way as \tableofcontents
to automatically list all your tables and figures. If you use them, they normally go after the \tableofcontents
command. The \tableofcontents
command normally shows only numbered section headings, and only down to the level defined by the tocdepth counter, but you can add extra entries with the \addcontentsline
command. For example if you use an unnumbered section heading command to start a preliminary piece of text like a Foreword or Preface, you can write:
\subsection*{Preface}
\addcontentsline{toc}{subsection}{Preface}
|
This will format an unnumbered ToC entry for "Preface" in the "subsection" style. You can use the same mechanism to add lines to the List of Figures or List of Tables by substituting lof or lot for toc. If the hyperref package is used and the link does not point to the correct chapter, the command \phantomsection
in combination with \clearpage
or \cleardoublepage
can be used (see also Labels and Cross-referencing):
\cleardoublepage
\phantomsection
\addcontentsline{toc}{chapter}{List of Figures}
\listoffigures
|
To change the title of the ToC, you have to paste this command \renewcommand{\contentsname}{<New table of contents title>}
in your document preamble. The List of Figures (LoF) and List of Tables (LoT) names can be changed by replacing the \contentsname
with \listfigurename
for LoF and \listtablename
for LoT.
Depth
editThe default ToC will list headings of level 3 and above. To change how deep the table of contents displays automatically the following command can be used in the preamble:
\setcounter{tocdepth}{4}
|
This will make the table of contents include everything down to paragraphs. The levels are defined above on this page. Note that this solution does not permit changing the depth dynamically.
You can change the depth of specific section type, which could be useful for PDF bookmarks (if you are using the hyperref package) :
\makeatletter
\renewcommand*{\toclevel@chapter}{-1} % Put chapter depth at the same level as \part.
\chapter{Epilogue}
\renewcommand*{\toclevel@chapter}{0} % Put chapter depth back to its default value.
\makeatother
|
In order to further tune the display or the numbering of the table of contents, for instance if the appendix should be less detailed, you can make use of the tocvsec2 package (CTAN, doc).
Book structure
editThe standard LaTeX book class follows the same layout described above with some additions. By default a book will be two-sided, i.e. left and right margins will change according to the page number parity. Furthermore current chapter and section will be printed in the header.
If you do not make use of chapters, it is barely useful to use the book class.
Additionally the class provides macros to change the formatting of some places of the document. We will give you some advice on how to use them properly.[2]
\begin{document}
\frontmatter
\maketitle
% Introductory chapters
\chapter{Preface}
% ...
\mainmatter
\chapter{First chapter}
% ...
\appendix
\chapter{First Appendix}
\backmatter
\chapter{Last note}
|
- The frontmatter chapters will not be numbered. Page numbers will be printed in roman numerals. Frontmatter is not supposed to have sections, so they will be numbered
0.n
because there is no chapter numbering. Check the Counters chapter for a fix. - The mainmatter chapters works as usual. The command resets the page numbering. Page numbers will be printed in arabic numerals.
- The
\appendix
macro can be used to indicate that following sections or chapters are to be numbered as appendices. Appendices can be used for the article class too:
\appendix
\section{First Appendix}
|
Only use the \appendix
macro once for all appendices.
- The backmatter behaves like the frontmatter. It has the same issue with section numbering.
As a general rule you should avoid mixing the command order. Nonetheless all commands are optional, so you might consider using only a few.
Note that the special content like the table of contents is considered as an unnumbered chapter.
Page order
editThis is one traditional page order for books.
- Frontmatter
- Half-title
- Empty
- Title page
- Information (copyright notice, ISBN, etc.)
- Dedication if any, else empty
- Table of contents
- List of figures (can be in the backmatter too)
- Preface chapter
- Mainmatter
- Main topic
- Appendix
- Some subordinate chapters
- Backmatter
- Bibliography
- Glossary / Index
Special pages
editComprehensive papers often feature special pages at the end, like indices, glossaries and bibliographies. Since this is quite a complex topic, we will give you details in the dedicated part Special Pages.
Bibliography
editAny good research paper will have a complete list of references. LaTeX has two ways of inserting your references into a document:
- you can embed them within the document itself. It's simpler, but it can be time-consuming if you are writing several papers about similar subjects so that you often have to cite the same books.
- you can store them in an external BibTeX file and then link them via a command to your current document and use a BibTeX style to define how they appear. This way you can create a small database of the references you might use and simply link them, letting LaTeX work for you.
To learn how to add a bibliography to your document, see the Bibliography Management section.
Notes and references
edit