summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/tuda-ci/tex/beamerouterthemeTUDa.sty
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-09-09 03:03:16 +0000
committerNorbert Preining <norbert@preining.info>2020-09-09 03:03:16 +0000
commit4b315627efc5a6beb1e6c6ec7a98779f215c75eb (patch)
treecf65539a3758192b9bfbaea63d1962f28ec32a3e /macros/latex/contrib/tuda-ci/tex/beamerouterthemeTUDa.sty
parentbc2d0660f4f460b55009ab4e525f2a0e4cde6187 (diff)
CTAN sync 202009090303
Diffstat (limited to 'macros/latex/contrib/tuda-ci/tex/beamerouterthemeTUDa.sty')
-rw-r--r--macros/latex/contrib/tuda-ci/tex/beamerouterthemeTUDa.sty278
1 files changed, 164 insertions, 114 deletions
diff --git a/macros/latex/contrib/tuda-ci/tex/beamerouterthemeTUDa.sty b/macros/latex/contrib/tuda-ci/tex/beamerouterthemeTUDa.sty
index 52389e9d59..88558b2a85 100644
--- a/macros/latex/contrib/tuda-ci/tex/beamerouterthemeTUDa.sty
+++ b/macros/latex/contrib/tuda-ci/tex/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