[Tex/LaTex] Book Class: Instructor’s Guide

book-designchaptersdocument-classesimportpackages

I am currently an undergraduate student finishing my bachelor's in mathematics. For my Complex Analysis course, my instructor personally chose me to create an Instructor's Guide for the course. The professor wants me to create the guide using a Book Document Class on LaTex.

I only have about five months of experience with LaTex. Most of the document classes I have worked with are articles and beamers.

The Instructor's Guide is like a mini book you can say. Every topic in lecture will be a chapter. Like a book, I will need a preface, table of contents, a glossary, etc. The professor told me I could actually have the chapters on a separate tex. document and just import them to my "master" file. Since I am still fairly new to LaTex, I was hoping someone could help me into the right direction: whether it be on what usepackages I should use, or suggestions about the layout of the Guides.

Thank you for your time and Thanks in Advance for your feedback.

Best Answer

There are quite a few things that you can do to make this project go smoothly- of course, there is bound to be a learning curve of some kind, so take what I say here as for what it's worth :)

The basics

One of the main things to remember when constructing a medium-to-big document like you describe is to emphasize content over form. As your professor says, you should probably have a main file, say main.tex which uses \include to incorporate each of your chapter files; during construction, you should make judicious use of the includeonly command to compile small portions of the document to increase your efficiency. A skeleton of this file might look like:

main.tex

\documentclass{book}

\includeonly{zebras}

\begin{document}

\include{zebras}
\include{lions}

\end{document}

All of the page settings, including margins, headers/footers, numbering schemes, spacing should all be controlled in this document.

Each of the chapter files should only contain content, such as

zebras.tex

\chapter{chapter heading}
\section{Section heading}
\begin{example}
...
\end{example}
...

Customizing elements

You'll want to use packages to customize the various elements of your document, which include (but not limited to):

Making your own elements

You'll almost certainly want to create your own environments- perhaps examples, theorems, lemmas, etc. There are many packages that can help with this, which include (but are not limited) to:

If you want framed theorem-like environments, then you can use:

In this day and age, you can draw almost any picture that you want to in LaTeX; the two main packages in use today (and you'll see them a lot) on this site are tikz and pstricks; the asymptote package has an increasing presence.

All of these packages should be loaded and tweaked in your main.tex; remember that zebras.tex and lions.tex should only contain content.

Cross referencing

LaTeX's cross referencing system has always been incredibly robust; we are lucky enough to live in an age of the varioref, hyperref and cleveref packages.

For example, instead of always having to type Figure \ref{fig:bernoulli}, you can simply type \cref{fig:bernoulli}. For figures and objects that are 'far away', you can write \vref{fig:bernoulli} which may produce, Figure 2.1 on page . You need a little care to load them in the correct order, which is

\usepackage{varioref}
\usepackage{hyperref}
\usepackage{cleveref}

While we're speaking of referencing, it's an excellent idea to use meaningful labels such as \label{fig:bernoulli} as discussed in What is the advantage of using the notation 'fig:' in the \label {}?.

Useful tools

There are a lot of tools that can help with automation- personally I consider arara the front runner; you set up directives in your document such as

% arara: pdflatex
% arara: makeglossaries
% arara: pdflatex
\documentclass{book}

\includeonly{zebras}

\begin{document}

\include{zebras}
\include{lions}

\end{document}

which will be very useful if/when you incorporate the glossaries package.

It is well worth taking the effort to learn how to use a Version Control System such as git; it may seem like an extra layer that may not seem strictly necessary, but even simple use of such a tool can make a world of difference in work flow.

Further reading

I have touched on a few of the elements that you'll want to consider when constructing a document- they are certainly not exhaustive, but I hope that they have given you something to think about.

You might also like to read (among other links)

In addition to these links, you might glance at the relevant parts of the documentation that I have linked to in my answer, and consider browsing the associated tags right here on our site.

Most importantly- don't expect to get it right first time: a document is a living, breathing thing that will evolve and change with your ideas, perspective and confidence. Good luck!