When you are writing a longer document, you’ll likely want to split up the source into multiple files. For example, it’s very common to have one ‘main’/’root’ file, then one source file per chapter (for a book or thesis), or per significant section (for a long article).
LaTeX allows us to split up sources in a controlled way. There are two important
commands here, \input
and \include
. We can use \input
to make a file work
‘as though it was typed in here’, so it can be used for (essentially) any
material. The \include
command works for chapters only: it starts a new page
and makes some internal adjustments. But it has a big advantage: it allows us to
be selective in which chapters to include, so you can work on part of your
document rather than the whole thing.
A longer document might therefore look something like the following:
\documentclass{book}
\usepackage[T1]{fontenc}
\usepackage{biblatex}
\addbibresource{biblatex-examples.bib}
\title{A Sample Book}
\author{John Doe \and Joe Bloggs}
\IfFileExists{append.aux}
{
\includeonly{
% front,
% chap1,
chap2,
% append
}
}
{
% Do a full document initially to generate
% all the aux files
}
\begin{document}
\frontmatter
\include{front}
% =========================
\mainmatter
\include{chap1}
\include{chap2}
\appendix
\include{append}
% ========================
\backmatter
\printbibliography
\newpage
\input{backcover}
\end{document}
We’ll look at the various aspects of this file below. (The various support files are at the end of this page.)
\input
The \input
command is good for parts of a long file that are not separate
chapters. In the example, we have used it to separate out the front- and
backcovers, keeping the main file short and clear, and also meaning we could
re-use the covers in another document. We’ve also used it for the ‘non-chapter’
sections at the start of our ‘book’: things like the preface. Again, this is
to help keep the main file clear.
\include
and \includeonly
The \include
command is good for chapters, so we have used it for each full
chapter; it always starts a new page. We have selected which chapters will
actually be typeset using \includeonly
, which as you can see takes a
comma-separated list of file names. When you use \includeonly
, you can shorten
how long your typesetting takes and produce a ‘selective’ PDF for proofreading.
In addition, the key advantage of \includeonly
is that LaTeX will use all of
the cross reference information from the .aux
files of other included files.
The \tableofcontents
command uses the information from sectioning
commands to populate the table of contents. It has its own auxiliary
file, with extension .toc
, so you may need to run LaTeX twice to
resolve the information. The table is generated automatically from the
section titles. There are similar commands for \listoffigures
and
\listoftables
, which work from the float environment captions, and
use files with extension .lof
and .lot
respectively.
The \frontmatter
, \mainmatter
, and \backmatter
commands
affect the formatting.
For instance, \frontmatter
changes the page numbering to
Roman numbers.
The \appendix
command changes the numbering to A
, B
, etc.,
so for instance in the first chapter after \appendix
,
the header says Appendix A
.
Experiment with the basic structure of the demonstration document,
try adding and removing entries for \includeonly
and see the effect.
Add some floats and produce a list of figures and tables. If using a locally installed LaTeX, do you see how many LaTeX runs are required? (The online systems re-run LaTeX “behind the scenes” so the additional required runs are not so obvious.)
\input{frontcover}
\maketitle
\input{dedication}
\input{copyright}
\tableofcontents
\input{pref}
\chapter{Preface}
The preface text. See \cite{doody}.
\chapter{Introduction}
The first chapter text.
\chapter{Something}
The second chapter text.
\chapter*{Appendix}
The first appendix text.
\begin{center}
The front cover
\end{center}
\begin{center}
\large
For \ldots
\end{center}
\begin{center}
Copyright 2020 learnlatex.
\end{center}
\begin{center}
The back cover
\end{center}