Newer
Older
templates / lectures / preamble.tex
Mark on 22 Jul 2014 6 KB Improved code highlighting.
\usepackage[pdftex]{hyperref} % options added via hypersetup below
\usepackage{fixseminar}
\usepackage{soul}
\usepackage{graphicx}
\usepackage{pslatex}
\usepackage{paralist}
\usepackage{tplists}
\usepackage{multicol}
\usepackage{tabularx}
\usepackage{hhline}
\usepackage{texpower} % options added via \PassOptionsToPackage in driver files
\usepackage[T1]{fontenc} % needed for getting rid of smart quotes in code
\usepackage[scaled]{beramono} % code font
\usepackage{textcomp} % needed for getting rid of smart quotes in code
\usepackage[protrusion=true,expansion=true]{microtype}
\usepackage{listings}


%
% PDF tex graphics extensions {graphicx}
\DeclareGraphicsExtensions{.jpg,.jpeg,.pdf,.png,.mps}


% slidemargins {seminar,powersem}
\renewcommand{\slidetopmargin}{11mm}
\renewcommand{\slidebottommargin}{7mm}
\renewcommand{\slideleftmargin}{5mm}
\renewcommand{\sliderightmargin}{5mm}


%%% source code highlighting %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% first param is font size, second is baselineskip
\newcommand\codesize{\fontsize{9}{1.15\parskip}\selectfont}
\newcommand\smallcodesize{\fontsize{8}{1.1\parskip}\selectfont}


% define the colors for code highlighting (based on Eclipse colors)
%\definecolor{KeywordColor}{rgb}{0.5,0,0.33}    % violet
%\definecolor{CommentColor}{rgb}{0.25,0.5,0.37} % green
%\definecolor{StringColor}{rgb}{0.16,0,1}       % blue

% define the colors for code highlighting (based on NetBeans colors)
\definecolor{KeywordColor}{rgb}{0.0,0,0.9}
\definecolor{CommentColor}{rgb}{0.45,0.45,0.45} % a bit darker than NetBeans
\definecolor{StringColor}{rgb}{0.81,0.48,0.0}

% create the fonts for code highlighting
\newcommand{\codefont}{\fontfamily{fvm}\selectfont}
\newcommand{\commentfont}{\rmfamily\itshape}

