%% psipresentation.cls \ProvidesClass{psipresentation}[2024/05/28 Unofficial PSI Presentation Class by Sven Augustin] \NeedsTeXFormat{LaTeX2e} \DeclareOption*{\PassOptionsToClass{\CurrentOption}{beamer}} \ProcessOptions\relax \LoadClass[final, 10pt, aspectratio=169]{beamer} % t: align columns to top \beamertemplatenavigationsymbolsempty \institute{Paul Scherrer Institut PSI} \newcommand\location[1]{\def\insertlocation{#1}} \location{} \newcommand\titleimage[1]{\def\inserttitleimage{#1}} \let\inserttitleimage\empty \newcommand\titlecolor[1]{\def\inserttitlecolor{#1}} \titlecolor{blue} \RequirePackage{polyglossia} \RequirePackage{microtype} \RequirePackage{fontspec} \RequirePackage{csquotes} \RequirePackage{tikz} \setmainlanguage{english} \setbeamersize{ text margin left=0.055\paperwidth, text margin right=0.055\paperwidth } \setmainfont{Aptos}[ Path = psipresentation/fonts/Aptos/, Extension = .ttf, UprightFont = *, BoldFont = *-Bold, ItalicFont = *-Italic, BoldItalicFont = *-Bold-Italic ] \setsansfont{Aptos}[ Path = psipresentation/fonts/Aptos/, Extension = .ttf, UprightFont = *, BoldFont = *-Bold, ItalicFont = *-Italic, BoldItalicFont = *-Bold-Italic ] \setmonofont{AptosMono}[ Path = psipresentation/fonts/AptosMono/, Extension = .ttf, UprightFont = *-Regular, BoldFont = *-Bold, ItalicFont = *-Italic, BoldItalicFont = *-Bold-Italic ] \input{psipresentation/psicolors} % boxes \setbeamerfont{block title}{series=\bfseries, size=\normalsize} \setbeamercolor{block title}{fg=black, bg=white} % lists \setlength{\leftmargini}{10pt} \setlength{\leftmarginii}{10pt} \setlength{\leftmarginiii}{10pt} \newcommand\ibullet{\raisebox{-0.2em}{\scalebox{2.2}{$\cdot$}}} \setbeamertemplate{itemize item}{\ibullet} \setbeamertemplate{itemize subitem}{\ibullet} \setbeamertemplate{itemize subsubitem}{\ibullet} \setbeamercolor{itemize item}{fg=black} \setbeamercolor{itemize subitem}{fg=black} \setbeamercolor{itemize subsubitem}{fg=black} \setbeamercolor{enumerate item}{fg=black} \setbeamercolor{enumerate subitem}{fg=black} \setbeamercolor{enumerate subsubitem}{fg=black} % title page \defbeamertemplate*{title page}{PSI}[1][] { \newcommand{\titletextleftedge}{0.056} \newcommand{\titlelogowidth}{0.14} \newcommand{\titlelogoupperedge}{0.84} \newcommand{\titleboxheight}{0.27} \newcommand{\titleimageheight}{0.78} \newcommand{\ypostitle}{4.65} \newcommand{\ypossubtitle}{3.8} \newcommand{\yposauthor}{1.1} \newcommand{\yposlocationdate}{0.75} \colorlet{authorfont}{white} \colorlet{datefont}{white} \begin{tikzpicture}[overlay, remember picture, shift={(current page.south west)}] % use the whole page \ifx \inserttitleimage \empty \colorlet{titlefont}{white} \colorlet{subtitlefont}{white} \newcommand{\logocolor}{white} \newcommand{\titletextspace}{0.66} \node[inner sep=0pt, anchor=south west] (bkg) at (-0.01, -0.01) { \includegraphics[height=\paperheight]{psipresentation/imgs/bkgs/\inserttitlecolor} }; \else \colorlet{titlefont}{black} \colorlet{subtitlefont}{black} \newcommand{\logocolor}{black} \newcommand{\titletextspace}{0.43} \fill[\inserttitlecolor] (0, \titleboxheight\paperheight) rectangle ++(\paperwidth, -\paperheight); % bottom color box \node[inner sep=0pt, anchor=west] (image) at (\paperwidth/2 + 5, \paperheight/2 + 5) { \includegraphics[height=\titleimageheight\paperheight]{\inserttitleimage} }; \fi \node[inner sep=0pt, anchor=south west] (psi-logo) at (\titletextleftedge\paperwidth, \titlelogoupperedge\paperheight) { \includegraphics[width=\titlelogowidth\paperwidth]{psipresentation/imgs/logos/psi-logo-\logocolor} }; %TODO: make the following a command? \node[inner sep=0pt, anchor=south] (titletext) at (\titletextleftedge\paperwidth, \ypostitle) { \rlap{\huge\textbf{\textcolor{titlefont}{% \parbox[t]{\titletextspace\paperwidth}{% \inserttitle% } }}}}; \node[inner sep=0pt] (subtitletext) at (\titletextleftedge\paperwidth, \ypossubtitle) { \rlap{\large\textbf{\textcolor{subtitlefont}{% \parbox[t]{\titletextspace\paperwidth}{% \insertsubtitle{}% } }}}}; \node[inner sep=0pt] (authortext) at (\titletextleftedge\paperwidth, \yposauthor) { \rlap{\footnotesize{\textcolor{authorfont}{% \parbox[t]{\titletextspace\paperwidth}{% \insertauthor{}% } }}}}; \node[inner sep=0pt] (locationdatetext) at (\titletextleftedge\paperwidth, \yposlocationdate) { \rlap{\footnotesize{\textcolor{datefont}{ \parbox[t]{\titletextspace\paperwidth}{% \insertlocation, \insertdate% } }}}}; \end{tikzpicture} } % frame \setbeamertemplate{frametitle} { \newcommand{\titlelogowidth}{0.075} \newcommand{\titlelogoupperedge}{0.96} \newcommand{\titlelogorightedge}{0.94} \newcommand{\frametitleupperedge}{0.95} \newcommand{\frametitleleftedge}{0.055} \newcommand{\frametitlespace}{0.75} \newcommand{\bottomupperedge}{0.06} \newcommand{\bottomauthorleftedge}{\frametitleleftedge} \newcommand{\bottominstituteleftedge}{0.12} \newcommand{\bottomdaterightedge}{0.94} % 1 - 0.06 \colorlet{frametitlefont}{black} \colorlet{bottomfont}{black} \begin{tikzpicture}[overlay, remember picture, shift={(current page.south west)}] % use the whole page \node[inner sep=0pt, anchor=north east] (psi-logo) at (\titlelogorightedge\paperwidth, \titlelogoupperedge\paperheight) { \includegraphics[width=\titlelogowidth\paperwidth]{psipresentation/imgs/logos/psi-logo-black} }; \node[inner sep=0pt, anchor=north west] (frame-title) at (\frametitleleftedge\paperwidth, \frametitleupperedge\paperheight) { \parbox[t]{\frametitlespace\paperwidth}{% \textcolor{frametitlefont}{\large\textbf{\insertframetitle}}% } }; \node[inner sep=0pt, anchor=west] (page-num) at (\bottomauthorleftedge\paperwidth, \bottomupperedge\paperheight) { \textcolor{bottomfont}{\tiny\insertframenumber} }; \node[inner sep=0pt, anchor=west] (institute) at (\bottominstituteleftedge\paperwidth, \bottomupperedge\paperheight) { \textcolor{bottomfont}{\tiny\insertinstitute} }; \node[inner sep=0pt, anchor=east] (author) at (\bottomdaterightedge\paperwidth, \bottomupperedge\paperheight) { \textcolor{bottomfont}{\tiny\insertdate} }; \end{tikzpicture} % since the above is all overlay, simply add enough space to cover the head \vskip 0.09\paperheight }