% % beamerthemeKenotom.sty % % A beamer style file to use in a kenotom presentation % % author: Christos Choutouridis % \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{beamerthemeKenotom}[2023/05/12 Kenotom beamer theme] % Requirements % ===================================================== \RequirePackage{xcolor} \RequirePackage{fontspec} \RequirePackage{tikz} \RequirePackage{graphicx} \RequirePackage{ifthen} \RequirePackage[absolute,overlay]{textpos} % Options % ===================================================== % key-value: theme: {classic(default), light, dark} \DeclareOptionBeamer{theme}{\def\beamer@kenotom@theme{#1}} % key-value: background: {none(default), ribon} \DeclareOptionBeamer{background}{\def\beamer@kenotom@background{#1}} % key-value: title: {normal(default), small, large} \DeclareOptionBeamer{title}{\def\beamer@kenotom@title{#1}} % Option: navigation \DeclareOptionBeamer{nonavigation}{\def\beamer@kenotom@nonavigation{}} % Option: fancy \DeclareOptionBeamer{fancy}{\def\beamer@kenotom@fancy{}} % Set default options \ExecuteOptionsBeamer{theme=classic} \ExecuteOptionsBeamer{background=none} \ExecuteOptionsBeamer{title=normal} \ProcessOptionsBeamer %\ProcessOptions\relax % Colors % ===================================================== % Define some colors \definecolor{KenotomGreenLight}{RGB}{127,213,201} \definecolor{KenotomGreen}{RGB}{57,174,157} \definecolor{KenotomGreenDark}{RGB}{39,103,96} \definecolor{KenotomGreenGreyLight}{RGB}{203,217,217} \definecolor{KenotomGreenGrey}{RGB}{67,91,92} \definecolor{KenotomGreenGreyDark}{RGB}{13,34,39} \definecolor{KenotomGreyLight}{RGB}{215,216,216} \definecolor{KenotomGrey}{RGB}{154,155,157} \definecolor{KenotomGreyDark1}{RGB}{108,108,108} \definecolor{KenotomGreyDark2}{RGB}{92,96,98} \definecolor{KenotomLightBlue1}{RGB}{207,226,234} \definecolor{KenotomLightBlue2}{RGB}{232,241,245} \definecolor{KenotomBlack}{RGB}{0,0,0} \definecolor{KenotomWhite}{RGB}{255,255,255} % Local commands % ===================================================== \newcommand{\Vfill}{\vskip0pt plus 1filll} % Define a string equality test \newcommand{\isequal}[2]{ \pdf@strcmp{#1}{#2} } \newcommand{\SetItemize}[1]{% \setbeamertemplate{itemize item}{\small{#1}} \setbeamertemplate{itemize subitem}{\scriptsize{#1}} \setbeamertemplate{itemize subsubitem}{\tiny{#1}} } \newcommand{\SetGraphItemize}[2]{ \setbeamertemplate{itemize item}{\small\includegraphics[height=#1]{#2}} \setbeamertemplate{itemize subitem}{\scriptsize\includegraphics[height=#1]{#2}} \setbeamertemplate{itemize subsubitem}{\tiny\includegraphics[height=#1]{#2}} } % [1]: Banner image \newcommand{\SetBackgroundPlain}[1]{% \setbeamertemplate{background}{% \begin{tikzpicture}[overlay,remember picture] % Banner \node[anchor=east, inner sep=0pt, yshift=-0.06\paperheight] at (current page.north east) {% \includegraphics[width=0.2\paperwidth]{#1} };% \end{tikzpicture}% } } % [1]: [social]: % {2}: Banner image % {3}: background image % {4}: y-offset % {5}: Opacity \newcommand{\SetBackgroundImage}[5][noSocial]{% \setbeamertemplate{background}{% \begin{tikzpicture}[overlay,remember picture] % Banner \node[anchor=east, inner sep=0pt, yshift=-0.06\paperheight] at (current page.north east) {% \includegraphics[width=0.2\paperwidth]{#2} };% % Image \node[anchor=center, inner sep=0pt, yshift=#4\paperheight, opacity=#5] at (current page.center) {% \includegraphics[width=\paperwidth]{#3} };% % Social links \ifnum \isequal{#1}{social}=0 \node[anchor=west, inner sep=0pt, xshift=0.05\paperwidth, yshift=-0.06\paperheight] at (current page.north west) {% \includegraphics[width=0.03\paperwidth]{media/Social.png} };% \fi \end{tikzpicture}% } } \newcommand{\BeginCountingFrames}{% \addtobeamertemplate{navigation symbols}{}{% \hspace{2em} \usebeamerfont{footline} \texttt{ \scriptsize{\insertframenumber/\inserttotalframenumber}} } \setcounter{framenumber}{0} } % % [1]: Color % [2]: Text %\newcommand{\InsertBackgroundToText}[2]{% %% \colorbox{#1}{% %% \parbox{\dimexpr\textwidth-2\fboxsep\relax}{#2} % \colorbox{#1}{#2} % % } %} % % Theme % ===================================================== \ifnum \isequal{\beamer@kenotom@theme}{dark}=0 \colorlet{BackgroundCanvasColor}{KenotomGreenGreyDark} \colorlet{TitleColor}{KenotomGreyLight} \colorlet{TitleColorFancy}{KenotomWhite} \colorlet{TitleColorAux}{KenotomGreenLight} \colorlet{SectionTitleColor}{KenotomGreenLight} \colorlet{FrameTitleColor}{KenotomGreenLight} \colorlet{BlockTitleColor}{KenotomGreenLight} \colorlet{TextColor}{KenotomGreenGreyLight} \colorlet{StructureColor}{KenotomGreenLight} \colorlet{SectionFrameOpacityColor}{KenotomGreenGreyDark} \colorlet{GraphicBoxColor}{KenotomGreyDark1} \colorlet{GraphicLineColor}{KenotomGreenLight} \colorlet{NavigationColor}{KenotomGreen} \colorlet{NavigationColorFancy}{KenotomGreen} \colorlet{NavigationArrowsColor}{KenotomGreyLight} \colorlet{NavigationArrowsColorFancy}{KenotomGreyLight} \colorlet{TableCaptionColor}{KenotomGreyDark1} \colorlet{TableCaptionTextColor}{KenotomWhite} \colorlet{TableRowColor1}{KenotomLightBlue1} \colorlet{TableRowColor2}{KenotomLightBlue2} \else \ifnum \isequal{\beamer@kenotom@theme}{light}=0 \colorlet{BackgroundCanvasColor}{KenotomWhite} \colorlet{TitleColor}{KenotomGrey} \colorlet{TitleColorFancy}{KenotomWhite} \colorlet{TitleColorAux}{KenotomGreen} \colorlet{SectionTitleColor}{KenotomWhite!90!KenotomGreenLight} \colorlet{FrameTitleColor}{KenotomGrey} \colorlet{BlockTitleColor}{KenotomGrey} \colorlet{TextColor}{KenotomGrey} \colorlet{StructureColor}{KenotomGreen} \colorlet{SectionFrameOpacityColor}{KenotomGreenLight} \colorlet{GraphicBoxColor}{KenotomGreyDark1} \colorlet{GraphicLineColor}{KenotomGreenLight} \colorlet{NavigationColor}{KenotomGreen} \colorlet{NavigationColorFancy}{KenotomWhite} \colorlet{NavigationArrowsColor}{KenotomGrey} \colorlet{NavigationArrowsColorFancy}{KenotomWhite} \colorlet{TableCaptionColor}{KenotomGrey} \colorlet{TableCaptionTextColor}{KenotomWhite} \colorlet{TableRowColor1}{KenotomLightBlue1} \colorlet{TableRowColor2}{KenotomLightBlue2} \else % clasic \colorlet{BackgroundCanvasColor}{KenotomWhite} \colorlet{TitleColor}{KenotomGreyDark1} \colorlet{TitleColorFancy}{KenotomWhite} \colorlet{TitleColorAux}{KenotomGreen} \colorlet{SectionTitleColor}{KenotomWhite!90!KenotomGreenLight} \colorlet{TitleColorFancy}{KenotomWhite} \colorlet{FrameTitleColor}{KenotomGreyDark2} \colorlet{BlockTitleColor}{KenotomGreyDark2} \colorlet{TextColor}{KenotomGreyDark1} \colorlet{StructureColor}{KenotomGreen} \colorlet{SectionFrameOpacityColor}{KenotomGreenLight} \colorlet{GraphicBoxColor}{KenotomGreyDark1} \colorlet{GraphicLineColor}{KenotomGreenLight} \colorlet{SectionFrameOpacityColor}{KenotomGreen} \colorlet{GraphicBoxColor}{KenotomGreyDark1} \colorlet{GraphicLineColor}{KenotomGreenLight} \colorlet{NavigationColor}{KenotomGreen} \colorlet{NavigationColorFancy}{KenotomWhite} \colorlet{NavigationArrowsColor}{KenotomGreyDark1} \colorlet{NavigationArrowsColorFancy}{KenotomWhite} \colorlet{TableCaptionColor}{KenotomGreyDark1} \colorlet{TableCaptionTextColor}{KenotomWhite} \colorlet{TableRowColor1}{KenotomLightBlue1} \colorlet{TableRowColor2}{KenotomLightBlue2} \fi\fi % Apply theme colors \setbeamercolor{background canvas}{bg=BackgroundCanvasColor} \setbeamercolor{title}{fg=TitleColor} \setbeamercolor{subtitle}{fg=TitleColor} \setbeamercolor{frametitle}{fg=FrameTitleColor} \setbeamercolor{section title}{fg=FrameTitleColor} \setbeamercolor{subsection title}{fg=FrameTitleColor} \setbeamercolor{block title}{fg=BlockTitleColor} \setbeamercolor{normal text}{fg=TextColor} \setbeamercolor{structure}{fg=StructureColor} \setbeamercolor{navigation symbols}{fg=NavigationColor, bg=NavigationArrowsColor} % % Layout and global settings % ===================================================== \newcommand{\SideMargin}{2em} % Frame layout \setbeamersize{ text margin left=\SideMargin, text margin right=\SideMargin } \setlength{\leftmargini}{1.25em} \setlength{\leftmarginii}{1em} \setlength{\leftmarginiii}{1em} \addtobeamertemplate{footnote}{}{\vspace{2ex}} % Default background (We overwrite it temporary inside kenotom frame environments) \ifnum \isequal{\beamer@kenotom@background}{ribon}=0 \SetBackgroundImage{media/BannerLogoLink.png}{media/Ribon.png}{0.04}{0.15} \else %None \SetBackgroundPlain{media/BannerLogoLink.png} \fi% % Fonts \setromanfont{Georgia} \setsansfont[Scale=MatchLowercase]{Open Sans} % General \ifdefined \beamer@kenotom@nonavigation \setbeamertemplate{navigation symbols}{} \fi \setbeamertemplate{caption}[numbered] % Default itemize symbols (We overwrite them with kenotom environments) \SetItemize{\textbullet} % Content style % ===================================================== \newcommand{\TitleSize}{\Huge} \newcommand{\SectionSize}{\Large} \ifnum \isequal{\beamer@kenotom@title}{small}=0 \newcommand{\FrameTitleSize}{\large} \else\ifnum \isequal{\beamer@kenotom@title}{normal}=0 \newcommand{\FrameTitleSize}{\Large} \else\ifnum \isequal{\beamer@kenotom@title}{large}=0 \newcommand{\FrameTitleSize}{\huge} \else % default = normal \newcommand{\FrameTitleSize}{\Large} \fi\fi\fi% \newcommand{\AuthorSize}{\Large} \newcommand{\InstituteSize}{\normalsize} \newcommand{\ContactInfoSize}{\normalize} \newcommand{\FancyTitleSize}{\LARGE} \newcommand{\FancyTitleFontStyle}[1]{\textbf{#1}} %\newcommand{\FancyDateSize}{\normalize} %\newcommand{\FancyDateFontStyle}[1]{\textrm{#1}} \newcommand{\FancySectionSize}{\huge} \newcommand{\FancySectionFontStyle}[1]{\textbf{#1}} % Title page style \setbeamertemplate{title page}[default][left] \setbeamerfont{title}{family=\rmfamily,size=\TitleSize} \setbeamerfont{author}{size=\AuthorSize} \setbeamerfont{institute}{size=\InstituteSize} \renewcommand{\maketitle}{% \ifdefined \beamer@kenotom@fancy \TitleFrameFancy \else {% once \SetBackgroundImage{media/BannerLink.png}{media/Ribon.png}{0.04}{0.4} \begin{frame} \titlepage \end{frame} } \fi } % footline %\setbeamertemplate{navigation symbols}{} %\setbeamertemplate{footlline}{\hfill \insertnavigation{0.3\textwidth}} % Frame title style \setbeamerfont{frametitle}{family=\rmfamily,size=\FrameTitleSize,series=\bfseries} \setbeamertemplate{frametitle}{ \vskip0.05\paperheight \insertframetitle } %\setbeamerfont{section title}{size=\LARGE,series=\bfseries} %\setbeamerfont{subsection title}{size=\Large,series=\bfseries} % Block style \setbeamerfont{block title}{family=\rmfamily,size=\large} % Table style \renewcommand{\arraystretch}{1.2} \newcommand{\tableheadrow}{\rowcolor{TableCaptionColor}} \newcommand{\tableheadcol}[1]{{\bfseries\color{TableCaptionTextColor}#1}} \rowcolors{2}{TableRowColor1}{TableRowColor2} % Section frames \AtBeginSection[]{% \ifdefined \beamer@kenotom@fancy \SectionFrameFancy \fi } %\AtBeginEnvironment{tabular}{\color{black}} \newcommand{\InsertFancyTitle}{% \FancyTitleSize \textcolor{TitleColorFancy}{\FancyTitleFontStyle{\inserttitle}} } \newcommand{\InsertFancySection}{% \FancySectionSize \textcolor{SectionTitleColor}{ \ifnum \thesection<10 \FancySectionFontStyle{0\thesection} \\ \else \FancySectionFontStyle{\thesection} \\ \fi \FancySectionFontStyle{\insertsection} } } \newcommand{\InsertFancyDate}{% \textcolor{TitleColorFancy}{\insertdate} } \newcommand{\InsertAuthorEmail}{% \AuthorEmail } \newcommand{\InsertAddress}{% \textcolor{StructureColor}{\Address} } \newcommand{\InsertTelephone}{% \textcolor{StructureColor}{\Telephone} } % Kenotom environments % ===================================================== % Kenotom CoverFrame \newcommand{\TitleFrameFancy}{ {% once \SetBackgroundImage[social]{media/BannerLink.png}{media/Ribon.png}{0.12}{0.1} \setbeamercolor{navigation symbols}{fg=NavigationColor, bg=NavigationArrowsColorFancy} \addtobeamertemplate{background}{}{% \begin{tikzpicture}[overlay,remember picture] % Logo \node[anchor=center, inner sep=0pt, yshift=0.275\paperheight] at (current page.center) {% \ifnum \isequal{\beamer@kenotom@theme}{dark}=0 \includegraphics[width=\paperwidth]{media/LogoWhite.png} \else \includegraphics[width=\paperwidth]{media/Logo.png} \fi };% % Car the \node[anchor=north, inner sep=0pt, yshift=0.08\paperheight] at (current page.center) {% \includegraphics[width=\paperwidth, keepaspectratio]{media/CarCover.png} };% % TitleBox center:0.58\paperheight \node[anchor=center, inner sep=0pt, yshift=0.08\paperheight] at (current page.center) {% \includegraphics[width=0.7\paperwidth, keepaspectratio]{media/FancyTitleBox.png} };% \end{tikzpicture} } \begin{frame} \setlength{\TPHorizModule}{\paperwidth} \setlength{\TPVertModule}{\paperheight} % hsize: % 0.58 = {BoxLength=7.697}/{TotlaLength=13.333} % hpos: 0.56 % (1.6/2)/13.333 in = 0.06\paperwidth % 0.5+0.06 = 0.56 % vpos: 0.42 % 0.42 = 0.5 - 0.08 \begin{textblock}{0.58}[0.5,0.5](0.56,0.42) \centering \InsertFancyTitle \end{textblock} % Date @ bottom right \begin{textblock}{0.5}[1,1](0.95,0.95) \begin{flushright} \InsertFancyDate \end{flushright} \end{textblock} \end{frame} } } % [nosubsections] % {1} : Outline Text Grey % {2} : Outline Text Green \newcommand{\OutlineFrameFancy}[3][subsections]{ {% once \SetBackgroundImage{media/BannerLink.png}{media/Ribon.png}{0.04}{0.1} \begin{frame} \begin{columns} \begin{column}{0.6\textwidth} \setlength{\TPHorizModule}{\textwidth} \setlength{\TPVertModule}{\textheight} \begin{textblock}{1}[0.5,0.5](0.55,0.35) \centering \huge \textbf {\textcolor{KenotomGrey}{#2} \textcolor{KenotomGreen}{#3}} \end{textblock} \end{column} \begin{column}{0.4\textwidth} \vspace{0.2\textheight} \ifnum \isequal{#1}{nosubsections}=0 \setcounter{tocdepth}{1} \fi \tableofcontents \Vfill \end{column} \end{columns} \end{frame} } } \newcommand{\OutlineFrame}[3][subsections]{% \ifdefined \beamer@kenotom@fancy \OutlineFrameFancy[#1]{#2}{#3} \else \begin{frame}{#2 #3} \vspace{0.2\textheight} \ifnum \isequal{#1}{nosubsections}=0 \setcounter{tocdepth}{1} \fi \tableofcontents \Vfill \end{frame} \fi } \newcommand{\SectionFrameFancy}{ {% once \SetBackgroundImage{media/nothing.png}{media/SectionBackground.png}{0}{1.0} \setbeamercolor{navigation symbols}{fg=NavigationColorFancy, bg=NavigationArrowsColorFancy} \addtobeamertemplate{background}{}{% \begin{tikzpicture}[overlay,remember picture] % Rectangular fill \fill[SectionFrameOpacityColor, opacity=0.95] (current page.south east) rectangle (0.3075\paperwidth, \paperheight); % Circle fill \fill[GraphicBoxColor, opacity=0.95] (0.3075\paperwidth, -0.5\paperheight) circle (0.1537\paperwidth); % Border lines \draw[color=GraphicLineColor, line width=0.8mm] (0.3075\paperwidth, -0.5\paperheight) circle (0.17\paperwidth); \draw[color=GraphicLineColor, line width=0.8mm] (0.4775\paperwidth, -0.5\paperheight) -- (0.9\paperwidth, -0.5\paperheight); \fill[GraphicLineColor, opacity=0.95] (0.9\paperwidth, -0.5\paperheight) circle (1.2mm); % City \node[anchor=center] at (0.3075\paperwidth, -0.5\paperheight) {% \includegraphics[width=0.1945\paperwidth]{media/City.png} }; \end{tikzpicture} } \begin{frame} \setlength{\TPHorizModule}{\paperwidth} \setlength{\TPVertModule}{\paperheight} % hsize: % 0.4 = {AvailableLength}/{TotlaLength} % hpos: 0.9 % // The line in svg ends @12in % 0.9 = {LineEnds}/{TotalLength} = 12/13.333 % vpos: 0.475 % // 0.025 above center % 0.475 = 0.5 - 0.025 \begin{textblock}{0.4}[1,1](0.9,0.475) \begin{flushright} \InsertFancySection \end{flushright} \end{textblock} \end{frame} } } \newcommand{\BackFrame}{ {% once \SetBackgroundImage[social]{media/BannerThankYou.png}{media/Ribon.png}{0.04}{0.4} \addtobeamertemplate{background}{}{% \begin{tikzpicture}[overlay,remember picture] \node[anchor=center, inner sep=0pt, yshift=0.04\paperheight] at (current page.center) {% \includegraphics[width=\paperwidth]{media/LogoDetails.png} };% \node[anchor=south, inner sep=0pt] at (current page.south) {% \includegraphics[width=\paperwidth]{media/BottomGradient.png} };% \end{tikzpicture} } \begin{frame} \Vfill \insertauthor \\ \InsertAuthorEmail \\ \InsertAddress \\ \InsertTelephone \vspace{0.125\paperheight} \end{frame} } } \newenvironment{tickmarks}{% \SetGraphItemize{1.6ex}{media/Tickmark.png} \begin{itemize} }{% \end{itemize} } \newenvironment{bullets}{% \SetGraphItemize{1.3em}{media/Bullet.png} \begin{itemize} }{% \end{itemize} }