Files
PSIpresentation/legacy/psipresentation.cls

253 lines
7.4 KiB
TeX
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

%% psipresentation.cls
\ProvidesClass{psipresentation}[2020/05/21 Unofficial PSI Presentation Class by Sven Augustin]
\NeedsTeXFormat{LaTeX2e}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{beamer}}
\ProcessOptions\relax
\LoadClass[final, 9pt]{beamer} % t: align columns to top
\beamertemplatenavigationsymbolsempty
\setbeamersize{
text margin left=0.111\paperwidth,
text margin right=0.05\paperwidth
}
\RequirePackage{polyglossia}
\setmainlanguage{english}
\RequirePackage{microtype}
\RequirePackage{fontspec}
%\RequirePackage{unicode-math}
\setmainfont{Georgia}[
Path = psipresentation/fonts/Georgia/,
Extension = .ttf,
UprightFont = *-Regular,
BoldFont = *-Bold,
ItalicFont = *-Italic,
BoldItalicFont = *-Bold-Italic
]
\setsansfont{MetaPro}[
Path = psipresentation/fonts/MetaPro/,
Extension = .otf,
UprightFont = *-Regular,
BoldFont = *-Bold,
ItalicFont = *-Italic,
BoldItalicFont = *-Bold-Italic
]
\setmonofont{FiraMono}[
Path = psipresentation/fonts/FiraMono/,
Extension = .otf,
UprightFont = *-Regular,
BoldFont = *-Bold,
Scale = MatchLowercase
]
\RequirePackage{tikz}
\input{psipresentation/psicolors}
\colorlet{boxlightgrey}{light}
\colorlet{boxdarkgrey}{dark}
\definecolor{overlayfontgrey}{cmyk}{0, 0, 0, 0.9}
\definecolor{authorfontgrey}{cmyk}{0, 0, 0, 0.4}
\definecolor{titlefontgrey}{cmyk}{0, 0, 0, 0.7}
\definecolor{datefontgrey}{cmyk}{0, 0, 0, 0.4}
\definecolor{blocktitlefontgrey}{cmyk}{0, 0, 0, 0.4}
\definecolor{blockbodyfontgrey}{cmyk}{0, 0, 0, 0.7}
% set colors for blocks
\setbeamercolor{block title}{fg=blocktitlefontgrey, bg=white}
\setbeamercolor{block body}{fg=blockbodyfontgrey, bg=white}
% set the fonts
\setbeamerfont{block title}{series=\bfseries}
\setbeamercolor{block alerted title}{fg=blocktitlefontgrey, bg=green!75}
\setbeamercolor{block alerted body}{fg=blockbodyfontgrey, bg=white}
\setbeamercolor{itemize item}{fg=green}
\setbeamercolor{itemize subitem}{fg=green!80}
\setbeamercolor{itemize subsubitem}{fg=green!60}
\setbeamercolor{enumerate item}{fg=green!80!black}
\setbeamercolor{enumerate subitem}{fg=green!80!black!80}
\setbeamercolor{enumerate subsubitem}{fg=green!80!black!60}
\newlength{\inboxwd}
\newlength{\iinboxwd}
\newlength{\inboxrule}
\setlength{\iinboxwd}{\inboxwd}
\setlength{\inboxrule}{\inboxwd}
\addtolength{\iinboxwd}{-0.5cm}
\addtolength{\inboxrule}{0.5cm}
% Alert block definition (with frame)
\setbeamertemplate{block alerted begin}
{
\par\vskip\medskipamount
\begin{beamercolorbox}[sep=0ex,rounded=true,center,dp={2ex}]{block alerted title}
\vskip0.01cm
\usebeamerfont{block title}\large\insertblocktitle
\end{beamercolorbox}
{\parskip0pt\par}
\usebeamerfont{block body}
\vskip-0.8cm
\begin{beamercolorbox}[sep=0.5cm, rounded=true,center]{block alerted title}
\setlength{\inboxwd}{\linewidth}
\addtolength{\inboxwd}{-1cm}
\begin{beamercolorbox}[rounded=true,wd={\inboxwd},center]{block alerted body}
\setlength{\iinboxwd}{\inboxwd}
\setlength{\inboxrule}{\inboxwd}
\addtolength{\iinboxwd}{-0.5cm}
\addtolength{\inboxrule}{0.5cm}
\begin{center}
\begin{minipage}{\iinboxwd}
% \justifying
}
\setbeamertemplate{block alerted end}
{
\end{minipage}
\end{center}
\end{beamercolorbox}
\end{beamercolorbox}
\vskip\smallskipamount
}
% title page
\newcommand\function[1]{\def\insertfunction{#1}}
\function{}
\defbeamertemplate*{title page}{customized}[1][]
{
\newcommand{\titlewhitemargin}{0.043}
\newcommand{\titleboxheight}{0.49}
\newcommand{\titleleftboxwidth}{0.279}
\newcommand{\titlerightboxwidth}{0.078}
\newcommand{\titlephotocenterpos}{0.6005}% 0.279 + (1-0.279-0.078)/2 = 0.6005
\newcommand{\titletextleftedge}{0.092}
\newcommand{\titlelogowidth}{0.133}
\newcommand{\titlelogoupperedge}{0.855}
\newcommand{\titletextspace}{0.85}
\newcommand{\titlesmallboxsidelength}{0.078}
\begin{tikzpicture}[overlay, remember picture, shift={(current page.south west)}] % use the whole page
% \draw (0, 0) -- (\paperwidth, \paperheight);
% \draw (0, \paperheight) -- (\paperwidth, 0);
\begin{scope}[shift={(0, -\titlewhitemargin\paperheight)}] % upper white margin
\fill[boxlightgrey] (0, \paperheight) rectangle ++(\titleleftboxwidth\paperwidth, -\titleboxheight\paperheight); % left grey box
\node[inner sep=0pt, anchor=north] (psi-photo) at (\titlephotocenterpos\paperwidth, \paperheight) {
\includegraphics[height=\titleboxheight\paperheight]{psipresentation/imgs/psi-photo-large-cropped.jpg}
};
\fill[boxlightgrey] (\paperwidth, \paperheight) rectangle ++(-\titlerightboxwidth\paperwidth, -\titleboxheight\paperheight); % right grey box
\end{scope}
\node[fill=white, fill opacity=0.75, inner sep=2.25pt, anchor=south east] (overlay) at ([xshift=0.1pt,yshift=-0.1pt]psi-photo.south east) { % tiny shifts to make sure corner is covered
\textcolor{overlayfontgrey}{\textbf{\fontsize{5.75}{0}\selectfont
\,WIR SCHAFFEN WISSEN HEUTE FÜR MORGEN\,
}}}; % overlay box
\node[inner sep=0pt, anchor=south west] (psi-logo) at (\titletextleftedge\paperwidth, \titlelogoupperedge\paperheight) {
\includegraphics[width=\titlelogowidth\paperwidth]{psipresentation/imgs/psilogo}
};
\node[inner sep=0pt] (titletext1) at (\titletextleftedge\paperwidth, 3.5) {
\rlap{\footnotesize\textbf{\textcolor{authorfontgrey}{%
\parbox[t]{\titletextspace\paperwidth}{%
\insertauthor{}~~::~~\insertfunction{}~~::~~\insertinstitute{}%
}
}}}};
\node[inner sep=0pt] (titletext2) at (\titletextleftedge\paperwidth, 2.5) {
\rlap{\Large\textrm{\textcolor{titlefontgrey}{%
\parbox[t]{\titletextspace\paperwidth}{%
\inserttitle%
}
}}}};
\node[inner sep=0pt] (titletext3) at (\titletextleftedge\paperwidth, 1.5) {
\rlap{\footnotesize\textbf{\textcolor{datefontgrey}{
\parbox[t]{\titletextspace\paperwidth}{%
\insertdate
}
}}}};
\fill[boxdarkgrey] (\titletextleftedge\paperwidth, 0) rectangle ++(\titlesmallboxsidelength\paperwidth, \titlesmallboxsidelength\paperwidth); % small bottom box
\end{tikzpicture}
}
% frame
\setbeamertemplate{frametitle}
{
\newcommand{\titlelogowidth}{0.111}
\newcommand{\titlelogoupperedge}{0.96} % 1 - 0.04
\newcommand{\titlelogoleftedge}{0.092}
\newcommand{\titleframetitleupperedge}{0.95} % 1 - 0.05
\newcommand{\titleframetitleleftedge}{0.23}
\newcommand{\titleframetitlespace}{0.73}
\newcommand{\titlesmallboxsidelength}{0.078}
\begin{tikzpicture}[overlay, remember picture, shift={(current page.south west)}] % use the whole page
% \draw (0, 0) -- (\paperwidth, \paperheight);
% \draw (0, \paperheight) -- (\paperwidth, 0);
\node[inner sep=0pt, anchor=north west] (psi-logo) at (\titlelogoleftedge\paperwidth, \titlelogoupperedge\paperheight) {
\includegraphics[width=\titlelogowidth\paperwidth]{psipresentation/imgs/psilogo}
};
\node[inner sep=0pt, anchor=north west] (frame-title) at (\titleframetitleleftedge\paperwidth, \titleframetitleupperedge\paperheight) {
\parbox[t]{\titleframetitlespace\paperwidth}{%
\textrm{\textcolor{titlefontgrey}{\LARGE\insertframetitle}}
}
};
\fill[boxdarkgrey] (0, 0.79\paperheight) rectangle ++(\titlesmallboxsidelength\paperwidth, -\titlesmallboxsidelength\paperwidth); % small bottom box
\end{tikzpicture}
% since the above is all overlay, simply add enough space to cover the head
\vskip0.118\paperheight % 0.21 - 0.092
}