-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbeamerinnerthemecambridge.sty
355 lines (278 loc) · 12.5 KB
/
beamerinnerthemecambridge.sty
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
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
% This is based on the PowerPoint template sizes.
%
\newlength{\cam@inner@pitch} \setlength{\cam@inner@pitch}{0.0333333\paperheight}
\newlength{\cam@inner@smallpitch} \setlength{\cam@inner@smallpitch}{0.022222\paperheight}
% The University logo
\pgfdeclareimage[height=2\cam@inner@pitch]{beamertitlelogocambridge}{uc-cmyk}
\mode<presentation>
\setbeamercolor{special page canvas}{parent=title}
\setbeamercolor{special page title}{use={special page canvas,palette secondry},parent=special page canvas,bg=special page canvas.bg!80!palette secondry.bg}
\setbeamercolor{special page separator upper}{use=special page canvas,parent=special page canvas,bg=special page canvas.bg!33!white}
\setbeamercolor{special page separator lower}{use=special page canvas,parent=special page canvas,bg=special page canvas.bg!33!black}
\setbeamercolor{special page frame number}{parent=part title,fg=white!75}
\setbeamerfont{special page frame number}{size=\tiny}
\setbeamerfont{date}{size=\tiny,series=\bfseries}
\setbeamerfont{part title}{size=\LARGE\bf}
\setbeamerfont{part name}{size=\LARGE}
\setbeamerfont{abstract title}{size=\LARGE}
\setbeamercolor{title page canvas}{parent=normal text}
\setbeamercolor{title page author}{parent=author}
\setbeamercolor{title page date}{parent=date}
\setbeamercolor{part page canvas}{parent=special page canvas}
\setbeamercolor{part page title}{parent=special page title}
\setbeamercolor{part page separator upper}{parent=special page separator upper}
\setbeamercolor{part page separator lower}{parent=special page separator lower}
\setbeamercolor{part page frame number}{parent=special page frame number}
\setbeamerfont{part page frame number}{parent=special page frame number}
\setbeamercolor{abstract page canvas}{parent=special page canvas}
\setbeamercolor{abstract page title}{parent=special page title}
\setbeamercolor{abstract page separator upper}{parent=special page separator upper}
\setbeamercolor{abstract page separator lower}{parent=special page separator lower}
\setbeamercolor{abstract page frame number}{parent=special page frame number}
\setbeamerfont{abstract page frame number}{parent=special page frame number}
\newlength{\oversized@paperwidth}
\newlength{\oversized@paperheight}
% Title page
\newcommand{\start@fullpage}[1]{
\setlength{\oversized@paperwidth}{\paperwidth}\addtolength{\oversized@paperwidth}{0.25em}
\setlength{\oversized@paperheight}{\paperheight}\addtolength{\oversized@paperheight}{0.25em}
%
% HACK: Beamer always inserts a 0.125em space after the frame title, even if it is
% empty. We hack around this by skipping upwards and using a slightly oversized
% box to draw the background.
\vskip-0.125em%
%
\color@bar[ht=\oversized@paperheight]{#1}
\vskip-\oversized@paperheight
}
\newcommand{\color@bar}[2][]{
\begin{beamercolorbox}[wd=\oversized@paperwidth,ht=\oversized@paperheight,#1]{#2}
\null
\end{beamercolorbox}\nointerlineskip
}
\defbeamertemplate*{title page}{cambridge theme}[1][]
{%
\start@fullpage{title page canvas}
%
% Insert titlegraphic
\vskip2\cam@inner@pitch
{\usebeamercolor[fg]{titlegraphic}\inserttitlegraphic\par}
\vskip2\cam@inner@pitch
\vskip0pt plus 1filll
%
% The title itself
\begin{beamercolorbox}[wd=\oversized@paperwidth,ht=15.0\cam@inner@pitch,sep=\cam@inner@pitch,leftskip=\cam@inner@pitch,rightskip=\cam@inner@pitch,#1]{title}
\usebeamerfont{title}\inserttitle\par%
\ifx\insertsubtitle\@empty%
\else%
\vskip\cam@inner@pitch%
{\usebeamerfont{subtitle}\usebeamercolor[fg]{subtitle}\insertsubtitle\par}%
\fi%
\vskip\cam@inner@pitch%
{\usebeamerfont{institute}\insertauthor\par}%
\end{beamercolorbox}\nointerlineskip%
\begin{beamercolorbox}[wd=\oversized@paperwidth,sep=0.5\cam@inner@pitch,ht=3.0\cam@inner@pitch,leftskip=1.5\cam@inner@pitch,rightskip=1.5\cam@inner@pitch,#1]{title page author}
\ifx\insertinstitute\@empty
\else
\vskip\cam@inner@pitch
{\usebeamerfont{institute}\insertinstitute\par}
\fi
\end{beamercolorbox}\nointerlineskip%
\begin{beamercolorbox}[wd=\oversized@paperwidth,sep=0.5\cam@inner@pitch,ht=1.5\cam@inner@pitch,leftskip=1.5\cam@inner@pitch,rightskip=1.5\cam@inner@pitch,#1]{title page date}
\usebeamerfont{date}\insertdate
\end{beamercolorbox}
%\vskip-\cam@inner@pitch % HACK: Not sure why we need this?
}
% of page
\defbeamertemplate*{part page}{cambridge theme}[1][]
{
\start@fullpage{part page canvas}
\vskip3\cam@inner@pitch
{\hfill\usebeamerfont{part page frame number}\usebeamercolor[fg]{part page frame number}\insertframenumber\par}
\vskip0pt plus 1filll
\color@bar[ht=\cam@inner@smallpitch]{part page separator upper}
\color@bar[ht=\cam@inner@smallpitch]{part page separator lower}
\begin{beamercolorbox}[wd=\oversized@paperwidth,sep=1.5\cam@inner@pitch,leftskip=1.5\cam@inner@pitch,rightskip=1.5\cam@inner@pitch,#1]{part page title}
\hfill\hbox{%
{\usebeamerfont{part name}\partname~\insertromanpartnumber: }
{\usebeamerfont{part title}\insertpart\par}
}
\end{beamercolorbox}\nointerlineskip%
\vskip3\cam@inner@pitch
}
% (sub-)section in toc: default
\defbeamertemplate*{section in toc}{cambridge theme}
{\inserttocsection\par}
\defbeamertemplate*{subsection in toc}{cambridge theme}
{\leavevmode\leftskip=1.5em\inserttocsubsection\par}
\defbeamertemplate*{subsubsection in toc}{cambridge theme}
{\leavevmode\normalsize\usebeamerfont{subsection in toc}\leftskip=3em%
\usebeamerfont{subsubsection in toc}\inserttocsubsubsection\par}
% (sub-)section in toc shaded, default
\defbeamertemplate*{section in toc shaded}{cambridge theme}[1][20]
{\begin{colormixin}{#1!parent.bg}\usebeamertemplate{section in toc}\end{colormixin}\unskip}
\defbeamertemplate*{subsection in toc shaded}{cambridge theme}[1][20]
{\begin{colormixin}{#1!parent.bg}\usebeamertemplate{subsection in toc}\end{colormixin}\unskip}
\defbeamertemplate*{subsubsection in toc shaded}{cambridge theme}[1][20]
{\begin{colormixin}{#1!parent.bg}\usebeamertemplate{subsubsection in toc}\end{colormixin}\unskip}
% Itemize items, default
\defbeamertemplate*{itemize item}{cambridge theme}{\scriptsize\raise1.25pt\hbox{\donotcoloroutermaths$\blacktriangleright$}}
\defbeamertemplate*{itemize subitem}{cambridge theme}{\tiny\raise1.5pt\hbox{\donotcoloroutermaths$\blacktriangleright$}}
\defbeamertemplate*{itemize subsubitem}{cambridge theme}{\tiny\raise1.5pt\hbox{\donotcoloroutermaths$\blacktriangleright$}}
% Enumerate items, default
\defbeamertemplate*{enumerate item}{cambridge theme}{\insertenumlabel.}
\defbeamertemplate*{enumerate subitem}{cambridge theme}{\insertenumlabel.\insertsubenumlabel}
\defbeamertemplate*{enumerate subsubitem}{cambridge theme}{\insertenumlabel.\insertsubenumlabel.\insertsubsubenumlabel}
\defbeamertemplate*{enumerate mini template}{cambridge theme}{\insertenumlabel}
% Description item width
\defbeamertemplate*{description item}{cambridge theme}{\insertdescriptionitem}
% Itemize/Enumerate body
\defbeamertemplate*{itemize/enumerate body begin}{cambridge theme}{}
\defbeamertemplate*{itemize/enumerate body end}{cambridge theme}{}
\defbeamertemplate*{itemize/enumerate subbody begin}{cambridge theme}{}
\defbeamertemplate*{itemize/enumerate subbody end}{cambridge theme}{}
\defbeamertemplate*{itemize/enumerate subsubbody begin}{cambridge theme}{}
\defbeamertemplate*{itemize/enumerate subsubbody end}{cambridge theme}{}
% Alerted text
\defbeamertemplate*{alerted text begin}{cambridge theme}{\setbeamercolor{local structure}{parent=alerted text}}
% Structured text
% empyt defaults
% Bibliography items
\defbeamertemplate*{bibliography item}{cambridge theme}
{\lower3.5pt\hbox{\hskip2pt\pgfuseimage{beamericonarticle}\hskip1pt}}
\defbeamertemplate*{bibliography entry article}{cambridge theme}{}
\defbeamertemplate*{bibliography entry title}{cambridge theme}{\par}
\defbeamertemplate*{bibliography entry location}{cambridge theme}{\par}
\defbeamertemplate*{bibliography entry note}{cambridge theme}{\par}
% Abstract
\defbeamertemplate*{abstract begin}{cambridge theme}{%
\start@fullpage{abstract page canvas}
\vskip4\cam@inner@pitch
\begin{beamercolorbox}[wd=\oversized@paperwidth,sep=0.5\cam@inner@pitch,leftskip=1.5\cam@inner@pitch]{abstract page title}
\vskip2.5\cam@inner@pitch
{\usebeamerfont*{abstract title}\abstractname\par}
\end{beamercolorbox}\nointerlineskip%
\color@bar[ht=\cam@inner@pitch]{abstract page separator upper}
\color@bar[ht=\cam@inner@pitch]{abstract page separator lower}
\vskip2\cam@inner@pitch
\vskip0pt plus 1filll
\begin{beamercolorbox}[wd=\oversized@paperwidth,sep=2\cam@inner@pitch]{abstract}%
}
\defbeamertemplate*{abstract title}{cambridge theme}%
{}
\defbeamertemplate*{abstract end}{cambridge theme}{%
\end{beamercolorbox}\nointerlineskip%
%\vskip2\cam@inner@pitch
\vskip0pt plus 1filll
\vskip0pt plus 1filll
{\hfill\usebeamerfont{abstract page frame number}\usebeamercolor[fg]{abstract page frame number}\insertframenumber\par}
\vskip-\cam@inner@pitch %HACK: Why is this needed?
}
%{\beamercolorbox[vmode]{abstract}\leftskip2em\rightskip2em plus 1fill\usebeamerfont*{abstract}}
%\defbeamertemplate*{abstract end}{cambridge theme}
%{}
%{\medskip\endbeamercolorbox}
% Verse
\defbeamertemplate*{verse begin}{cambridge theme}
{\beamercolorbox[vmode]{verse}}
\defbeamertemplate*{verse end}{cambridge theme}
{\endbeamercolorbox}
% Quotation
\defbeamertemplate*{quotation begin}{cambridge theme}
{\beamercolorbox[vmode]{quotation}}
\defbeamertemplate*{quotation end}{cambridge theme}
{\endbeamercolorbox}
% Quote
\defbeamertemplate*{quote begin}{cambridge theme}
{\beamercolorbox[vmode]{quote}}
\defbeamertemplate*{quote end}{cambridge theme}
{\endbeamercolorbox}
% Footnotes
\defbeamertemplate*{footnote}{cambridge theme}
{
\parindent 1em\noindent%
\raggedright
\hbox to 1.8em{\hfil\insertfootnotemark}\insertfootnotetext\par%
}
% Captions
\defbeamertemplate*{caption}{cambridge theme}
{%
\raggedright
{%
\usebeamercolor[fg]{caption name}%
\usebeamerfont*{caption name}%
\insertcaptionname:%
}
\insertcaption\par
}
% Blocks
\defbeamertemplate*{block begin}{cambridge theme}
{
\par\vskip\medskipamount%
\begin{beamercolorbox}[colsep*=.75ex]{block title}
\usebeamerfont*{block title}\insertblocktitle%
\end{beamercolorbox}%
{\parskip0pt\par}%
\ifbeamercolorempty[bg]{block title}
{}
{\ifbeamercolorempty[bg]{block body}{}{\nointerlineskip\vskip-0.5pt}}%
\usebeamerfont{block body}%
\begin{beamercolorbox}[colsep*=.75ex,vmode]{block body}%
\ifbeamercolorempty[bg]{block body}{\vskip-.25ex}{\vskip-.75ex}\vbox{}%
}
\defbeamertemplate*{block end}{cambridge theme}
{\end{beamercolorbox}\vskip\smallskipamount}
\defbeamertemplate*{block alerted begin}{cambridge theme}
{
\par\vskip\medskipamount%
\begin{beamercolorbox}[colsep*=.75ex]{block title alerted}
\usebeamerfont*{block title alerted}\insertblocktitle%
\end{beamercolorbox}%
{\parskip0pt\par}%
\ifbeamercolorempty[bg]{block title alerted}
{}
{\ifbeamercolorempty[bg]{block body alerted}{}{\nointerlineskip\vskip-0.5pt}}%
\usebeamerfont{block body alerted}%
\begin{beamercolorbox}[colsep*=.75ex,vmode]{block body alerted}%
\ifbeamercolorempty[bg]{block body alerted}{\vskip-.25ex}{\vskip-.75ex}\vbox{}%
}
\defbeamertemplate*{block alerted end}{cambridge theme}
{\end{beamercolorbox}\vskip\smallskipamount}
\defbeamertemplate*{block example begin}{cambridge theme}
{
\par\vskip\medskipamount%
\begin{beamercolorbox}[colsep*=.75ex]{block title example}
\usebeamerfont*{block title example}\insertblocktitle%
\end{beamercolorbox}%
{\parskip0pt\par}%
\ifbeamercolorempty[bg]{block title example}
{}
{\ifbeamercolorempty[bg]{block body example}{}{\nointerlineskip\vskip-0.5pt}}%
\usebeamerfont{block body example}%
\begin{beamercolorbox}[colsep*=.75ex,vmode]{block body example}%
\ifbeamercolorempty[bg]{block body example}{\vskip-.25ex}{\vskip-.75ex}\vbox{}%
}
\defbeamertemplate*{block example end}{cambridge theme}
{\end{beamercolorbox}\vskip\smallskipamount}
% Theorems
\defbeamertemplate*{theorem begin}{cambridge theme}
{%
\begin{\inserttheoremblockenv}
{%
\inserttheoremname
\ifx\inserttheoremaddition\@empty\else\ (\inserttheoremaddition)\fi%
}%
}
\defbeamertemplate*{theorem end}{cambridge theme}
{\end{\inserttheoremblockenv}}
% Proofs
\defbeamertemplate*{proof begin}{cambridge theme}
{\begin{block}{\insertproofname}}
\defbeamertemplate*{proof end}{cambridge theme}
{\end{block}}
\defbeamertemplate*{qed symbol}{cambridge theme}
{\openbox}
\mode<all>
% Default title graphic is uni logo.
\titlegraphic{\pgfuseimage{beamertitlelogocambridge}}
% vim:sw=2:ts=2:et