% create a new environment for source code blocks
\lstnewenvironment{codeblock}[1][]
{
\lstset{
	language=Java,
	upquote=true,
	basicstyle=\color{black}\codefont\codesize,
	keywordstyle=\color{KeywordColor}\codefont\codesize,
	commentstyle=\color{CommentColor}\commentfont\normalsize,
	stringstyle=\color{StringColor}\codefont\codesize,
	aboveskip=10pt,
	belowskip=0pt,
	showstringspaces=false,
	tabsize=3,
	showtabs=false,
	columns=fullflexible,
	flexiblecolumns=true,
	xleftmargin=\slideleftmargin,
	breaklines=true
}\lstset{#1}}
{}

% create a new environment for source code blocks
\lstnewenvironment{smallcodeblock}[1][]
{% set up source code highlighting environment {listings}
\lstset{
	language=Java,
	upquote=true,
	basicstyle=\color{black}\codefont\smallcodesize,
	keywordstyle=\color{KeywordColor}\codefont\smallcodesize,
	commentstyle=\color{CommentColor}\commentfont\codesize,
	stringstyle=\color{StringColor}\codefont\smallcodesize,
	aboveskip=5pt,
	belowskip=-5pt,
	showstringspaces=false,
	tabsize=2,
	showtabs=false,
	columns=fullflexible,
	flexiblecolumns=true,
	xleftmargin=\slideleftmargin,
	breaklines=true
}\lstset{#1}}
{}

\lstdefinelanguage{JavaScript}{
  keywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break, this},
  sensitive=false,
  comment=[l]{//},
  morecomment=[s]{/*}{*/},
  morestring=[b]',
  morestring=[b]"
}

% command for typesetting inline code
\renewcommand{\code}[2][language=java]{%
\lstset{%
	language=Java,
	upquote=true,
	basicstyle=\color{black}\codefont\normalsize,
	keywordstyle=\color{KeywordColor}\codefont\normalsize,
	commentstyle=\color{CommentColor}\commentfont\normalsize,
	stringstyle=\color{StringColor}\codefont\normalsize,
	showstringspaces=false,
	showtabs=false
}%
\mbox{\lstinline[#1]!#2!}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% command for figures - first param is scale, second is file
\newcommand{\fig}[2] {
  \begin{figure}[H]
    \begin{center}
      \includegraphics[scale=#1,draft=false]{#2}
    \end{center}
  \end{figure}
  \vspace{-0.75\baselineskip}
}

% command for figures rotated 90 degrees left - first param is scale.
\newcommand{\rotatedfig}[2] {
  \begin{figure}[H]
    \begin{center}
      \includegraphics[scale=#1,draft=false, angle=90]{#2}
    \end{center}
  \end{figure}
}

% command for figures - first param is scale, second is file
\newcommand{\capfig}[3] {
  \begin{figure}[H]%
    \begin{center}%
      \includegraphics[scale=#1,draft=false]{#2}%
		\\ %
		{\footnotesize #3} %
    \end{center} %
  \end{figure} %
  \vspace{-0.75\baselineskip}
}

% suppress section numbers
\setcounter{secnumdepth}{-2}

% scale factors used by seminar/powersem package to make over/under full slides fit a bit better
\renewcommand{\slideshrink}{1.0}
\renewcommand{\slideskip}{0.25}
\renewcommand{\slidestretch}{1.05}

% increase paragraph spacing a little bit so slides don't look so crowded
\renewcommand{\slideparskip}{1.1ex}

% tweak section spacing and fonts
\makeatletter
\renewcommand\section{\@startsection{section}{1} %
  {0ex}    %  indent
  {-0.1ex} %  above
  {0.1ex}  %  below
  {\Large\sectfont\color{emcolor}}} % font

\renewcommand\subsection{\@startsection{subsection}{2} %
  {0ex}    %  indent
  {-0.1ex} %  above
  {0.1ex}  %  below
  {\large\sectfont\color{emcolor}}} % font

\renewcommand\subsubsection{\@startsection{subsubsection}{3} %
  {0ex}    %  indent
  {-0.1ex} %  above
  {0.1ex}  %  below
  {\small\sectfont\color{emcolor}}}
\makeatother

% suppress slide centering (which buggers up incremental uncovering)
\centerslidesfalse

% options for hyperef
\hypersetup{
  final={true},
  colorlinks={true},
  urlcolor={blue},
  filecolor={blue},
  linkcolor={blue},
  bookmarks={true},
  bookmarksopen={true},
  pdfpagemode={None}
} % title/subject/author attributes are set in lecturedetails.tex

% command for continuing slides - moves the content down a bit
\newcommand{\continued}{\null\smallskip}

\newcommand{\ra}[0]{$\rightarrow$~}

\definecolor{oublue}{cmyk}{1,0.85,0.1,0}		% RGB 0, 15, 90
\definecolor{oured}{cmyk}{0,0.9,0.85,0}			% RGB 100, 10, 15
\definecolor{ougold}{cmyk}{0,0.25,1,0}			% RGB 100, 75, 0
\definecolor{darkred}{cmyk}{0,1,1,0.1}

\newpagestyle{oupagestyle}%
{\color{ougold}\hspace{-\slideleftmargin}\rule[2mm]{0.1\textwidth}{\baselineskip}\color{oublue}\rule[2mm]{0.87\textwidth}{\baselineskip}\color{oured}\rule[2mm]{0.1\textwidth}{\baselineskip}}%
{\color{ougold}\hspace{-\slideleftmargin}\rule{0.97\textwidth}{\baselineskip}\color{oured}\rule{0.1\textwidth}{\baselineskip}% bottom band
\tiny\hspace{-\textwidth}\hspace{-\slideleftmargin}\color{black}% reset to start of band
\hspace{5pt}\raisebox{3.5pt}\PaperCode\hfill\raisebox{3.5pt}{\textsc{\LectureTitle}} % footer content
\hfill\raisebox{3.5pt}{\thepage}\hspace{3pt}% page number
}

\slidepagestyle{oupagestyle}

\slideframe[\setlength{}{}]{none}

% environment for generating first page content
\newenvironment{lecturecontent}%
{%
	\null\vfill\maketitle\vfill%
	\section{Topics covered in this lecture}%
	\begin{compactitem}
}%
{%
	\end{compactitem}\vfill\null%
}

\newcommand{\point}[2]{\textbf{#1}\\#2}