summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/tuda-ci/tex/beamerouterthemeTUDa.sty
blob: 691fb25cb4b267fa36f7eb4a5b03a674b52a619a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{beamerouterthemeTUDa}
 [\filedate\space\fileversion]

\RequirePackage{l3keys2e}

\ExplSyntaxOn
\keys_define:nn {TUDa/beamer/outer} {
	logo .bool_gset:N = \g_TUDa_headlinelogo_bool,
	logo .default:n =true,
	logo .initial:n =true,
	logofile .tl_gset:N = \g_TUDa_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,
}


\ProcessKeysOptions{TUDa/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}}

\setbeamersize{
  text~margin~left= \dimexpr\TUDa@beamer@sep+\TUDa@beamer@extraindent\relax,
  text~margin~right=\dimexpr\TUDa@beamer@sep+\TUDa@beamer@extraindent\relax,
}

\newlength{\TUDa@beamer@linewidth}
\setlength{\TUDa@beamer@linewidth}{\dimexpr\paperwidth-2\TUDa@beamer@sep-2\TUDa@beamer@extraindent\relax}

%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}}%
}

\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}


\newcommand\insertsmalllogo{\setbeamertemplate{logo}[small]\usebeamertemplate{logo}}


\defbeamertemplate*{sidebar left}{TUD theme}{}
\defbeamertemplate*{sidebar right}{TUD theme}{}


\ExplSyntaxOn

\bool_if_exist:NF \l_TUDa_tmpa_bool {\bool_new:N \l_TUDa_tmpa_bool}

\defbeamertemplate*{footline}{TUDa theme}
{
	\begin{beamercolorbox}[leftskip=\TUDa@beamer@sep,rightskip=\TUDa@beamer@sep,
		ht=\csname c_TUDa_smallrule_dim\endcsname,dp=1mm]{footline}
	\TUDa@beamer@rule
	\end{beamercolorbox}
  	\begin{beamercolorbox}[
  	leftskip=\TUDa@beamer@sep,
  	rightskip=\TUDa@beamer@sep, ht=2.75mm,dp=2.75mm]{footline}
	\usebeamerfont{author~ in~ head/foot}%
	\bool_set_false:N \l_TUDa_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}
			\use:c {insertshort\l_tmpa_tl}
		}
	}
	\bool_if:NT \l_TUDa_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}}}%TODO change with aspectratio
	}{
	\setbeamertemplate{logo}{#2}
	}
}

\defbeamertemplate{headline}{TUDa theme.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
	\end{beamercolorbox}
}


\box_new:N \l_TUDa_frametitle_box

\defbeamertemplate{frametitle}{TUDa~theme.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,
	]{frametitle}
	\hbox_set:Nn \l_TUDa_frametitle_box {
	\parbox[t]
		{\dimexpr\linewidth- \wd\TUDa@logobox-1em\relax\relax}{%
		\usebeamerfont{frametitle}\strut\insertframetitle
		\ifx\insertframesubtitle\@empty
		\else
		\par
		\usebeamercolor[fg]{framesubtitle}
		\usebeamerfont{framesubtitle}
		\insertframesubtitle
		\fi
	}}
	\leavevmode
	\bool_if:NTF \g_TUDa_centerframetitle_bool
		{\raisebox{\dimexpr-.5\height+.5\depth}}
		{\use:n}
			{\box_use:N \l_TUDa_frametitle_box}
	\hfill%
	\bool_if:NTF \g_TUDa_centerframetitle_bool
		{\raisebox{\dimexpr-.5\height+.5\depth}}
		{\raisebox{\dimexpr-\height+\ht\strutbox}}
		{\usebox\TUDa@logobox}
\end{beamercolorbox}
\nointerlineskip
\leavevmode\color{black}\hspace*{-\TUDa@beamer@extraindent}\TUDa@beamer@rule
}

\defbeamertemplate*{headline}{TUDa~theme.nologo}
{%
	\vspace{.75\TUDa@beamer@sep}
	\begin{beamercolorbox}[
		leftskip=\TUDa@beamer@sep,rightskip=\TUDa@beamer@sep]{headline}
		\TUDa@beamer@headrule
	\end{beamercolorbox}
      }

\defbeamertemplate*{frametitle}{TUDa~theme.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,
	]{frametitle}
	\hbox_set:Nn \l_TUDa_frametitle_box {
	\parbox[t]
	{\dimexpr\linewidth- \wd\TUDa@logobox-1em\relax\relax}{%
		\usebeamerfont{frametitle}\strut\insertframetitle
		\ifx\insertframesubtitle\@empty
		\else
		\par
		\usebeamercolor[fg]{framesubtitle}
		\usebeamerfont{framesubtitle}
		\insertframesubtitle
		\fi
}}
\leavevmode
\bool_if:NTF \g_TUDa_centerframetitle_bool
{\raisebox{\dimexpr-.5\height+.5\depth}}
{\use:n}
{\box_use:N \l_TUDa_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}
\end{beamercolorbox}
	\nointerlineskip
\TUDa@beamer@rule
}

\cs_new:Nn \TUDa_setup_frame: {
	\bool_if:NTF \g_TUDa_headlinelogo_bool {
		\setbeamertemplate{frametitle}[TUDa~ theme.logo]
		\setbeamertemplate{headline}[TUDa~ theme.logo]
	}{
		\setbeamertemplate{frametitle}[TUDa~ theme.nologo]
		\setbeamertemplate{headline}[TUDa~ theme.nologo]
	}
}
\TUDa_setup_frame:

\newcommand*{\setupTUDaFrame}[1]{
	\keys_set:nn {TUDa/beamer/outer} {#1}
	\TUDa_setup_frame:
}

\ExplSyntaxOff


\mode
<all>

\endinput