\def\filedate{13 June 2019}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% 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.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NeedsTeXFormat{LaTeX2e}[2001/06/01]
\ProvidesPackage{lecturecommon}[2019/06/13 INFO standard lecture setup v1.2.7]
% Standard packages common to ALL lecture documents.
\RequirePackage{amsmath} % needs to be loaded before mathspec
\RequirePackage{ifxetex}
\ifxetex
\RequirePackage[no-math]{fontspec}
\RequirePackage{mathspec}
\RequirePackage{xunicode}
\RequirePackage{xltxtra}
% The following line is equivalent to:
% \setmainfont{Minion Pro}
% \setmathsfont(Latin,Digits){Minion Pro}
% \setmathrm{Minion Pro}
\setprimaryfont[Mapping=tex-text]{Minion Pro}
\setsansfont[Mapping=tex-text, Scale=MatchUppercase, BoldFont={Open Sans}]{Open Sans Light}
% Explicitly specify Mapping=tex-text only for the primary and sans fonts,
% otherwise curly quotes will automatically appear in the mono font. Since
% this is pretty much exclusively used for code listings, this is a bad thing.
\setmonofont[Scale=MatchLowercase]{Letter Gothic 12 Pitch}
% Hack to prevent digits in hyperlinks from being set in the main font instead of the mono font.
% From http://tex.stackexchange.com/questions/99770/problem-with-digits-in-urls-when-using-mathspec-and-hyperref
% Note: doesn't matter if this is executed multiple times.
\makeatletter
\DeclareMathSymbol{0}{\mathalpha}{\eu@DigitsArabic@symfont}{`0}
\DeclareMathSymbol{1}{\mathalpha}{\eu@DigitsArabic@symfont}{`1}
\DeclareMathSymbol{2}{\mathalpha}{\eu@DigitsArabic@symfont}{`2}
\DeclareMathSymbol{3}{\mathalpha}{\eu@DigitsArabic@symfont}{`3}
\DeclareMathSymbol{4}{\mathalpha}{\eu@DigitsArabic@symfont}{`4}
\DeclareMathSymbol{5}{\mathalpha}{\eu@DigitsArabic@symfont}{`5}
\DeclareMathSymbol{6}{\mathalpha}{\eu@DigitsArabic@symfont}{`6}
\DeclareMathSymbol{7}{\mathalpha}{\eu@DigitsArabic@symfont}{`7}
\DeclareMathSymbol{8}{\mathalpha}{\eu@DigitsArabic@symfont}{`8}
\DeclareMathSymbol{9}{\mathalpha}{\eu@DigitsArabic@symfont}{`9}
\makeatother
\else % assume PDFLaTeX otherwise
\RequirePackage[T1]{fontenc}
\RequirePackage{textcomp}
\RequirePackage{lmodern}
\RequirePackage{mathpazo}
% Gill Sans to come...
% \renewcommand{\sfdefault}{}
\renewcommand{\ttdefault}{blg}
\fi
\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