# LaTeX build system for notes and slides

A few years ago, I was asked to help typeset some teaching material for a few university courses.  It is a tedious chore for many lecturers to maintain teaching material.

Most classes have a set of lecture notes. These are a valuable source of learning, and revision for many students. They also give an opportunity for the lecturer to delve into a level of detail not possible during lectures due to various constraints.

In the modern age of the PowerPoint presentation (or Beamer for the mathematically inclined), teachers often produce another set of materials in the form of lecture slides, solely for presentation. They are often much lighter on the intricate details than the notes, but still overlap significantly with the notes.  In this way, many teachers find this activity rather loathesome, as they are duplicate a lot of work into a different form.

Thankfully, $\LaTeX$ together with the Beamer package, gives one the ability to maintain a single repository of material from which lecture notes, and lecture slides can be produced. If you are new to LaTeX, I recommend reading the introductory article from the LaTeX Project in the references below.

# How it works

The Beamer package is mostly well known for producing slide style presentations.  It also has a less well known ability to tag special sections of a document using a special environment called a frame.

You can then produce two publications from the same latex source document, with the flexibility to tag content for notes only, slides only, or for both.

# Example

The following PDFs are produced from the same collection of source documents.

Notes: Sample lecture notes

Slides: Sample lecture slides

# Build system

Since it can be tedious, and inconvenient for a lot of people to configure, and set this up for themselves, I produced a template system that people can use, with instructions on how to use it.  For those people who can make use of a Makefile (most Linux, and Mac OS users), it’s as easy as typing the following in a terminal, at the project root directory:

` make `

to produce all documents, or

` make notes `
` make slides `

to generate notes, or slides, respectively.