LaTeX / lectureslides.cls
\def\filedate{1 February 2014}
% Document class for lecture slides.
% Version History
% v1.0   Initial version
% v1.0.1 Removed obsolete pgfarrows package.
% v1.0.2 Changed package loading order to ensure that hyperref is last.
% v1.0.3 Tweaked formatting of teaching period output on title page.
%        Moved in some useful miscellaneous macros.
% v1.1   Added nochapters option.
% v1.2   Added TikZ package and grid macro, and deprecated PGF.
% v1.3   Added support for configurable class types.
% v1.3.1 Fixed regression that eliminated paper title from title page.

         [2014/07/06 INFO lecture slides style, v.1.3.1]

% "Stream of conciousness" chapters vs. explicit individual classes. NOTE:
% you can't have both chapters and classes! This is because we use the same
% chapter macros for both cases, but they're applied differently (e.g., if
% nochapters is set, then \insertchapternumber represent the class number).
\newif\if@chapters \@chapterstrue


% Load required packages.
\RequirePackage{pgf} % DEPRECATED: only included for backwards compatibility
% DO NOT REMOVE THE NEXT LINE! The lecturecommon package loads a bunch
% of other packages, some of which are referenced below.

% Package initialisation.

% Beamer setup.
	\setbeamertemplate{navigation symbols}{}


% hyperref setup. We have to use a slightly convoluted method, because the
% macros referenced here haven't been set yet. Define the hyperref setup
% as a new macro, and call this AFTER initialising the paper and chapter
% variables.
        pdftitle={\PaperCode\ \ClassType\ \thechapter\ Slides},%

% B-I-G braces {} with a text label
% Arguments: [#1] height of brace; if missing, defaults to the height of the label box
%            {#2} width of box for label
%            {#3} the text of the label
% TODO: This could possibly be refactored into a single macro with a l/r argument?
    \( \left\}%
    \( \ifx&#1&\left.\fi%

% Bold-face text using the structure colour.

% Define the standard beamer colours as actual colours, as we use them
% in \color and \textcolor rather a lot.
\usebeamercolor*[fg]{alerted text}\colorlet{beameralert}{fg}

% Beamer-aware strikeout.

% Document setup.
    \title{\PaperCode \\ \PaperTitle}
\subtitle{\ClassType\ \insertchapternumber: \ClassTitle}
\institute{Department of \DepartmentName}
\date{\TeachingPeriod, \YearOffered}

% Some useful miscellaneous macros.

% Create an "invisible" cell in a table for consistent spacing purposes.
% It does so by taking the width of the supplied text and generating an
% empty box 1pt wider.
	\multicolumn{1}{#1}{\makebox[\widthof{#2} + 1pt]{}}%

% Draw a grid to aid PGF picture drawing/debugging.
% DEPRECATED: Use \DrawGridTikZ instead.
		\pgfputat{\pgfxy(0,-0.2)}{\pgfbox[center,top]{\tiny 0}}%
		\pgfputat{\pgfxy(-0.2,0)}{\pgfbox[right,center]{\tiny 0}}%

% Draw a grid to aid TikZ picture drawing/debugging.
		\draw[thin,step=1mm]  (0.0,0.0)   grid (#1,#2);%
		\draw[thick,step=1cm] (-0.1,-0.1) grid (#1+0.1,#2+0.1);%
		\pgftext[top,at={\pgfxy(0.0,-0.2)}]{\tiny 0}%
		\pgftext[right,at={\pgfxy(-0.2,0.0)}]{\tiny 0}%
		\foreach \x in {1,...,#1} {\pgftext[top,at={\pgfxy(\x,-0.2)}]{\tiny\x}}%
		\foreach \y in {1,...,#2} {\pgftext[right,at={\pgfxy(-0.2,\y)}]{\tiny\y}}%

% For numbered notes, add note number references to the slides when generating notes.

% Sometimes we want to put a comment in tiny text on the next line, but the default line skip
% will insert too much vertical space. Put a \tinyskip at the end of the line instead.