mirror of
https://github.com/GrammaticalFramework/comp-syntax-gu-mlt.git
synced 2026-02-08 22:41:05 -07:00
188 lines
7.0 KiB
TeX
188 lines
7.0 KiB
TeX
\usepackage{tikz}
|
|
\usetikzlibrary{calc}
|
|
|
|
% -------- COLOR SCHEME --------
|
|
\definecolor{PrimaryColor}{RGB}{7,79,140} % primary color (blue)
|
|
\definecolor{SecondaryColor}{RGB}{242,88,26} % bulleted lists
|
|
\definecolor{BackgroundColor}{RGB}{255,255,255} % background & titles (white)
|
|
\definecolor{TextColor}{RGB}{0,0,0} % text (black)
|
|
\definecolor{ProgBarBGColor}{RGB}{175,175,175} % progress bar background (grey)
|
|
|
|
|
|
% set colours
|
|
\setbeamercolor{normal text}{fg=TextColor}\usebeamercolor*{normal text}
|
|
\setbeamercolor{alerted text}{fg=PrimaryColor}
|
|
\setbeamercolor{section in toc}{fg=PrimaryColor}
|
|
\setbeamercolor{structure}{fg=SecondaryColor}
|
|
\hypersetup{colorlinks,linkcolor=,urlcolor=SecondaryColor}
|
|
|
|
% set fonts
|
|
\setbeamerfont{itemize/enumerate body}{size=\large}
|
|
\setbeamerfont{itemize/enumerate subbody}{size=\normalsize}
|
|
\setbeamerfont{itemize/enumerate subsubbody}{size=\small}
|
|
|
|
% make pixelated bullets
|
|
\setbeamertemplate{itemize item}{
|
|
\tikz{
|
|
\draw[fill=SecondaryColor,draw=none] (0, 0) rectangle(0.1, 0.1);
|
|
\draw[fill=SecondaryColor,draw=none] (0.1, 0.1) rectangle(0.2, 0.2);
|
|
\draw[fill=SecondaryColor,draw=none] (0, 0.2) rectangle(0.1, 0.3);
|
|
}
|
|
}
|
|
\setbeamertemplate{itemize subitem}{
|
|
\tikz{
|
|
\draw[fill=SecondaryColor,draw=none] (0, 0) rectangle(0.075, 0.075);
|
|
\draw[fill=SecondaryColor,draw=none] (0.075, 0.075) rectangle(0.15, 0.15);
|
|
\draw[fill=SecondaryColor,draw=none] (0, 0.15) rectangle(0.075, 0.225);
|
|
}
|
|
}
|
|
\setbeamertemplate{itemize subsubitem}{
|
|
\tikz{
|
|
\draw[fill=SecondaryColor,draw=none] (0.050, 0.050) rectangle(0.15, 0.15);
|
|
}
|
|
}
|
|
|
|
% disable navigation
|
|
\setbeamertemplate{navigation symbols}{}
|
|
|
|
% disable the damn default logo!
|
|
\setbeamertemplate{sidebar right}{}
|
|
|
|
% custom draw the title page above
|
|
\setbeamertemplate{title page}{}
|
|
|
|
% again, manually draw the frame title above
|
|
\setbeamertemplate{frametitle}{}
|
|
|
|
% disable "Figure:" in the captions
|
|
% TODO: somehow this doesn't work for md-generated slides
|
|
%\setbeamertemplate{caption}{\tiny\insertcaption}
|
|
%\setbeamertemplate{caption label separator}{}
|
|
|
|
% add some space below the footnotes so they don't end up on the progress bar
|
|
\setbeamertemplate{footnote}{
|
|
\parindent 0em
|
|
\noindent
|
|
\raggedright
|
|
\hbox to 0.8em{\hfil\insertfootnotemark}
|
|
\insertfootnotetext
|
|
\par
|
|
\vspace{2em}
|
|
}
|
|
|
|
% add the same vspace both before and after quotes
|
|
\setbeamertemplate{quote begin}{\vspace{0.5em}}
|
|
\setbeamertemplate{quote end}{\vspace{0.5em}}
|
|
|
|
% progress bar counters
|
|
\newcounter{showProgressBar}
|
|
\setcounter{showProgressBar}{1}
|
|
\newcounter{showSlideNumbers}
|
|
\setcounter{showSlideNumbers}{1}
|
|
\newcounter{showSlideTotal}
|
|
\setcounter{showSlideTotal}{1}
|
|
|
|
% use \makeatletter for our progress bar definitions
|
|
% progress bar idea from http://tex.stackexchange.com/a/59749/44221
|
|
% slightly adapted for visual purposes here
|
|
\makeatletter
|
|
\newcount\progressbar@tmpcounta% auxiliary counter
|
|
\newcount\progressbar@tmpcountb% auxiliary counter
|
|
\newdimen\progressbar@pbwidth %progressbar width
|
|
\newdimen\progressbar@tmpdim % auxiliary dimension
|
|
|
|
\newdimen\slidewidth % auxiliary dimension
|
|
\newdimen\slideheight % auxiliary dimension
|
|
|
|
% make the progress bar go across the screen
|
|
\progressbar@pbwidth=\the\paperwidth
|
|
\slidewidth=\the\paperwidth
|
|
\slideheight=\the\paperheight
|
|
|
|
% draw everything with tikz
|
|
\setbeamertemplate{background}{ % all slides
|
|
% progress bar stuff
|
|
\progressbar@tmpcounta=\insertframenumber
|
|
\progressbar@tmpcountb=\inserttotalframenumber
|
|
\progressbar@tmpdim=\progressbar@pbwidth
|
|
\divide\progressbar@tmpdim by 100
|
|
\multiply\progressbar@tmpdim by \progressbar@tmpcounta
|
|
\divide\progressbar@tmpdim by \progressbar@tmpcountb
|
|
\multiply\progressbar@tmpdim by 100
|
|
|
|
\begin{tikzpicture}
|
|
% set up the entire slide as the canvas
|
|
\useasboundingbox (0,0) rectangle(\the\paperwidth,\the\paperheight);
|
|
|
|
% background
|
|
\fill[color=BackgroundColor] (0,0) rectangle(\the\paperwidth,\the\paperheight);
|
|
|
|
\ifnum\thepage=1\relax % only title slides
|
|
% primary color rectangle
|
|
\fill[color=PrimaryColor] (0, 4cm) rectangle(\slidewidth,\slideheight);
|
|
|
|
% text (title, subtitle, author, date)
|
|
\node[anchor=south,text width=\slidewidth-1cm,inner xsep=0.5cm] at (0.5\slidewidth,4cm) {\color{BackgroundColor}\Huge\textbf{\inserttitle}};
|
|
\node[anchor=north east,text width=\slidewidth-1cm,align=right] at (\slidewidth-0.4cm,4cm) {\color{PrimaryColor}\large\textbf{\insertsubtitle}};
|
|
\node at (0.5\slidewidth,2cm) {\color{PrimaryColor}\LARGE\insertauthor};
|
|
\node at (0.5\slidewidth,1.25cm) {\color{PrimaryColor}\Large\insertinstitute};
|
|
\node[anchor=south east] at(\slidewidth,0cm) {\color{PrimaryColor}\tiny\insertdate};
|
|
\else % other slides
|
|
% title bar
|
|
\fill[color=PrimaryColor] (0, \slideheight-1cm) rectangle(\slidewidth,\slideheight);
|
|
|
|
% slide title
|
|
\node[anchor=north,text width=\slidewidth-0.75cm,inner xsep=0.5cm,inner ysep=0.25cm] at (0.5\slidewidth,\slideheight) {\color{BackgroundColor}\huge\textbf{\insertframetitle}};
|
|
|
|
% logo (TODO: autoscale; now it expects 350x350
|
|
\node[anchor=north east] at (\slidewidth-0.25cm,\slideheight+0.06cm){\insertlogo};
|
|
|
|
% show progress bar
|
|
\ifnum \value{showProgressBar}>0\relax%
|
|
% progress bar icon in the middle of the screen
|
|
\draw[fill=ProgBarBGColor,draw=none] (0cm,0cm) rectangle(\slidewidth,0.25cm);
|
|
\draw[fill=PrimaryColor,draw=none] (0cm,0cm) rectangle(\progressbar@tmpdim,0.25cm);
|
|
|
|
% bottom info
|
|
\node[anchor=south west] at(0cm,0.25cm) {\color{PrimaryColor}\tiny\vphantom{lp}\insertsection};
|
|
% if slide numbers are active
|
|
\ifnum \value{showSlideNumbers}>0\relax%
|
|
% if slide totals are active
|
|
\ifnum \value{showSlideTotal}>0\relax%
|
|
% draw both slide number and slide total
|
|
\node[anchor=south east] at(\slidewidth,0.25cm) {\color{PrimaryColor}\tiny\insertframenumber/\inserttotalframenumber};
|
|
\else
|
|
\node[anchor=south east] at(\slidewidth,0.25cm) {\color{PrimaryColor}\tiny\insertframenumber};
|
|
\fi
|
|
\fi
|
|
\else
|
|
% section title in the bottom left
|
|
\node[anchor=south west] at(0cm,0cm) {\color{PrimaryColor}\tiny\vphantom{lp}\insertsection};
|
|
% if we're showing slide numbers
|
|
\ifnum \value{showSlideNumbers}>0\relax%
|
|
% if slide totals are active
|
|
\ifnum \value{showSlideTotal}>0\relax%
|
|
% slide number and slide total
|
|
\node[anchor=south east] at(\slidewidth,0cm) {\color{PrimaryColor}\tiny\insertframenumber/\inserttotalframenumber};
|
|
\else
|
|
\node[anchor=south east] at(\slidewidth,0cm) {\color{PrimaryColor}\tiny\insertframenumber};
|
|
\fi
|
|
\fi
|
|
\fi
|
|
\fi
|
|
\end{tikzpicture}
|
|
}
|
|
\makeatother
|
|
|
|
\AtBeginSection{\frame{\sectionpage}} % section pages
|
|
\setbeamertemplate{section page}
|
|
{
|
|
\begin{tikzpicture}
|
|
% set up the entire slide as the canvas
|
|
\useasboundingbox (0,0) rectangle(\slidewidth,\slideheight);
|
|
\fill[color=BackgroundColor] (-1cm, 2cm) rectangle (\slidewidth, \slideheight+0.1cm);
|
|
\fill[color=PrimaryColor] (-1cm, 0.5\slideheight-1cm) rectangle(\slidewidth, 0.5\slideheight+1cm);
|
|
\node[text width=\the\paperwidth-1cm,align=center] at (0.4\slidewidth, 0.5\slideheight) {\color{BackgroundColor}\Huge\textbf{\insertsection}};
|
|
\end{tikzpicture}
|
|
}
|