diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/tuda-ci/beamerouterthemeTUDa.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/tuda-ci/beamerouterthemeTUDa.sty | 278 |
1 files changed, 164 insertions, 114 deletions
diff --git a/Master/texmf-dist/tex/latex/tuda-ci/beamerouterthemeTUDa.sty b/Master/texmf-dist/tex/latex/tuda-ci/beamerouterthemeTUDa.sty index 52389e9d596..88558b2a85a 100644 --- a/Master/texmf-dist/tex/latex/tuda-ci/beamerouterthemeTUDa.sty +++ b/Master/texmf-dist/tex/latex/tuda-ci/beamerouterthemeTUDa.sty @@ -1,4 +1,4 @@ -%% This is file `beamerouterthemeTUDa.sty' version 2.11 (2020/06/12), +%% This is file `beamerouterthemeTUDa.sty' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -26,149 +26,171 @@ %% %% ============================================================================ %% -\def\fileversion{2.11} -\def\filedate{2020/06/12} +\def\fileversion{3.00} +\def\filedate{2020/09/08} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{beamerouterthemeTUDa} - [\filedate\space\fileversion] +\ProvidesExplPackage{beamerouterthemeTUDa}{\filedate}{\fileversion}{Outer~beamer~theme~of~tuda-ci} \RequirePackage{l3keys2e} +\RequirePackage[paper=slide]{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} -\ExplSyntaxOn -\keys_define:nn {TUDa/beamer/outer} { - logo .bool_gset:N = \g_TUDa_headlinelogo_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_TUDa_logofile_tl, + logofile .tl_gset:N = \g_ptxcd_logofile_tl, logofile .initial:n = tuda_logo, - colorframetitle .bool_gset:N = \g_TUDa_colorframetitle_bool, - colorframetitle .initial:n = false, - colorframetitle .default:n = true, - centerframetitle .bool_gset:N = \g_TUDa_centerframetitle_bool, - centerframetitle .initial:n = false, - centerframetitle .default:n = true, + 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: + } +} -\ProcessKeysOptions{TUDa/beamer/outer} +\ProcessKeysOptions{ptxcd/beamer/outer} \mode<presentation> \RequirePackage{graphicx} -\RequirePackage[paper=slide]{tudarules} -\newlength{\TUDa@beamer@sep} -\setlength{\TUDa@beamer@sep}{1em} -\newlength{\TUDa@beamer@logosep} -\setlength{\TUDa@beamer@logosep}{2mm} -\newlength{\TUDa@beamer@extraindent} -\ExplSyntaxOn -\bool_if:NT \g_TUDa_colorframetitle_bool {\setlength{\TUDa@beamer@extraindent}{\TUDa@beamer@logosep}} +\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\TUDa@beamer@sep+\TUDa@beamer@extraindent\relax, - text~margin~right=\dimexpr\TUDa@beamer@sep+\TUDa@beamer@extraindent\relax, + 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, } -\newlength{\TUDa@beamer@linewidth} -\setlength{\TUDa@beamer@linewidth}{\dimexpr\paperwidth-2\TUDa@beamer@sep-2\TUDa@beamer@extraindent\relax} +\cs_new:Nn \__ptxcd_beamer_linewidth: {\dim_eval:n {\paperwidth-\beamer@leftmargin-\beamer@rightmargin}} %Logo -\newsavebox{\TUDa@logobox} -\sbox{\TUDa@logobox}{% - \makebox[2.2\c_TUDa_logoheight_dim][l]{\includegraphics[height=\c_TUDa_logoheight_dim]{\g_TUDa_logofile_tl}}% +\box_new:N \g__ptxcd_logo_box +\hbox_gset:Nn \g__ptxcd_logo_box {% + \makebox[2.2\c_ptxcd_logoheight_dim][l]{\includegraphics[height=\c_ptxcd_logoheight_dim]{\g_ptxcd_logofile_tl}}% } -\TUDa@makeheadrule[color=identbarcolor,width=\paperwidth-2\TUDa@beamer@sep]{TUDa@beamer@headrule} -\TUDa@makefootrule[width=\paperwidth-2\TUDa@beamer@sep]{TUDa@beamer@rule} - -\newlength{\TUDa@beamer@headheight} -\setlength{\TUDa@beamer@headheight}{ -\dim_eval:n { - \ht\TUDa@logobox+ - \dp\TUDa@logobox + - 2\TUDa@beamer@logosep+ - \box_ht:N \TUDa@beamer@rule_box + - \box_dp:N \TUDa@beamer@rule_box -}} - - -\ExplSyntaxOff - - -\def\tudrule{\TUDa@beamer@rule} - +\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}{TUD theme}{} -\defbeamertemplate*{sidebar right}{TUD theme}{} +\defbeamertemplate*{sidebar~left}{TUDa}{} +\defbeamertemplate*{sidebar~right}{TUDa}{} -\ExplSyntaxOn +\bool_if_exist:NF \l_ptxcd_tmpa_bool {\bool_new:N \l_ptxcd_tmpa_bool} -\bool_if_exist:NF \l_TUDa_tmpa_bool {\bool_new:N \l_TUDa_tmpa_bool} - -\defbeamertemplate*{footline}{TUDa theme} +\defbeamertemplate*{footline}{TUDa} { - \begin{beamercolorbox}[leftskip=\TUDa@beamer@sep,rightskip=\TUDa@beamer@sep, - ht=\csname c_TUDa_smallrule_dim\endcsname,dp=1mm]{footline} - \TUDa@beamer@rule + \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=\TUDa@beamer@sep, - rightskip=\TUDa@beamer@sep, ht=2.75mm,dp=2.75mm]{footline} + \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_TUDa_tmpa_bool + \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_TUDa_tmpa_bool {~|~} - {\bool_set_true:N \l_TUDa_tmpa_bool} + \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_TUDa_tmpa_bool {~|~} + \bool_if:NT \l_ptxcd_tmpa_bool {~|~} \insertframenumber \hfill\raisebox{\dimexpr-.5\height+\dp\strutbox\relax}{\insertlogo} - \end{beamercolorbox} + \end{beamercolorbox} } \RenewDocumentCommand{\logo}{sm}{ \IfBooleanTF{#1}{ - \setbeamertemplate{logo}{\resizebox{!}{.06\beamer@paperheight}{\mbox{#2}}}%TODO change with aspectratio + \setbeamertemplate{logo}{\resizebox{!}{.06\beamer@paperheight}{\mbox{#2}}} }{ \setbeamertemplate{logo}{#2} } } -\defbeamertemplate{headline}{TUDa theme.logo} {% +\defbeamertemplate{headline}{TUDa.logo} {% \begin{beamercolorbox}[ - leftskip=\TUDa@beamer@sep,rightskip=\TUDa@beamer@sep, - ht=.75\TUDa@beamer@sep,dp=\box_dp:N \TUDa@beamer@headrule_box]{headline} - \TUDa@beamer@headrule + 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_TUDa_frametitle_box +\box_new:N \l__ptxcd_frametitle_box -\defbeamertemplate{frametitle}{TUDa~theme.logo}{% +\defbeamertemplate{frametitle}{TUDa.logo}{% \nointerlineskip% \begin{beamercolorbox}[ - sep=\TUDa@beamer@logosep, - wd=\dimexpr\TUDa@beamer@linewidth+2\TUDa@beamer@extraindent\relax, - rightskip=-\TUDa@beamer@logosep, - leftskip=\dimexpr-\TUDa@beamer@logosep+\TUDa@beamer@extraindent\relax, + 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_TUDa_frametitle_box { + \hbox_set:Nn \l__ptxcd_frametitle_box { \parbox[t] - {\dimexpr\linewidth- \wd\TUDa@logobox-1em\relax\relax}{% + {\dim_eval:n {\linewidth- \box_wd:N \g__ptxcd_logo_box-1em}}{% \usebeamerfont{frametitle}\strut\insertframetitle \ifx\insertframesubtitle\@empty \else @@ -179,39 +201,58 @@ \fi }} \leavevmode - \bool_if:NTF \g_TUDa_centerframetitle_bool + \bool_if:NTF \g_ptxcd_centerframetitle_bool {\raisebox{\dimexpr-.5\height+.5\depth}} {\use:n} - {\box_use:N \l_TUDa_frametitle_box} + {\box_use:N \l__ptxcd_frametitle_box} \hfill% - \bool_if:NTF \g_TUDa_centerframetitle_bool + \bool_if:NTF \g_ptxcd_centerframetitle_bool {\raisebox{\dimexpr-.5\height+.5\depth}} {\raisebox{\dimexpr-\height+\ht\strutbox}} - {\usebox\TUDa@logobox} + {\box_use:N \g__ptxcd_logo_box} \end{beamercolorbox}% -\nointerlineskip -\leavevmode\color{black}\hspace*{-\TUDa@beamer@extraindent}\rlap{\TUDa@beamer@rule}% +\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~theme.nologo} +\defbeamertemplate*{headline}{TUDa.nologo} {% - \vspace{.75\TUDa@beamer@sep} + \vspace{.75\g__ptxcd_beamer_sep_dim} \begin{beamercolorbox}[ - leftskip=\TUDa@beamer@sep,rightskip=\TUDa@beamer@sep]{headline} - \TUDa@beamer@headrule + 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~theme.nologo}{% +\defbeamertemplate*{frametitle}{TUDa.nologo}{% \nointerlineskip% \begin{beamercolorbox}[ - sep=\TUDa@beamer@logosep, - wd=\dimexpr\TUDa@beamer@linewidth+2\TUDa@beamer@extraindent\relax, - leftskip=\dimexpr-\TUDa@beamer@logosep+\TUDa@beamer@extraindent\relax, + 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_TUDa_frametitle_box { + \hbox_set:Nn \l__ptxcd_frametitle_box { \parbox[t] - {\dimexpr\linewidth- \wd\TUDa@logobox-1em\relax\relax}{% + {\dimexpr\linewidth- \box_wd:N \g__ptxcd_logo_box-1em\relax\relax}{% \usebeamerfont{frametitle}\strut\insertframetitle \ifx\insertframesubtitle\@empty \else @@ -222,37 +263,46 @@ \fi }} \leavevmode -\bool_if:NTF \g_TUDa_centerframetitle_bool +\bool_if:NTF \g_ptxcd_centerframetitle_bool {\raisebox{\dimexpr-.5\height+.5\depth}} {\use:n} -{\box_use:N \l_TUDa_frametitle_box} +{\box_use:N \l__ptxcd_frametitle_box} % Rule for voffset similar to logo \rule[\dim_eval:n { - \bool_if:NTF \g_TUDa_centerframetitle_bool - {-.5\ht\TUDa@logobox+.5\dp\TUDa@logobox} {-\ht\TUDa@logobox+\ht\strutbox} - }]{0pt}{\dimexpr\ht\TUDa@logobox+\dp\TUDa@logobox\relax} + \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 -\TUDa@beamer@rule + \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 \TUDa_setup_frame: { - \bool_if:NTF \g_TUDa_headlinelogo_bool { - \setbeamertemplate{frametitle}[TUDa~ theme.logo] - \setbeamertemplate{headline}[TUDa~ theme.logo] +\cs_new:Nn \ptxcd_setup_frame: { + \bool_if:NTF \g_ptxcd_headlinelogo_bool { + \setbeamertemplate{frametitle}[TUDa.logo] + \setbeamertemplate{headline}[TUDa.logo] }{ - \setbeamertemplate{frametitle}[TUDa~ theme.nologo] - \setbeamertemplate{headline}[TUDa~ theme.nologo] + \setbeamertemplate{frametitle}[TUDa.nologo] + \setbeamertemplate{headline}[TUDa.nologo] } } -\TUDa_setup_frame: +\ptxcd_setup_frame: \newcommand*{\setupTUDaFrame}[1]{ - \keys_set:nn {TUDa/beamer/outer} {#1} - \TUDa_setup_frame: + \keys_set:nn {ptxcd/beamer/outer} {#1} + \ptxcd_setup_frame: } -\ExplSyntaxOff \mode |