diff options
Diffstat (limited to 'macros/latex/contrib/tuda-ci/tex/beamerouterthemeTUDa2008.sty')
-rw-r--r-- | macros/latex/contrib/tuda-ci/tex/beamerouterthemeTUDa2008.sty | 306 |
1 files changed, 306 insertions, 0 deletions
diff --git a/macros/latex/contrib/tuda-ci/tex/beamerouterthemeTUDa2008.sty b/macros/latex/contrib/tuda-ci/tex/beamerouterthemeTUDa2008.sty new file mode 100644 index 0000000000..177a9557d3 --- /dev/null +++ b/macros/latex/contrib/tuda-ci/tex/beamerouterthemeTUDa2008.sty @@ -0,0 +1,306 @@ +%% This is file `beamerouterthemeTUDa2008.sty' version 3.37 (2024-04-21), +%% it is part of +%% TUDa-CI -- Corporate Design for TU Darmstadt +%% ---------------------------------------------------------------------------- +%% +%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de> +%% +%% ============================================================================ +%% 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 <tuda-ci@peitex.de> +%% +%% The development respository can be found at +%% https://github.com/tudace/tuda_latex_templates +%% Please use the issue tracker for feedback! +%% +%% ============================================================================ +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesExplPackage{beamerouterthemeTUDa2008}{2024-04-21}{3.37}{Outer~beamer~theme~of~tuda-ci, compatibility for design of 2008} + +\PassOptionsToPackage{paper=slide}{tudarules} +\RequirePackage{tudarules} + +\dim_new:N \l__ptxcd_beamer_extraindent_dim +\dim_new:N {\g__ptxcd_beamer_sep_dim} +\dim_gset:Nn \g__ptxcd_beamer_sep_dim {.3\c_ptxcd_logoheight_dim} +\dim_new:N \g__ptxcd_beamer_logosep_dim +\dim_gset:Nn \g__ptxcd_beamer_logosep_dim{2mm} + + +\cs_if_exist:NF \g__ptxcd_colorframetitle_bool {\bool_new:N \g__ptxcd_colorframetitle_bool} + +\keys_define:nn {ptxcd/beamer/outer} { + logo .bool_gset:N = \g_ptxcd_headlinelogo_bool, + logo .default:n =true, + logo .initial:n =true, + logofile .tl_gset:N = \g_ptxcd_logofile_tl, + logofile .initial:n = tuda_logo, + colorframetitle .code:n = { + \use:c {bool_gset_#1:N} \g__ptxcd_colorframetitle_bool + \cs_if_exist_use:N \__ptxcd_setup_frametitle_color: + }, + colorframetitle .default:n = true, + centerframetitle .bool_gset:N = \g_ptxcd_centerframetitle_bool, + centerframetitle .initial:n = false, + centerframetitle .default:n = true, + framebgcolor .choice:, + framebgcolor / reset .code:n = + \__ptxcd_reset_framebgcolor: + , + framebgcolor / unknown .code:n = { + \__ptxcd_set_framebgcolor:n {#1} + }, + singleframebgcolor .code:n = { + \cs_gset_eq:Nc \__ptxcd_save_background_canvas: {beamer@thcbg@normal~text} + \keys_set:nn {ptxcd/beamer/outer} { + framebgcolor = #1 + } + }, + headsepline .bool_gset:N = \g_ptxcd_headsepline_bool, + headsepline .initial:n = true, + headsepline .default:n = true, +} + +\define@key{beamerframe}{bgcolor}{ + \keys_set:nn {ptxcd/beamer/outer} { + singleframebgcolor=#1 + } +} + +\cs_new:Nn \__ptxcd_reset_framebgcolor: { + \cs_gset_eq:cN {beamer@thcbg@normal~text} \__ptxcd_save_background_canvas: + \cs_undefine:N \__ptxcd_save_background_canvas: +} + +\cs_new:Nn \__ptxcd_set_framebgcolor:n { + \cs_if_exist:cTF {\string\color@#1} + {\setbeamercolor{normal~text}{bg=#1}} + {\setbeamercolor{normal~text}{bg=TUDa-#1}} +} + +\BeforeBeginEnvironment{frame}{ + \cs_if_exist:NT \__ptxcd_save_background_canvas: { + \__ptxcd_reset_framebgcolor: + } +} + +\ProcessKeyOptions[ptxcd/beamer/outer] + + +\mode<presentation> + + +\RequirePackage{graphicx} + +\bool_if:NT \g__ptxcd_colorframetitle_bool + {\dim_set:Nn \l__ptxcd_beamer_extraindent_dim {\g__ptxcd_beamer_logosep_dim}} + +\setbeamersize{ + text~margin~left=\dimexpr\g__ptxcd_beamer_sep_dim+\l__ptxcd_beamer_extraindent_dim \relax, + text~margin~right=\dimexpr\g__ptxcd_beamer_sep_dim+\l__ptxcd_beamer_extraindent_dim \relax, +} + +\cs_new:Nn \__ptxcd_beamer_linewidth: {\dim_eval:n {\paperwidth-\beamer@leftmargin-\beamer@rightmargin}} + +%Logo + +\box_new:N \g__ptxcd_logo_box +\hbox_gset:Nn \g__ptxcd_logo_box {% + \makebox[\__ptxcd_logowidth:][l]{\includegraphics[height=\c_ptxcd_logoheight_dim]{\g_ptxcd_logofile_tl}}% +} + +\ptxcd_makeheadrule[color=identbarcolor,width=\paperwidth-2\g__ptxcd_beamer_sep_dim]{ptxcd_beamer_headrule} +\ptxcd_makefootrule[width=\paperwidth-2\g__ptxcd_beamer_sep_dim]{ptxcd_beamer_rule} + +\newcommand\insertsmalllogo{\setbeamertemplate{logo}[small]\usebeamertemplate{logo}} + +\defbeamertemplate*{sidebar~left}{TUDa}{} +\defbeamertemplate*{sidebar~right}{TUDa}{} + +\bool_if_exist:NF \l_ptxcd_tmpa_bool {\bool_new:N \l_ptxcd_tmpa_bool} + +\defbeamertemplate*{footline}{TUDa} +{ + \begin{beamercolorbox}[leftskip=\g__ptxcd_beamer_sep_dim,rightskip=\g__ptxcd_beamer_sep_dim, + ht=\csname c_ptxcd_smallrule_dim\endcsname,dp=1mm]{footline} + \ptxcd_beamer_rule + \end{beamercolorbox} + \begin{beamercolorbox}[ + leftskip=\g__ptxcd_beamer_sep_dim, + rightskip=\g__ptxcd_beamer_sep_dim, ht=2.75mm,dp=2.75mm]{footline} + \usebeamerfont{author~ in~ head/foot}% + \bool_set_false:N \l_ptxcd_tmpa_bool + \clist_map_variable:nNn {date, department, institute, author} \l_tmpa_tl { + \tl_if_empty:cF {beamer@short\l_tmpa_tl} { + \bool_if:NTF \l_ptxcd_tmpa_bool {~|~} + {\bool_set_true:N \l_ptxcd_tmpa_bool} + \use:c {insertshort\l_tmpa_tl} + } + } + \bool_if:NT \l_ptxcd_tmpa_bool {~|~} + \insertframenumber + \hfill\raisebox{\dimexpr-.5\height+\dp\strutbox\relax}{\insertlogo} + \end{beamercolorbox} +} + + + +\RenewDocumentCommand{\logo}{sm}{ + \IfBooleanTF{#1}{ + \setbeamertemplate{logo}{\resizebox{!}{.06\beamer@paperheight}{\mbox{#2}}} + }{ + \setbeamertemplate{logo}{#2} + } +} + +\defbeamertemplate{headline}{TUDa.logo} {% + \begin{beamercolorbox}[ + leftskip=\g__ptxcd_beamer_sep_dim,rightskip=\g__ptxcd_beamer_sep_dim, + ht=.75\g__ptxcd_beamer_sep_dim,dp=\box_dp:N \ptxcd_beamer_headrule_box]{headline} + \ptxcd_beamer_headrule + \end{beamercolorbox} +} + + +\box_new:N \l__ptxcd_frametitle_box + +\defbeamertemplate{frametitle}{TUDa.logo}{% +\nointerlineskip% +\begin{beamercolorbox}[ + sep=\g__ptxcd_beamer_logosep_dim, + wd=\dim_eval:n {\__ptxcd_beamer_linewidth:+2\l__ptxcd_beamer_extraindent_dim}, + rightskip=-\g__ptxcd_beamer_logosep_dim, + leftskip=\dim_eval:n {-\g__ptxcd_beamer_logosep_dim+\l__ptxcd_beamer_extraindent_dim}, + ]{frametitle} + \hbox_set:Nn \l__ptxcd_frametitle_box { + \parbox[t] + {\dim_eval:n {\linewidth- \box_wd:N \g__ptxcd_logo_box-1em}}{% + \usebeamerfont{frametitle}\strut\insertframetitle + \ifx\insertframesubtitle\@empty + \else + \par + \usebeamercolor[fg]{framesubtitle} + \usebeamerfont{framesubtitle} + \insertframesubtitle + \fi + }} + \leavevmode + \bool_if:NTF \g_ptxcd_centerframetitle_bool + {\raisebox{\dimexpr-.5\height+.5\depth}} + {\use:n} + {\box_use:N \l__ptxcd_frametitle_box} + \hfill% + \bool_if:NTF \g_ptxcd_centerframetitle_bool + {\raisebox{\dimexpr-.5\height+.5\depth}} + {\raisebox{\dimexpr-\height+\ht\strutbox}} + {\box_use:N \g__ptxcd_logo_box} +\end{beamercolorbox}% +\bool_if:NT \g_ptxcd_headsepline_bool { + \nointerlineskip + \begin{beamercolorbox}[ + wd=\dim_eval:n {\textwidth+2\l__ptxcd_beamer_extraindent_dim}, + ht=\c_ptxcd_smallrule_dim, + dp=0pt + ]{smallrule} + \end{beamercolorbox} +} +} + +\defbeamertemplate*{headline}{TUDa.nologo} +{% + \vspace{.75\g__ptxcd_beamer_sep_dim} + \begin{beamercolorbox}[ + leftskip=\g__ptxcd_beamer_sep_dim,rightskip=\g__ptxcd_beamer_sep_dim]{headline} + \ptxcd_beamer_headrule + \end{beamercolorbox} + } + +\defbeamertemplate*{headline}{TUDa.simple} +{ + \ifbeamercolorempty[bg]{background~canvas}{ + \vspace{\dimexpr.5\c_ptxcd_logoheight_dim-\c_ptxcd_rulesep_dim} + \skip_horizontal:n {\beamer@leftmargin} + \color{identbarcolor} + \vrule width\dimexpr\textwidth-\beamer@leftmargin-\beamer@rightmargin height\c_ptxcd_rulesep_dim + }{ + \vspace{\dimexpr.5\c_ptxcd_logoheight_dim} + } +} + +\defbeamertemplate*{frametitle}{TUDa.nologo}{% + \nointerlineskip% +\begin{beamercolorbox}[ + sep=\g__ptxcd_beamer_logosep_dim, + wd=\dim_eval:n {\__ptxcd_beamer_linewidth:+2\l__ptxcd_beamer_extraindent_dim}, + leftskip=\dim_eval:n {-\g__ptxcd_beamer_logosep_dim+\l__ptxcd_beamer_extraindent_dim}, + ]{frametitle} + \hbox_set:Nn \l__ptxcd_frametitle_box { + \parbox[t] + {\dimexpr\linewidth- \box_wd:N \g__ptxcd_logo_box-1em\relax\relax}{% + \usebeamerfont{frametitle}\strut\insertframetitle + \ifx\insertframesubtitle\@empty + \else + \par + \usebeamercolor[fg]{framesubtitle} + \usebeamerfont{framesubtitle} + \insertframesubtitle + \fi +}} +\leavevmode +\bool_if:NTF \g_ptxcd_centerframetitle_bool +{\raisebox{\dimexpr-.5\height+.5\depth}} +{\use:n} +{\box_use:N \l__ptxcd_frametitle_box} +% Rule for voffset similar to logo + \rule[\dim_eval:n { + \bool_if:NTF \g_ptxcd_centerframetitle_bool + {-.5\box_ht:N \g__ptxcd_logo_box+.5\box_dp:N \g__ptxcd_logo_box} + {-\box_ht:N \g__ptxcd_logo_box+\ht\strutbox} + }]{0pt}{\dim_eval:n { + \box_ht:N \g__ptxcd_logo_box+\box_dp:N \g__ptxcd_logo_box + }} +\end{beamercolorbox} +\bool_if:NT \g_ptxcd_headsepline_bool { + \nointerlineskip + \begin{beamercolorbox}[ + wd=\dimexpr\linewidth+2\l__ptxcd_beamer_extraindent_dim \relax, + ht=\c_ptxcd_smallrule_dim, + dp=0pt + ]{smallrule} + \end{beamercolorbox} +} +} + +\cs_new:Nn \ptxcd_setup_frame: { + \bool_if:NTF \g_ptxcd_headlinelogo_bool { + \setbeamertemplate{frametitle}[TUDa.logo] + \setbeamertemplate{headline}[TUDa.logo] + }{ + \setbeamertemplate{frametitle}[TUDa.nologo] + \setbeamertemplate{headline}[TUDa.nologo] + } +} +\ptxcd_setup_frame: + +\newcommand*{\setupTUDaFrame}[1]{ + \keys_set:nn {ptxcd/beamer/outer} {#1} + \ptxcd_setup_frame: +} + + + +\mode +<all> + +\endinput |