summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/bfh-ci/tex/beamerinnerthemeBFH.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/bfh-ci/tex/beamerinnerthemeBFH.sty')
-rw-r--r--macros/latex/contrib/bfh-ci/tex/beamerinnerthemeBFH.sty464
1 files changed, 464 insertions, 0 deletions
diff --git a/macros/latex/contrib/bfh-ci/tex/beamerinnerthemeBFH.sty b/macros/latex/contrib/bfh-ci/tex/beamerinnerthemeBFH.sty
new file mode 100644
index 0000000000..41856ab212
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/tex/beamerinnerthemeBFH.sty
@@ -0,0 +1,464 @@
+%% This is file `beamerinnerthemeBFH.sty' version 2.0.0 (2021/12/23),
+%% it is part of
+%% BFH-CI -- Corporate Design for Bern University of Applied Sciences
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2021 by
+%% Marei Peischl <marei@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% ============================================================================
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <bfh-ci@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% The development respository can be found at
+%% https://gitlab.ti.bfh.ch/bfh-latex/bfh-ci/
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\ProvidesExplPackage{beamerinnerthemeBFH}{2021/12/23}{2.0.0}{BFH-CI beamer inner theme, CI of Bern University of Applied Sciences}
+
+\RequirePackage{l3keys2e}
+
+\mode<presentation>
+
+\RequirePackage{trimclip}
+
+
+\keys_define:nn {ptxcd/beamer/inner} {
+ authorontitle .bool_gset:N = \g_ptxcd_authorontitle_bool,
+ authorontitle .initial:n = false,
+ authorontitle .default:n = true,
+ logofile .tl_gset:N = \g_ptxcd_logofile_tl,
+ logofile .initial:n =,
+ enforce-title-logo .bool_gset:N = \g_ptxcd_enforce_titlelogo_bool,
+ enforce-title-logo .initial:n = false,
+}
+\ProcessKeysOptions{ptxcd/beamer/inner}
+
+%logo setup & fallback
+\PassOptionsToPackage{variant=C,init-inverted=true,height=\g__ptxcd_logo_height_dim}{bfhlogo}
+
+\file_if_exist:nTF {bfhlogo.sty}
+{
+ \RequirePackage{bfhlogo}
+}
+{
+ \tl_if_empty:NT \g_ptxcd_logofile_tl {
+ \msg_new:nnnn {bfh-ci} {missing-bfhlogo}
+ {I~could~not~find~the~bfhlogo~package.}
+ {Please~have~a~look~at~the~bfh-ci~documentation~for~more~information~or~provide~an~alternative~using~the~logofile~option.}
+ \msg_warning:nn {bfh-ci} {missing-bfhlogo}
+ }
+}
+
+\box_if_exist:NF \g__ptxcd_logo_box {
+ \box_new:N \g__ptxcd_logo_box
+ \box_new:N \g__ptxcd_inverted_logo_box
+}
+
+\tl_if_empty:NF \g_ptxcd_logofile_tl {
+ \hbox_gset:Nn \g__ptxcd_logo_box {\includegraphics[height=\g__ptxcd_logo_height_dim]{\g_ptxcd_logofile_tl}}
+ \box_gset_eq:NN \g__ptxcd_inverted_logo_box \g__ptxcd_logo_box
+}
+
+\box_new:N \l__ptxcd_titlegraphic_box
+\box_new:N \l__ptxcd_titlehead_box
+\dim_new:N \l__ptxcd_titlegraphic_ht_dim
+\dim_new:N \l__ptxcd_titlegraphic_wd_dim
+
+\dim_new:N \g__ptxcd_titlerule_dim
+\dim_gset:Nn \g__ptxcd_titlerule_dim {4pt}
+
+%initialize sidebarwidth, only required if sidebar is not active (\z@)
+\newdimen\beamer@sidebarwidth
+
+\@ifpackageloaded{beamerouterthemeBFH}{}{
+ \dim_new:N \g__ptxcd_beamer_logosep_dim
+ \dim_new:N \l__ptxcd_beamer_extraindent_dim
+ \dim_new:N \g__ptxcd_beamer_sep_dim
+}
+
+\newcommand*{\partnerlogo}[1]{\def\insertpartnerlogo{\def\height{\g__ptxcd_logo_height_dim}#1}}
+\partnerlogo{}
+
+\RenewDocumentCommand{\titlegraphic}{sm}{
+ \IfBooleanTF{#1}{
+ \def\inserttitlegraphic{
+ \hbox_set:Nn \l__ptxcd_titlegraphic_box {\raisebox{\depth}{#2}}
+ \box_resize_to_wd:Nn \l__ptxcd_titlegraphic_box {\l__ptxcd_titlegraphic_wd_dim}
+ \dim_compare:nTF {\box_ht:N \l__ptxcd_titlegraphic_box - \l__ptxcd_titlegraphic_ht_dim > \c_zero_dim}
+ {
+ \dim_set:Nn \l_tmpa_dim {.5\box_ht:N \l__ptxcd_titlegraphic_box - .5\l__ptxcd_titlegraphic_ht_dim}
+ \clipbox{0pt~\dim_eval:n{\l_tmpa_dim}~0pt~\dim_eval:n{\l_tmpa_dim}}{\box_use:N \l__ptxcd_titlegraphic_box}
+ }{
+ \box_resize_to_ht:Nn \l__ptxcd_titlegraphic_box {\l__ptxcd_titlegraphic_ht_dim}
+ \dim_set:Nn \l_tmpa_dim {(\box_wd:N \l__ptxcd_titlegraphic_box - \l__ptxcd_titlegraphic_wd_dim) / 2}
+ \clipbox{\dim_eval:n{\l_tmpa_dim}~0pt~\dim_eval:n{\l_tmpa_dim}~0pt}{\box_use:N \l__ptxcd_titlegraphic_box}
+ }
+ }
+ }{
+ \def\inserttitlegraphic{#2}
+ }
+}
+
+\newcommand*{\inserttitleVcenter}[1]{
+ \usebeamerfont{title}
+ \vbox_to_ht:nn {#1} {
+ \skip_vertical:n {.6\g__ptxcd_logo_height_dim plus 1 fill}
+ \leavevmode\inserttitle
+ \skip_vertical:n {\c_zero_dim plus 1 fill}
+ }
+}
+
+\defbeamertemplate*{title~page~logo}{BFH}[1][\g__ptxcd_logo_box]{
+ \skip_vertical:n {.333\g__ptxcd_logo_height_dim }
+ \leavevmode\box_use:N #1
+ \ifx\insertpartnerlogo\@empty
+ \else
+ \hfill
+ \raisebox{\dim_eval:n {-\height+\box_ht:N #1}}[0pt][0pt]{\insertpartnerlogo}
+ \fi
+ \par\nointerlineskip
+ \skip_vertical:n {\c_zero_dim plus 1 fill}
+}
+
+\defbeamertemplate*{author~inst~sep}{BFH}{{\usebeamercolor{author~inst~sep}\usebeamerfont{author~inst~sep}\space|\space}}
+
+\defbeamertemplate*{author~in~title~page}{BFH}{
+ \begingroup
+ \usebeamerfont{author}
+ \ifx\insertauthor\@empty
+ \else
+ {\usebeamercolor[fg]{author}\usebeamerfont{author}\insertauthor}
+ \fi
+ \ifx\insertinstitute\@empty
+ \else
+ \ifx\insertauthor\@empty
+ \else
+ \usebeamertemplate{author~inst~sep}
+ \fi
+ {\usebeamercolor[fg]{institute}\usebeamerfont{institute}\insertinstitute}
+ \fi
+ \endgroup
+}
+
+\defbeamertemplate*{title~ page}{BFH}[1][]
+{
+ \vskip-\beamer@frametopskip
+ \nointerlineskip
+ \vbox to \paperheight{
+ \begin{beamercolorbox}[
+ ht=.65\paperheight,
+ wd=\dimexpr\paperwidth\ifbeamer@plainframe\else-\beamer@sidebarwidth\fi\relax,
+ leftskip=\beamer@leftmargin,
+ rightskip=\beamer@rightmargin,
+ vmode,
+ #1
+ ]{title~page}
+ \vbox_to_ht:nn {.65\paperheight} {
+ \bool_if:NT \g_ptxcd_enforce_titlelogo_bool {
+ \setbeamertemplate{title~page~logo}[BFH][\g__ptxcd_inverted_logo_box]
+ \usebeamertemplate{title~page~logo}
+ }
+ \skip_vertical:n {.833\g__ptxcd_logo_height_dim plus 1 fill}
+ \usebeamerfont{title}\inserttitle\par%
+ \ifx\insertsubtitle\@empty%
+ \else%
+ \vskip0.25em%
+ {\usebeamerfont{subtitle}\usebeamercolor[fg]{subtitle}\insertsubtitle\par}%
+ \fi%
+ \par
+ \vskip1em\par
+ {\usebeamercolor[fg]{date}\usebeamerfont{date}\insertdate\par}
+ \par
+ \vfill
+ \bool_if:NT \g_ptxcd_authorontitle_bool {
+ \usebeamertemplate{author~in~title~page}
+ \skip_vertical:n {.333\g__ptxcd_logo_height_dim}
+ }
+ \null
+ }
+ \end{beamercolorbox}
+ \par
+ \nointerlineskip
+ \begin{beamercolorbox}[
+ ht=\g__ptxcd_titlerule_dim,
+ wd=\dim_eval:n {\paperwidth\ifbeamer@plainframe\else-\beamer@sidebarwidth\fi}
+ ]{title~rule}
+ \end{beamercolorbox}
+ \ifbeamer@plainframe
+ \vspace*{\fill}
+ \usebeamertemplate{footline}\par
+ \fi
+ }
+}
+
+\defbeamertemplate{title~ page}{BFH-Orange}[1][]
+{
+ \vskip-\beamer@frametopskip
+ \nointerlineskip
+ \vbox to \paperheight{
+ \begin{beamercolorbox}[
+ ht=.8\paperheight,
+ dp=0pt,
+ wd=\dimexpr\paperwidth\ifbeamer@plainframe\else-\beamer@sidebarwidth\fi\relax,
+ leftskip=\beamer@leftmargin,
+ rightskip=\beamer@rightmargin,
+ vmode
+ ]{title~page.invert}
+ \vbox_to_ht:nn {.8\paperheight} {
+ \usebeamertemplate{title~page~logo}
+ {\usebeamercolor[fg]{title}\usebeamerfont{title}\inserttitle\par}%
+ \ifx\insertsubtitle\@empty%
+ \else%
+ \vskip0.25em%
+ {\usebeamercolor[fg]{subtitle}\usebeamerfont{subtitle}\insertsubtitle\par}%
+ \fi%
+ \par
+ \vskip1em\par
+ {\usebeamercolor[fg]{date}\usebeamerfont{date}\insertdate\par}
+ \vfill
+ \bool_if:NT \g_ptxcd_authorontitle_bool {
+ \usebeamertemplate{author~in~title~page}
+ \skip_vertical:n {.333\g__ptxcd_logo_height_dim}
+ }
+ \null
+ }
+ \end{beamercolorbox}
+ \nointerlineskip
+ \begin{beamercolorbox}[
+ ht=\g__ptxcd_titlerule_dim,
+ wd=\dim_eval:n {\paperwidth\ifbeamer@plainframe\else-\beamer@sidebarwidth\fi}
+ ]{title~rule.invert}
+ \end{beamercolorbox}
+ \ifbeamer@plainframe
+ \vspace*{\fill}
+ \usebeamertemplate{footline}\par
+ \fi
+ }
+}
+
+\defbeamertemplate{title~ page}{BFH-graphic}[1][]
+{
+ \vskip-\beamer@frametopskip
+ \nointerlineskip
+ \dim_set:Nn \l__ptxcd_titlegraphic_ht_dim {.65\paperheight}
+ \dim_set:Nn \l__ptxcd_titlegraphic_wd_dim {\paperwidth\ifbeamer@plainframe\else-\beamer@sidebarwidth\fi}
+ \vbox_to_ht:nn {\paperheight}{
+ \begin{beamercolorbox}[
+ wd=\dimexpr\paperwidth\ifbeamer@plainframe\else-\beamer@sidebarwidth\fi\relax,
+ ht=0pt,
+ dp=0pt,
+ vmode]{title~page}
+ \raisebox{-\height}{\inserttitlegraphic}
+ \end{beamercolorbox}
+ \nointerlineskip
+ \vbox_to_ht:nn {\l__ptxcd_titlegraphic_ht_dim}{
+ \usebeamertemplate{title~page~logo}
+ \vfill
+ }
+ \nointerlineskip
+ \begin{beamercolorbox}[
+ ht=\g__ptxcd_titlerule_dim,
+ wd=\dimexpr\paperwidth\ifbeamer@plainframe\else-\beamer@sidebarwidth\fi\relax
+ ]{title~rule}
+ \end{beamercolorbox}
+ \vskip.5\baselineskip
+ \begin{beamercolorbox}[wd=\dimexpr\paperwidth\ifbeamer@plainframe\else-\beamer@sidebarwidth\fi\relax,leftskip=\beamer@leftmargin,
+ rightskip=\beamer@rightmargin,#1]{title~page.bottom}
+ {\usebeamerfont{title}\inserttitle\par}%
+ \ifx\insertsubtitle\@empty%
+ \else%
+ \vskip0.25em%
+ {\usebeamerfont{subtitle}\insertsubtitle\par}%
+ \fi%
+ \par
+ \ifx\insertsubtitle\@empty%
+ \else%
+ {\usebeamerfont{date}\insertdate}
+ \par
+ \fi
+ \bool_if:NT \g_ptxcd_authorontitle_bool {
+ \usebeamertemplate{author~in~title~page}
+ }
+ \end{beamercolorbox}
+ \ifbeamer@plainframe
+ \vspace*{\fill}
+ \usebeamertemplate{footline}\par
+ \fi
+ }
+}
+
+\defbeamertemplate{title~ page}{BFH-fullgraphic}[1][]
+{
+ \vskip-\beamer@frametopskip
+ \nointerlineskip
+ \dim_set:Nn \l__ptxcd_titlegraphic_ht_dim {\paperheight}
+ \dim_set:Nn \l__ptxcd_titlegraphic_wd_dim {\paperwidth\ifbeamer@plainframe\else-\beamer@sidebarwidth\fi}
+ \vbox_to_ht:nn {\paperheight}{
+ \begin{beamercolorbox}[wd=\l__ptxcd_titlegraphic_wd_dim,ht=0pt,dp=0pt,vmode]{title~page}
+ \raisebox{-\height}{\inserttitlegraphic}
+ \end{beamercolorbox}
+ \nointerlineskip
+ \vbox_to_ht:nn {.5\paperheight}{
+ \usebeamertemplate{title~page~logo}
+ \vfill
+ }
+ \nointerlineskip
+ \begin{beamercolorbox}[
+ ht=\g__ptxcd_titlerule_dim,
+ wd=\dim_eval:n {.75\paperwidth\ifbeamer@plainframe\else-\beamer@sidebarwidth\fi},
+ ]{title~rule}
+ \end{beamercolorbox}\nointerlineskip
+ \begin{beamercolorbox}[
+ wd=\dim_eval:n {.75\paperwidth\ifbeamer@plainframe\else-\beamer@sidebarwidth\fi},
+ ht=.3\paperheight,
+ sep=1ex,
+ vmode,
+ #1
+ ]{title~page.boxed}
+ \vbox_to_ht:nn {.3\paperheight} {
+ \vskip1.25em
+ {\usebeamerfont{title}\inserttitle\par}%
+ \ifx\insertsubtitle\@empty%
+ \else%
+ \vskip0.25em%
+ {\usebeamerfont{subtitle}\insertsubtitle\par}%
+ \fi%
+ \par\vfill
+ \ifx\insertsubtitle\@empty%
+ \else%
+ {\usebeamerfont{date}\leavevmode\insertdate}
+ \par
+ \fi
+ \bool_if:NT \g_ptxcd_authorontitle_bool {
+ \usebeamertemplate{author~in~title~page}
+ }
+ }
+ \end{beamercolorbox}
+ \ifbeamer@plainframe
+ \vspace*{\fill}
+ \usebeamertemplate{footline}\par
+ \fi
+ }
+}
+
+\cs_new:Nn \__ptxcd_content_separator:n {
+ \vskip-\beamer@frametopskip\relax
+ \nointerlineskip
+ \vbox_to_ht:nn {\paperheight}{
+ \bool_if:NT \l__ptxcd_content_separator_ruled_bool {
+ \vspace*{.1\paperheight}
+ \begin{beamercolorbox}[ht=\g__ptxcd_titlerule_dim,wd=\dimexpr\paperwidth\ifbeamer@plainframe\else-\beamer@sidebarwidth\fi\relax]{title~rule}
+ \end{beamercolorbox}
+ \nointerlineskip
+ }
+ \begin{beamercolorbox}[ht=\bool_if:NTF \l__ptxcd_content_separator_ruled_bool {.5} {.65}\paperheight,wd=\dimexpr\paperwidth\ifbeamer@plainframe\else-\beamer@sidebarwidth\fi\relax,leftskip=\beamer@leftmargin,rightskip=\beamer@rightmargin,vmode]{title~page}
+ \vbox_to_ht:nn {\bool_if:NTF \l__ptxcd_content_separator_ruled_bool {.5} {.65}\paperheight} {
+ \skip_vertical:n {.333\g__ptxcd_logo_height_dim \bool_if:NT \l__ptxcd_content_separator_ruled_bool {plus 1 fill} }
+ \leavevmode
+ \usebeamerfont{#1~title}
+ \use:c {insert#1}
+ \vfill
+ \null
+ }
+ \end{beamercolorbox}
+ \nointerlineskip
+ \begin{beamercolorbox}[ht=\g__ptxcd_titlerule_dim,wd=\dimexpr\paperwidth\ifbeamer@plainframe\else-\beamer@sidebarwidth\fi\relax]{title~rule}
+ \end{beamercolorbox}
+ \bool_if:NT \l__ptxcd_content_separator_ruled_bool {\vfill}
+ \ifbeamer@plainframe
+ \vspace*{\fill}
+ \usebeamertemplate{footline}\par
+ \fi
+ }
+}
+
+
+\defbeamertemplate*{section~page}{BFH}{
+ \bool_set_false:N \l__ptxcd_content_separator_ruled_bool
+ \__ptxcd_content_separator:n {section}
+}
+
+\defbeamertemplate{section~page}{BFH-ruled}
+{
+ \bool_set_true:N \l__ptxcd_content_separator_ruled_bool
+ \__ptxcd_content_separator:n {section}
+}
+
+\defbeamertemplate*{lecture~page}{BFH}{
+ \bool_set_false:N \l__ptxcd_content_separator_ruled_bool
+ \__ptxcd_content_separator:n {lecture}
+}
+
+\defbeamertemplate{lecture~page}{BFH-ruled}
+{
+ \bool_set_true:N \l__ptxcd_content_separator_ruled_bool
+ \__ptxcd_content_separator:n {lecture}
+}
+
+\cs_new:Nn \__ptxcd_block_begin:n {
+ \par\vskip\medskipamount%
+ \begin{beamercolorbox}[
+ wd=\dimexpr\linewidth+2\l__ptxcd_beamer_extraindent_dim,
+ sep=1.5pt,
+ leftskip=\dimexpr\ifdim\l__ptxcd_beamer_extraindent_dim>\z@\l__ptxcd_beamer_extraindent_dim-\beamer@colbox@sep\else\z@\fi,
+ ]{block~frame#1}
+ \ifx\insertblocktitle\@empty
+ \else
+ \begin{beamercolorbox}[wd={\dimexpr\linewidth-3pt},colsep=.75ex]{block~title#1}
+ \usebeamerfont*{block~title#1}\insertblocktitle%
+ \end{beamercolorbox}%
+ \vskip1.5pt\par\nointerlineskip
+ \fi
+ \leavevmode
+ \usebeamerfont{block~body#1}%
+ \begin{beamercolorbox}[wd={\dimexpr\linewidth-3pt},colsep=.75ex]{block~body#1}%
+ }
+
+ \cs_new:Nn \__ptxcd_block_end: {\end{beamercolorbox}\end{beamercolorbox}\vskip\smallskipamount}
+
+\defbeamertemplate*{block~begin}{BFH}{\__ptxcd_block_begin:n {}}
+\defbeamertemplate*{block~end}{BFH}{\__ptxcd_block_end:}
+
+\defbeamertemplate*{block~alerted~begin}{BFH}{\__ptxcd_block_begin:n {~alerted}}
+\defbeamertemplate*{block~alerted~end}{BFH}{\__ptxcd_block_end:}
+
+\defbeamertemplate*{block~example~begin}{BFH}{\__ptxcd_block_begin:n {~example}}
+\defbeamertemplate*{block~example~end}{BFH}{\__ptxcd_block_end:}
+
+%Itemize Items
+\defbeamertemplate*{itemize~item}{BFH}{\usebeamerfont*{itemize~item}\raise\dimexpr.4\ht\strutbox-.4ex\hbox{\rule{.8ex}{.8ex}}}
+\defbeamertemplate*{itemize~subitem}{BFH}{\usebeamerfont*{itemize~item}\setlength{\fboxsep}{\z@}\setlength{\fboxrule}{1pt}\raise\dimexpr.4\ht\strutbox-.2ex-\fboxrule\hbox{\fbox{\color{bg}\rule{.4ex}{.4ex}}}}
+\defbeamertemplate*{itemize~subsubitem}{BFH}{\usebeamerfont*{itemize~subitem}\hbox{--}}
+
+\def\maketitle{
+ \ifbeamer@inframe\titlepage\else\frame[plain]{\titlepage}\fi
+}
+
+\def\sectionpage{
+ \ifbeamer@inframe\usebeamertemplate*{section~page}\else\frame[plain]{\usebeamertemplate*{section~page}}\fi
+}
+
+\def\lecturepage{
+ \ifbeamer@inframe\usebeamertemplate*{lecture~page}\else\frame[plain]{\usebeamertemplate*{lecture~page}}\fi
+}
+
+
+\mode<all>
+
+\endinput
+