\def\filedate{27 October 2022}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Common definitions shared across the various lecture document classes.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Version History
% v1.0 Initial version.
% v1.0.1 Fixed incorrect provided package name.
% v1.0.2 Increased number of tab stops in codesyntaxblock environment.
% v1.1 Added Unicode/XeLaTeX support.
% Added exercise environment.
% v1.2 Switched to "class" instead of "chapter".
% v1.2.1 Fixed fontspec option clash and made font handling consistent with XML framework.
% v1.2.2 Fixed incorrect Roman font in math mode.
% v1.2.3 Switched XeLaTeX fonts to new University standard (Minion Pro + Open Sans).
% v1.2.4 Fixed "class number plus one" so that it can be passed as a number to other macros.
% v1.2.5 Disabled Mapping=tex-text for mono font to eliminate automatic curly quotes.
% v1.2.6 Enabled unicode option for hyperref when using Xe(La)TeX.
% v1.2.7 Reverted unicode option for hyperref due to option clash error.
% v1.3 Switched to otagofonts.sty for font configuration.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NeedsTeXFormat{LaTeX2e}[2001/06/01]
\ProvidesPackage{lecturecommon}[2022/10/27 INFO standard lecture setup v1.3]
% Standard packages common to ALL lecture documents.
\RequirePackage{amsmath} % needs to be loaded before mathspec
\RequirePackage{otagofonts}
\RequirePackage{boxedminipage}
\RequirePackage{graphicx}
\RequirePackage{hyperref}
\hypersetup{pdfpagemode=UseNone}
% Standard macros and package configuration common to ALL lecture notes
% documents.
% graphicx setup.
\graphicspath{{images/}}
% Simple code listing setup.
\newcommand{\keyword}[1]{\texttt{\uppercase{#1}}}
\newcommand{\nonterminal}[1]{\textit{\texttt{#1}}}
% Note: maximum 13 tab stops in a tabbing environment. (Bah.)
\newenvironment{codesyntaxblock}[1][\normalsize]%
{\begingroup\ttfamily#1\begin{tabbing}mm\=mm\=mm\=mm\=mm\=mm\=mm\=mm\=mm\=mm\=mm\=mm\=mm\=\kill}%
{\end{tabbing}\endgroup}
% Environment for boxed exercises.
\newcounter{exercise}
\setcounter{exercise}{0}
% Arguments: #1 width of box to set the exercise text in (defaults to \columnwidth).
\newenvironment{exercise}[1][\columnwidth]%
{\noindent\refstepcounter{exercise}\begin{boxedminipage}{#1}\textbf{Exercise \theexercise: }}%
{\end{boxedminipage}}
% Starred form produces an unnumbered exercise.
\newenvironment{exercise*}[1][\columnwidth]%
{\noindent\begin{boxedminipage}{#1}\textbf{Exercise: }}%
{\end{boxedminipage}}
% Standard variables for various things, and macros for initialising them.
% These can be used (or not) as necessary.
% Paper variables: subject code.
\newcommand{\SubjectCode}{UNDEFINED}
\newcommand{\SetSubjectCode}[1]{\renewcommand{\SubjectCode}{#1}}
% Paper number.
\newcommand{\PaperNumber}{UNDEFINED}
\newcommand{\SetPaperNumber}[1]{\renewcommand{\PaperNumber}{#1}}
% Convenience macro for printing out the full paper code.
\newcommand{\PaperCode}{\SubjectCode~\PaperNumber}
% Paper title.
\newcommand{\PaperTitle}{UNDEFINED}
\newcommand{\SetPaperTitle}[1]{\renewcommand{\PaperTitle}{#1}}
% Department name.
\newcommand{\DepartmentName}{UNDEFINED}
\newcommand{\SetDepartmentName}[1]{\renewcommand{\DepartmentName}{#1}}
% Teaching period.
\newcommand{\TeachingPeriod}{UNDEFINED}
\newcommand{\SetTeachingPeriod}[1]{\renewcommand{\TeachingPeriod}{#1}}
% Year offered.
\newcommand{\YearOffered}{UNDEFINED}
\newcommand{\SetYearOffered}[1]{\renewcommand{\YearOffered}{#1}}
% Oracle version.
\newcommand{\Oracle}{UNDEFINED}
\newcommand{\SetOracleVersion}[1]{\renewcommand{\Oracle}{#1}}
% Class number.
\newcounter{chapterplusone}
\newcommand{\ClassNumber}{\thechapter}
\newcommand{\ClassNumberPlusOne}{\thechapterplusone}
\newcommand{\SetClassNumber}[1]{%
\setcounter{chapter}{#1}%
\setcounter{chapterplusone}{#1}%
\stepcounter{chapterplusone}%
}
% Backwards compatibility with the old syntax
\newcommand{\ChapterNumber}{\ClassNumber}
\newcommand{\ChapterNumberPlusOne}{\ClassNumberPlusOne}
\newcommand{\SetChapterNumber}[1]{\SetClassNumber{#1}}
% Class title.
\newcommand{\ClassTitle}{UNDEFINED}
\newcommand{\SetClassTitle}[1]{\renewcommand{\ClassTitle}{#1}}
\newcommand{\ShortClassTitle}{UNDEFINED}
\newcommand{\SetShortClassTitle}[1]{\renewcommand{\ShortClassTitle}{#1}}
% Backwards compatibility with the old syntax
\newcommand{\ChapterTitle}{\ClassTitle}
\newcommand{\SetChapterTitle}[1]{\SetClassTitle{#1}}
\newcommand{\ShortChapterTitle}{\ShortClassTitle}
\newcommand{\SetShortChapterTitle}[1]{\SetShortClassTitle{#1}}
% Class type.
\newcommand{\ClassType}{Lecture}
\newcommand{\SetClassType}[1]{\renewcommand{\ClassType}{#1}}
\endinput