diff --git a/ppexample.tex b/ppexample.tex new file mode 100644 index 0000000..3b7d25a --- /dev/null +++ b/ppexample.tex @@ -0,0 +1,169 @@ +\documentclass{psipresentation} + +\usepackage{ragged2e} +\usepackage{blindtext} + + +\title{Title} +\subtitle{Subtitle} +\author{Author} +%\institute{Paul Scherrer Institut PSI} % default +\location{Location} +\date{DD Month YYYY} + +%% uncomment to switch to image mode +%\titleimage{psipresentation/imgs/example} + +%% available in background and image mode +%\titlecolor{blue} % default +%\titlecolor{red} + +%% only in background mode +%\titlecolor{darkblue} + +%% only in image mode +%\titlecolor{green} +%\titlecolor{pink} +%\titlecolor{purple} +%\titlecolor{yellow} + + + +\begin{document} + +\maketitle + + +\begin{frame}[t]{Frametitle} +\justifying + +\blindmathtrue +\blindtext +\end{frame} + + +\newcommand{\colortest}[1]{\textcolor{#1}{$\blacksquare$ #1}\\} + +\begin{frame}{PSI Colors} +\colortest{dark} +\colortest{light} + +\colortest{accent1} +\colortest{accent2} +\colortest{accent3} +\colortest{accent4} +\colortest{accent5} +\colortest{accent6} + +\colortest{blue} +\colortest{green} +\colortest{red} +\colortest{purple} +\colortest{yellow} +\colortest{pink} +\end{frame} + + +\begin{frame}{Lists} +\begin{columns}[onlytextwidth] +\begin{column}{0.5\textwidth} +\begin{itemize} +\item test +\begin{itemize} +\item test +\begin{itemize} +\item test +\item test +\end{itemize} +\item test +\end{itemize} +\item test +\end{itemize} +\end{column} + + +\begin{column}{0.5\textwidth} +\begin{enumerate} +\item test +\begin{enumerate} +\item test +\begin{enumerate} +\item test +\item test +\end{enumerate} +\item test +\end{enumerate} +\item test +\end{enumerate} +\end{column} +\end{columns} +\end{frame} + + +\begin{frame}[t]{Sample Slide \enquote{Wide Content}} +\begin{block}{Heading (formatted bold)} +Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas porttitor +congue massa. Fusce posuere, magna sed pulvinar ultricies, purus lectus +malesuada libero, sit amet commodo magna eros quis urna. +\end{block} + +~\\ + +\begin{block}{Heading (formatted bold)} +Nunc viverra imperdiet enim. Fusce est. Vivamus a tellus.\end{block} + +~\\ + +\begin{itemize} +\item Bullet List +\item Bullet List +\end{itemize} +\end{frame} + + +\begin{frame}[t]{Typeface} + +\begin{columns}[onlytextwidth] +\begin{column}{0.4\textwidth} +{\tiny Font} + +\begin{center} +{\Huge Aptos} +\end{center} + +{\tiny Control image (how the font should look like)} + +\begin{center} +\includegraphics[scale=0.44]{psipresentation/imgs/fonts/aptos} +\end{center} +\end{column} + +\begin{column}{0.4\textwidth} +{\tiny Font} + +\begin{center} +{\Huge \textbf{Aptos Bold}} +\end{center} + +{\tiny Control image (how the font should look like)} + +\begin{center} +\includegraphics[scale=0.44]{psipresentation/imgs/fonts/aptos-bold} +\end{center} +\end{column} + +\begin{column}{0.2\textwidth} +\end{column} +\end{columns} + +~\\~\\~\\ + +\begin{itemize} +\item If one of the font names above is not identical to the screenshot counterpart below, the +corresponding font is not installed on the system. +\end{itemize} +\end{frame} + +\end{document} + + diff --git a/psipresentation.cls b/psipresentation.cls new file mode 100644 index 0000000..faacb1a --- /dev/null +++ b/psipresentation.cls @@ -0,0 +1,233 @@ +%% 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 +] + + + +\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 +} + + + diff --git a/psipresentation/fonts/Aptos/Aptos-Bold-Italic.ttf b/psipresentation/fonts/Aptos/Aptos-Bold-Italic.ttf new file mode 100644 index 0000000..9f9acb4 Binary files /dev/null and b/psipresentation/fonts/Aptos/Aptos-Bold-Italic.ttf differ diff --git a/psipresentation/fonts/Aptos/Aptos-Bold.ttf b/psipresentation/fonts/Aptos/Aptos-Bold.ttf new file mode 100644 index 0000000..938b69f Binary files /dev/null and b/psipresentation/fonts/Aptos/Aptos-Bold.ttf differ diff --git a/psipresentation/fonts/Aptos/Aptos-Italic.ttf b/psipresentation/fonts/Aptos/Aptos-Italic.ttf new file mode 100644 index 0000000..169f6ec Binary files /dev/null and b/psipresentation/fonts/Aptos/Aptos-Italic.ttf differ diff --git a/psipresentation/fonts/Aptos/Aptos.ttf b/psipresentation/fonts/Aptos/Aptos.ttf new file mode 100644 index 0000000..f382592 Binary files /dev/null and b/psipresentation/fonts/Aptos/Aptos.ttf differ diff --git a/psipresentation/imgs/bkgs/blue.png b/psipresentation/imgs/bkgs/blue.png new file mode 100644 index 0000000..d735d7d Binary files /dev/null and b/psipresentation/imgs/bkgs/blue.png differ diff --git a/psipresentation/imgs/bkgs/darkblue.png b/psipresentation/imgs/bkgs/darkblue.png new file mode 100644 index 0000000..95a012d Binary files /dev/null and b/psipresentation/imgs/bkgs/darkblue.png differ diff --git a/psipresentation/imgs/bkgs/red.png b/psipresentation/imgs/bkgs/red.png new file mode 100644 index 0000000..9db32a5 Binary files /dev/null and b/psipresentation/imgs/bkgs/red.png differ diff --git a/psipresentation/imgs/example.png b/psipresentation/imgs/example.png new file mode 100644 index 0000000..169fddb Binary files /dev/null and b/psipresentation/imgs/example.png differ diff --git a/psipresentation/imgs/fonts/aptos-bold.png b/psipresentation/imgs/fonts/aptos-bold.png new file mode 100644 index 0000000..c789b92 Binary files /dev/null and b/psipresentation/imgs/fonts/aptos-bold.png differ diff --git a/psipresentation/imgs/fonts/aptos.png b/psipresentation/imgs/fonts/aptos.png new file mode 100644 index 0000000..fba152a Binary files /dev/null and b/psipresentation/imgs/fonts/aptos.png differ diff --git a/psipresentation/imgs/logos/psi-logo-black.emf b/psipresentation/imgs/logos/psi-logo-black.emf new file mode 100644 index 0000000..5671a30 Binary files /dev/null and b/psipresentation/imgs/logos/psi-logo-black.emf differ diff --git a/psipresentation/imgs/logos/psi-logo-black.pdf b/psipresentation/imgs/logos/psi-logo-black.pdf new file mode 100644 index 0000000..790b704 Binary files /dev/null and b/psipresentation/imgs/logos/psi-logo-black.pdf differ diff --git a/psipresentation/imgs/logos/psi-logo-white.emf b/psipresentation/imgs/logos/psi-logo-white.emf new file mode 100644 index 0000000..9ee13b8 Binary files /dev/null and b/psipresentation/imgs/logos/psi-logo-white.emf differ diff --git a/psipresentation/imgs/logos/psi-logo-white.pdf b/psipresentation/imgs/logos/psi-logo-white.pdf new file mode 100644 index 0000000..622430d Binary files /dev/null and b/psipresentation/imgs/logos/psi-logo-white.pdf differ diff --git a/psipresentation/psicolors.tex b/psipresentation/psicolors.tex new file mode 100644 index 0000000..1a1d933 --- /dev/null +++ b/psipresentation/psicolors.tex @@ -0,0 +1,21 @@ + +%load via \input{psicolors.tex} + +\definecolor{dark}{HTML}{4B4B4B} +\definecolor{light}{HTML}{B9B9B9} + +\definecolor{blue}{HTML}{0014E6} +\definecolor{green}{HTML}{00F0A0} +\definecolor{red}{HTML}{DC005A} +\definecolor{purple}{HTML}{6E14DC} +\definecolor{yellow}{HTML}{F0F500} +\definecolor{pink}{HTML}{F050FA} + +\colorlet{accent1}{blue} +\colorlet{accent2}{green} +\colorlet{accent3}{red} +\colorlet{accent4}{purple} +\colorlet{accent5}{yellow} +\colorlet{accent6}{pink} + +