recent presentation

minor fixes
added summary
changed theme
changed some gfx
This commit is contained in:
2016-07-03 20:18:23 +02:00
parent 473bff7c70
commit cdfb1decc6
15 changed files with 983 additions and 371 deletions

54
presentation/beamercolorthememetropolis.sty Executable file → Normal file
View File

@@ -17,22 +17,21 @@
%% International License (https://creativecommons.org/licenses/by-sa/4.0/). %% International License (https://creativecommons.org/licenses/by-sa/4.0/).
%% --------------------------------------------------------------------------- %% ---------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{beamercolorthememetropolis} \ProvidesPackage{beamercolorthememetropolis}[2016/03/14 Metropolis color theme]
[2015/06/12 A Modern Beamer Color Theme]
\RequirePackage{pgfopts} \RequirePackage{pgfopts}
\pgfkeys{ \pgfkeys{
/metropolis/color/block/.cd, /metropolis/color/block/.cd,
.is choice, .is choice,
transparent/.code=\@metropolis@block@transparent, transparent/.code=\metropolis@block@transparent,
fill/.code=\@metropolis@block@fill, fill/.code=\metropolis@block@fill,
} }
\pgfkeys{ \pgfkeys{
/metropolis/color/background/.cd, /metropolis/color/background/.cd,
.is choice, .is choice,
dark/.code=\@metropolis@colors@dark, dark/.code=\metropolis@colors@dark,
light/.code=\@metropolis@colors@light, light/.code=\metropolis@colors@light,
} }
\newcommand{\@metropolis@color@setdefaults}{ \newcommand{\metropolis@color@setdefaults}{
\pgfkeys{/metropolis/color/.cd, \pgfkeys{/metropolis/color/.cd,
background=light, background=light,
block=transparent, block=transparent,
@@ -42,13 +41,13 @@
\definecolor{mDarkTeal}{HTML}{23373b} \definecolor{mDarkTeal}{HTML}{23373b}
\definecolor{mLightBrown}{HTML}{EB811B} \definecolor{mLightBrown}{HTML}{EB811B}
\definecolor{mLightGreen}{HTML}{14B03D} \definecolor{mLightGreen}{HTML}{14B03D}
\newcommand{\@metropolis@colors@dark}{ \newcommand{\metropolis@colors@dark}{
\setbeamercolor{normal text}{% \setbeamercolor{normal text}{%
fg=black!2, fg=black!2,
bg=mDarkTeal bg=mDarkTeal
} }
} }
\newcommand{\@metropolis@colors@light}{ \newcommand{\metropolis@colors@light}{
\setbeamercolor{normal text}{% \setbeamercolor{normal text}{%
fg=mDarkTeal, fg=mDarkTeal,
bg=black!2 bg=black!2
@@ -60,13 +59,11 @@
\setbeamercolor{example text}{% \setbeamercolor{example text}{%
fg=mLightGreen fg=mLightGreen
} }
\setbeamercolor{titlelike}{% \setbeamercolor{titlelike}{use=normal text, parent=normal text}
use=normal text, \setbeamercolor{author}{use=normal text, parent=normal text}
parent=normal text \setbeamercolor{date}{use=normal text, parent=normal text}
} \setbeamercolor{institute}{use=normal text, parent=normal text}
\setbeamercolor{structure}{% \setbeamercolor{structure}{use=normal text, fg=normal text.fg}
fg=normal text.fg
}
\setbeamercolor{palette primary}{% \setbeamercolor{palette primary}{%
use=normal text, use=normal text,
fg=normal text.bg, fg=normal text.bg,
@@ -79,7 +76,7 @@
\setbeamercolor{progress bar}{% \setbeamercolor{progress bar}{%
use=alerted text, use=alerted text,
fg=alerted text.fg, fg=alerted text.fg,
bg=normal text.bg!50!normal text.fg bg=alerted text.fg!50!black!30
} }
\setbeamercolor{title separator}{ \setbeamercolor{title separator}{
use=progress bar, use=progress bar,
@@ -93,15 +90,26 @@
use=progress bar, use=progress bar,
parent=progress bar parent=progress bar
} }
\newcommand{\@metropolis@block@transparent}{ \newcommand{\metropolis@block@transparent}{
\setbeamercolor{block title}{use=normal text, parent=normal text} \setbeamercolor{block title}{%
use=normal text,
fg=normal text.fg,
bg=
}
\setbeamercolor{block body}{
bg=
}
} }
\newcommand{\@metropolis@block@fill}{ \newcommand{\metropolis@block@fill}{
\setbeamercolor{block title}{% \setbeamercolor{block title}{%
use=normal text, use=normal text,
fg=normal text.fg, fg=normal text.fg,
bg=normal text.bg!80!fg bg=normal text.bg!80!fg
} }
\setbeamercolor{block body}{
use={block title, normal text},
bg=block title.bg!50!normal text.bg
}
} }
\setbeamercolor{block title alerted}{% \setbeamercolor{block title alerted}{%
use={block title, alerted text}, use={block title, alerted text},
@@ -115,13 +123,9 @@
} }
\setbeamercolor{block body alerted}{use=block body, parent=block body} \setbeamercolor{block body alerted}{use=block body, parent=block body}
\setbeamercolor{block body example}{use=block body, parent=block body} \setbeamercolor{block body example}{use=block body, parent=block body}
\setbeamercolor{block body}{
use={block title, normal text},
bg=block title.bg!50!normal text.bg
}
\setbeamercolor{footnote}{fg=normal text.fg!90} \setbeamercolor{footnote}{fg=normal text.fg!90}
\setbeamercolor{footnote mark}{fg=.} \setbeamercolor{footnote mark}{fg=.}
\@metropolis@color@setdefaults \metropolis@color@setdefaults
\ProcessPgfPackageOptions{/metropolis/color} \ProcessPgfPackageOptions{/metropolis/color}
\mode<all> \mode<all>
\endinput \endinput

297
presentation/beamerfontthememetropolis.sty Executable file → Normal file
View File

@@ -17,40 +17,273 @@
%% International License (https://creativecommons.org/licenses/by-sa/4.0/). %% International License (https://creativecommons.org/licenses/by-sa/4.0/).
%% --------------------------------------------------------------------------- %% ---------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{beamerfontthememetropolis} \ProvidesPackage{beamerfontthememetropolis}[2016/03/14 Metropolis font theme]
[2015/06/12 A Modern Beamer Font Theme] \RequirePackage{etoolbox}
\RequirePackage[no-math]{fontspec} \RequirePackage{ifxetex}
\defaultfontfeatures{Mapping=tex-text} \RequirePackage{ifluatex}
\setsansfont[BoldItalicFont={Fira Sans Italic},% \RequirePackage{pgfopts}
ItalicFont={Fira Sans Light Italic},% \ifboolexpr{bool {xetex} or bool {luatex}}{
BoldFont={Fira Sans}]{Fira Sans Light} \RequirePackage[no-math]{fontspec}
\setmonofont{Fira Mono} \newcounter{fontsnotfound}
\newfontfamily\ExtraLight{Fira Sans ExtraLight} \newcommand{\checkfont}[1]{%
\newfontfamily\Light{Fira Sans Light} \suppressfontnotfounderror=1%
\newfontfamily\Book{Fira Sans} \font\x = "#1" at 10pt
\newfontfamily\Medium{Fira Sans Medium} \selectfont
\AtBeginEnvironment{tabular}{% \ifx\x\nullfont%
\setsansfont[BoldFont={Fira Sans},% \stepcounter{fontsnotfound}%
Numbers={Monospaced}]{Fira Sans Light}% \fi%
\suppressfontnotfounderror=0%
} }
\setbeamerfont{title}{family=\Book, size=\Large, shape=\scshape}
\setbeamerfont{author}{family=\ExtraLight, size=\small}
\setbeamerfont{date}{family=\ExtraLight, size=\small}
\setbeamerfont{section title}{family=\Book, size=\Large, shape=\scshape}
\setbeamerfont{block title}{family=\Book, size=\normalsize}
\setbeamerfont{block title alerted}{family=\Book,size=\normalsize}
\setbeamerfont{subtitle}{family=\Light, size=\fontsize{12}{14}}
\setbeamerfont{frametitle}{family=\Book, size=\large, shape=\scshape}
\setbeamerfont{caption}{size=\small}
\setbeamerfont{caption name}{family=\Book}
\setbeamerfont{description item}{family=\Book}
\setbeamerfont{page number in head/foot}{size=\scriptsize}
\setbeamerfont{bibliography entry author}{family=\Light, size=\normalsize}
\setbeamerfont{bibliography entry title}{family=\Book, size=\normalsize}
\setbeamerfont{bibliography entry location}{family=\Light, size=\normalsize}
\setbeamerfont{bibliography entry note}{family=\Light, size=\small}
\linespread{1.15}
\newcommand{\iffontsavailable}[3]{%
\setcounter{fontsnotfound}{0}%
\expandafter\forcsvlist\expandafter%
\checkfont\expandafter{#1}%
\ifnum\value{fontsnotfound}=0%
#2%
\else%
#3%
\fi%
}
\iffontsavailable{Fira Sans Light,%
Fira Sans Light Italic,%
Fira Sans,%
Fira Sans Italic}%
{%
\setsansfont[ItalicFont={Fira Sans Light Italic},%
BoldFont={Fira Sans},%
BoldItalicFont={Fira Sans Italic}]%
{Fira Sans Light}%
}{%
\iffontsavailable{Fira Sans Light OT,%
Fira Sans Light Italic OT,%
Fira Sans OT,%
Fira Sans Italic OT}%
{%
\setsansfont[ItalicFont={Fira Sans Light Italic OT},%
BoldFont={Fira Sans OT},%
BoldItalicFont={Fira Sans Italic OT}]%
{Fira Sans Light OT}%
}{%
\PackageWarning{beamerthememetropolis}{%
Could not find Fira Sans fonts%
}
}
}
\iffontsavailable{Fira Mono, Fira Mono Bold}{%
\setmonofont[BoldFont={Fira Mono Medium}]{Fira Mono}%
}{%
\iffontsavailable{Fira Mono OT, Fira Mono Bold OT}{%
\setmonofont[BoldFont={Fira Mono Medium OT}]{Fira Mono OT}%
}{%
\PackageWarning{beamerthememetropolis}{%
Could not find Fira Mono fonts%
}
}
}
\AtBeginEnvironment{tabular}{%
\addfontfeature{Numbers={Monospaced}}%
}
}{%
\PackageWarning{beamerthememetropolis}{%
You need to compile with XeLaTeX or LuaLaTeX to use the Fira fonts%
}
}
\setbeamerfont{title}{size=\Large,%
series=\bfseries}
\setbeamerfont{author}{size=\small}
\setbeamerfont{date}{size=\small}
\setbeamerfont{section title}{size=\Large,%
series=\bfseries}
\setbeamerfont{block title}{size=\normalsize,%
series=\bfseries}
\setbeamerfont{block title alerted}{size=\normalsize,%
series=\bfseries}
\setbeamerfont*{subtitle}{size=\large}
\setbeamerfont{frametitle}{size=\large,%
series=\bfseries}
\setbeamerfont{caption}{size=\small}
\setbeamerfont{caption name}{series=\bfseries}
\setbeamerfont{description item}{series=\bfseries}
\setbeamerfont{page number in head/foot}{size=\scriptsize}
\setbeamerfont{bibliography entry author}{size=\normalsize,%
series=\normalfont}
\setbeamerfont{bibliography entry title}{size=\normalsize,%
series=\bfseries}
\setbeamerfont{bibliography entry location}{size=\normalsize,%
series=\normalfont}
\setbeamerfont{bibliography entry note}{size=\small,%
series=\normalfont}
\setbeamerfont{standout}{size=\Large,%
series=\bfseries}
\pgfkeys{
/metropolis/font/titleformat title/.cd,
.is choice,
regular/.code={%
\let\metropolis@titleformat\@empty%
\setbeamerfont{title}{shape=\normalfont}%
},
smallcaps/.code={%
\let\metropolis@titleformat\@empty%
\setbeamerfont{title}{shape=\scshape}%
},
allsmallcaps/.code={%
\let\metropolis@titleformat\lowercase%
\setbeamerfont{title}{shape=\scshape}%
\PackageWarning{beamerthememetropolis}{%
Be aware that titleformat title=allsmallcaps can lead to problems%
}
},
allcaps/.code={%
\let\metropolis@titleformat\uppercase%
\setbeamerfont{title}{shape=\normalfont}
\PackageWarning{beamerthememetropolis}{%
Be aware that titleformat title=allcaps can lead to problems%
}
},
}
\pgfkeys{
/metropolis/font/titleformat subtitle/.cd,
.is choice,
regular/.code={%
\let\metropolis@subtitleformat\@empty%
\setbeamerfont{subtitle}{shape=\normalfont}%
},
smallcaps/.code={%
\let\metropolis@subtitleformat\@empty%
\setbeamerfont{subtitle}{shape=\scshape}%
},
allsmallcaps/.code={%
\let\metropolis@subtitleformat\lowercase%
\setbeamerfont{subtitle}{shape=\scshape}%
\PackageWarning{beamerthememetropolis}{%
Be aware that titleformat subtitle=allsmallcaps can lead to problems%
}
},
allcaps/.code={%
\let\metropolis@subtitleformat\uppercase%
\setbeamerfont{subtitle}{shape=\normalfont}%
\PackageWarning{beamerthememetropolis}{%
Be aware that titleformat subtitle=allcaps can lead to problems%
}
},
}
\pgfkeys{
/metropolis/font/titleformat section/.cd,
.is choice,
regular/.code={%
\let\metropolis@sectiontitleformat\@empty%
\setbeamerfont{section title}{shape=\normalfont}%
},
smallcaps/.code={%
\let\metropolis@sectiontitleformat\@empty%
\setbeamerfont{section title}{shape=\scshape}%
},
allsmallcaps/.code={%
\let\metropolis@sectiontitleformat\MakeLowercase%
\setbeamerfont{section title}{shape=\scshape}%
\PackageWarning{beamerthememetropolis}{%
Be aware that titleformat section=allsmallcaps can lead to problems%
}
},
allcaps/.code={%
\let\metropolis@sectiontitleformat\MakeUppercase%
\setbeamerfont{section title}{shape=\normalfont}%
\PackageWarning{beamerthememetropolis}{%
Be aware that titleformat section=allcaps can lead to problems%
}
},
}
\pgfkeys{
/metropolis/font/titleformat frame/.cd,
.is choice,
regular/.code={%
\let\metropolis@frametitleformat\@empty%
\setbeamerfont{frametitle}{shape=\normalfont}%
},
smallcaps/.code={%
\let\metropolis@frametitleformat\@empty%
\setbeamerfont{frametitle}{shape=\scshape}%
},
allsmallcaps/.code={%
\let\metropolis@frametitleformat\MakeLowercase%
\setbeamerfont{frametitle}{shape=\scshape}%
\PackageWarning{beamerthememetropolis}{%
Be aware that titleformat frame=allsmallcaps can lead to problems%
}
},
allcaps/.code={%
\let\metropolis@frametitleformat\MakeUppercase%
\setbeamerfont{frametitle}{shape=\normalfont}
\PackageWarning{beamerthememetropolis}{%
Be aware that titleformat frame=allcaps can lead to problems%
}
},
}
\pgfkeys{
/metropolis/font/.cd,
titleformattitle/.code=\pgfkeysalso{titleformat title=#1},
titleformatsubtitle/.code=\pgfkeysalso{titleformat subtitle=#1},
titleformatsection/.code=\pgfkeysalso{titleformat section=#1},
titleformatframe/.code=\pgfkeysalso{titleformat frame=#1},
}
\newcommand{\metropolis@font@setdefaults}{
\pgfkeys{/metropolis/font/.cd,
titleformat title=regular,
titleformat subtitle=regular,
titleformat section=regular,
titleformat frame=regular,
}
}
\def\metropolis@titleformat#1{#1}
\def\metropolis@subtitleformat#1{#1}
\def\metropolis@sectiontitleformat#1{#1}
\def\metropolis@frametitleformat#1{#1}
\patchcmd{\beamer@title}%
{\def\inserttitle{#2}}%
{\def\inserttitle{\metropolis@titleformat{#2}}}%
{}%
{\PackageError{beamerfontthememetropolis}{Patching title failed}}
\patchcmd{\beamer@subtitle}%
{\def\insertsubtitle{#2}}%
{\def\insertsubtitle{\metropolis@subtitleformat{#2}}}%
{}%
{\PackageError{beamerfontthememetropolis}{Patching subtitle failed}}
\patchcmd{\sectionentry}
{\def\insertsectionhead{#2}}
{\def\insertsectionhead{\metropolis@sectiontitleformat{#2}}}
{}
{\PackageError{beamerfontthememetropolis}{Patching section title failed}}
\patchcmd{\beamer@section}
{\def\insertsectionhead{\hyperlink{Navigation\the\c@page}{#1}}}
{\def\insertsectionhead{\hyperlink{Navigation\the\c@page}{%
\metropolis@sectiontitleformat{#1}}}}
{}
{\PackageError{beamerfontthememetropolis}{Patching section title failed}}
\patchcmd{\beamer@subsection}
{\def\insertsubsectionhead{\hyperlink{Navigation\the\c@page}{#1}}}
{\def\insertsubsectionhead{\hyperlink{Navigation\the\c@page}{%
\metropolis@sectiontitleformat{#1}}}}
{}
{\PackageError{beamerfontthememetropolis}{Patching section title failed}}
\patchcmd{\beamer@@frametitle}
{\beamer@ifempty{#2}{}{%
\gdef\insertframetitle{{#2\ifnum\beamer@autobreakcount>0\relax{}\space%
\usebeamertemplate*{frametitle continuation}\fi}}%
\gdef\beamer@frametitle{#2}%
\gdef\beamer@shortframetitle{#1}%
}}
{\beamer@ifempty{#2}{}{%
\gdef\insertframetitle{{\metropolis@frametitleformat{#2}\ifnum%
\beamer@autobreakcount>0\relax{}\space%
\usebeamertemplate*{frametitle continuation}\fi}}%
\gdef\beamer@frametitle{#2}%
\gdef\beamer@shortframetitle{#1}%
}}
{}
{\PackageError{beamerfontthememetropolis}{Patching frame title failed}}
\metropolis@font@setdefaults
\ProcessPgfPackageOptions{/metropolis/font}
\endinput \endinput
%% %%
%% End of file `beamerfontthememetropolis.sty'. %% End of file `beamerfontthememetropolis.sty'.

363
presentation/beamerinnerthememetropolis.sty Executable file → Normal file
View File

@@ -17,125 +17,46 @@
%% International License (https://creativecommons.org/licenses/by-sa/4.0/). %% International License (https://creativecommons.org/licenses/by-sa/4.0/).
%% --------------------------------------------------------------------------- %% ---------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{beamerinnerthememetropolis} \ProvidesPackage{beamerinnerthememetropolis}[2016/03/14 Metropolis inner theme]
[2015/06/12 A Modern Beamer Theme]
\RequirePackage{etoolbox} \RequirePackage{etoolbox}
\RequirePackage{keyval}
\RequirePackage{calc} \RequirePackage{calc}
\RequirePackage{pgfopts} \RequirePackage{pgfopts}
\RequirePackage{tikz} \RequirePackage{tikz}
\pgfkeys{
/metropolis/inner/block/.cd,
.is choice,
transparent/.code=\setlength{\@metropolis@blockskip}{0ex},
fill/.code=\setlength{\@metropolis@blockskip}{1ex},
}
\pgfkeys{
/metropolis/inner/titleformat/.cd,
.is choice,
regular/.code=\renewcommand{\@metropolis@titleformat}{},
lowercase/.code={%
\renewcommand{\@metropolis@titleformat}{\MakeLowercase}
},
uppercase/.code={%
\renewcommand{\@metropolis@titleformat}{\MakeUppercase}
},
}
\pgfkeys{
/metropolis/inner/sectiontitleformat/.cd,
.is choice,
regular/.code=\renewcommand{\@metropolis@sectiontitleformat}{},
lowercase/.code={%
\renewcommand{\@metropolis@sectiontitleformat}{\MakeLowercase}
},
uppercase/.code={%
\renewcommand{\@metropolis@sectiontitleformat}{\MakeUppercase}
},
}
\pgfkeys{ \pgfkeys{
/metropolis/inner/sectionpage/.cd, /metropolis/inner/sectionpage/.cd,
.is choice, .is choice,
none/.code=\@metropolis@sectionpage@none, none/.code=\metropolis@disablesectionpage,
progressbar/.code=\@metropolis@sectionpage@progressbar, simple/.code={\metropolis@enablesectionpage
\setbeamertemplate{section page}[simple]},
progressbar/.code={\metropolis@enablesectionpage
\setbeamertemplate{section page}[progressbar]},
} }
\newcommand{\@metropolis@inner@setdefaults}{ \pgfkeys{
/metropolis/inner/subsectionpage/.cd,
.is choice,
none/.code=\metropolis@disablesubsectionpage,
simple/.code={\metropolis@enablesubsectionpage
\setbeamertemplate{section page}[simple]},
progressbar/.code={\metropolis@enablesubsectionpage
\setbeamertemplate{section page}[progressbar]},
}
\newcommand{\metropolis@inner@setdefaults}{
\pgfkeys{/metropolis/inner/.cd, \pgfkeys{/metropolis/inner/.cd,
sectionpage=progressbar, sectionpage=progressbar,
block=transparent, subsectionpage=none
titleformat=lowercase,
sectiontitleformat=lowercase,
} }
} }
\def\@metropolis@titleformat#1{#1}
\def\@metropolis@sectiontitleformat#1{#1}
\patchcmd{\sectionentry}
{\def\insertsectionhead{#2}}
{\def\insertsectionhead{\@metropolis@sectiontitleformat{#2}}}
{}
{\PackageError{beamerinnerthememetropolis}{Patching section title failed.}}
\patchcmd{\beamer@section}
{\def\insertsectionhead{\hyperlink{Navigation\the\c@page}{#1}}}
{\def\insertsectionhead{\hyperlink{Navigation\the\c@page}{\@metropolis@sectiontitleformat{#1}}}}
{}
{\PackageError{beamerinnerthememetropolis}{Patching section title failed.}}
\setbeamertemplate{title page}{ \setbeamertemplate{title page}{
\begin{minipage}[b][\paperheight]{\textwidth} \begin{minipage}[b][\paperheight]{\textwidth}
\ifx\inserttitlegraphic\@empty\else{% \ifx\inserttitlegraphic\@empty\else\usebeamertemplate*{title graphic}\fi
\vbox to 0pt {
\vspace*{2em}
\usebeamercolor[fg]{titlegraphic}%
\inserttitlegraphic%
}%
\nointerlineskip%
}
\fi
\vfill% \vfill%
\ifx\inserttitle\@empty\else{{% \ifx\inserttitle\@empty\else\usebeamertemplate*{title}\fi
\raggedright% \ifx\insertsubtitle\@empty\else\usebeamertemplate*{subtitle}\fi
\linespread{1.0}% \usebeamertemplate*{title separator}
\usebeamerfont{title}% \ifx\beamer@shortauthor\@empty\else\usebeamertemplate*{author}\fi
\usebeamercolor[fg]{title}% \ifx\insertdate\@empty\else\usebeamertemplate*{date}\fi
\@metropolis@titleformat{\inserttitle}% \ifx\insertinstitute\@empty\else\usebeamertemplate*{institute}\fi
\par%
\vspace*{0.5em}
}}
\fi
\ifx\insertsubtitle\@empty\else{{%
\usebeamerfont{subtitle}%
\usebeamercolor[fg]{subtitle}%
\insertsubtitle%
\par%
\vspace*{0.5em}
}}
\fi
\begin{tikzpicture}
\usebeamercolor{title separator}
\draw[fg] (0, 0) -- (\textwidth, 0);
\end{tikzpicture}%
\par%
\vspace*{1em}%
\ifx\beamer@shortauthor\@empty\else{{%
\usebeamerfont{author}%
\usebeamercolor[fg]{author}%
\insertauthor%
\par%
\vspace*{0.25em}
}}
\fi
\ifx\insertdate\@empty\else{{%
\usebeamerfont{date}%
\usebeamercolor[fg]{date}%
\insertdate%
\par%
}}
\fi
\ifx\insertinstitute\@empty\else{{%
\vspace*{3mm}
\usebeamerfont{institute}%
\usebeamercolor[fg]{institute}%
\insertinstitute%
\par%
}}
\fi
\vfill \vfill
\vspace*{1mm} \vspace*{1mm}
\end{minipage} \end{minipage}
@@ -144,34 +65,110 @@
\ifbeamer@inframe \ifbeamer@inframe
\titlepage \titlepage
\else \else
\frame[plain]{\titlepage} \frame[plain,noframenumbering]{\titlepage}
\fi \fi
} }
\def\titlepage{% \def\titlepage{%
\usebeamertemplate{title page} \usebeamertemplate{title page}
} }
\newcommand{\@metropolis@sectionpage@none}{ \setbeamertemplate{title graphic}{
\AtBeginSection{ \vbox to 0pt {
% intenionally empty \vspace*{2em}
} \inserttitlegraphic%
}%
\nointerlineskip%
}
\setbeamertemplate{title}{
\raggedright%
\linespread{1.0}%
\inserttitle%
\par%
\vspace*{0.5em}
}
\setbeamertemplate{subtitle}{
\insertsubtitle%
\par%
\vspace*{0.5em}
}
\setbeamertemplate{title separator}{
\begin{tikzpicture}
\fill[fg] (0,0) rectangle (\textwidth, 0.4pt);
\end{tikzpicture}%
\par%
}
\setbeamertemplate{author}{
\vspace*{2em}
\insertauthor%
\par%
\vspace*{0.25em}
}
\setbeamertemplate{date}{
\insertdate%
\par%
}
\setbeamertemplate{institute}{
\vspace*{3mm}
\insertinstitute%
\par%
}
\defbeamertemplate{section page}{simple}{
\begin{center}
\usebeamercolor[fg]{section title}
\usebeamerfont{section title}
\insertsectionhead\par
\ifx\insertsubsectionhead\@empty\else
\usebeamercolor[fg]{subsection title}
\usebeamerfont{subsection title}
\insertsubsectionhead
\fi
\end{center}
} }
\defbeamertemplate{section page}{progressbar}{ \defbeamertemplate{section page}{progressbar}{
\centering \centering
\begin{minipage}{22em} \begin{minipage}{22em}
\raggedright
\usebeamercolor[fg]{section title} \usebeamercolor[fg]{section title}
\usebeamerfont{section title} \usebeamerfont{section title}
\insertsectionhead\\[-1ex] \insertsectionhead\\[-1ex]
\usebeamertemplate*{progress bar in section page} \usebeamertemplate*{progress bar in section page}
\par
\ifx\insertsubsectionhead\@empty\else%
\usebeamercolor[fg]{subsection title}%
\usebeamerfont{subsection title}%
\insertsubsectionhead
\fi
\end{minipage} \end{minipage}
\par \par
\vspace{\baselineskip}
} }
\newcommand{\@metropolis@sectionpage@progressbar}{ \newcommand{\metropolis@disablesectionpage}{
\setbeamertemplate{section page}[progressbar] \AtBeginSection{
% intentionally empty
}
}
\newcommand{\metropolis@enablesectionpage}{
\AtBeginSection{ \AtBeginSection{
\ifbeamer@inframe \ifbeamer@inframe
\sectionpage \sectionpage
\else \else
\frame[plain,c]{\sectionpage} \frame[plain,c,noframenumbering]{\sectionpage}
\fi
}
}
\setbeamertemplate{subsection page}{%
\usebeamertemplate*{section page}
}
\newcommand{\metropolis@disablesubsectionpage}{
\AtBeginSubsection{
% intentionally empty
}
}
\newcommand{\metropolis@enablesubsectionpage}{
\AtBeginSubsection{
\ifbeamer@inframe
\subsectionpage
\else
\frame[plain,c,noframenumbering]{\subsectionpage}
\fi \fi
} }
} }
@@ -181,75 +178,56 @@
\textwidth * \ratio{\insertframenumber pt}{\inserttotalframenumber pt}% \textwidth * \ratio{\insertframenumber pt}{\inserttotalframenumber pt}%
}% }%
\begin{tikzpicture} \begin{tikzpicture}
\draw[bg, fill=bg] (0,0) rectangle (\textwidth, 0.4pt); \fill[bg] (0,0) rectangle (\textwidth, 0.4pt);
\draw[fg, fill=fg] (0,0) rectangle (\metropolis@progressonsectionpage, 0.4pt); \fill[fg] (0,0) rectangle (\metropolis@progressonsectionpage, 0.4pt);
\end{tikzpicture}% \end{tikzpicture}%
} }
\def\inserttotalframenumber{100} \def\inserttotalframenumber{100}
\newlength{\@metropolis@blockskip} \newlength{\metropolis@blocksep}
\setbeamertemplate{block begin}{% \newlength{\metropolis@blockadjust}
\vspace*{1ex} \setlength{\metropolis@blocksep}{0.75ex}
\begin{beamercolorbox}[% \setlength{\metropolis@blockadjust}{0.25ex}
ht=2.4ex, \providecommand{\metropolis@strut}{%
dp=1ex, \vphantom{ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz()}%
leftskip=\@metropolis@blockskip, }
rightskip=\@metropolis@blockskip]{block title} \newcommand{\metropolis@block}[1]{
\usebeamerfont*{block title}\insertblocktitle% \par\vskip\medskipamount%
\setlength{\parskip}{0pt}
\ifbeamercolorempty[bg]{block title#1}{%
\begin{beamercolorbox}[rightskip=0pt plus 4em]{block title#1}}{%
\ifbeamercolorempty[bg]{block title}{%
\begin{beamercolorbox}[rightskip=0pt plus 4em]{block title#1}%
}%
{%
\begin{beamercolorbox}[
sep=\dimexpr\metropolis@blocksep-\metropolis@blockadjust\relax,
leftskip=\metropolis@blockadjust,
rightskip=\dimexpr\metropolis@blockadjust plus 4em\relax
]{block title#1}%
}}%
\usebeamerfont*{block title#1}%
\metropolis@strut%
\insertblocktitle%
\metropolis@strut%
\end{beamercolorbox}% \end{beamercolorbox}%
\vspace*{-1pt} \nointerlineskip%
\usebeamerfont{block body}% \ifbeamercolorempty[bg]{block body#1}{%
\begin{beamercolorbox}[% \begin{beamercolorbox}[vmode]{block body#1}}{
dp=1ex, \ifbeamercolorempty[bg]{block body}{%
leftskip=\@metropolis@blockskip, \begin{beamercolorbox}[vmode]{block body#1}%
rightskip=\@metropolis@blockskip, }{%
vmode]{block body}% \begin{beamercolorbox}[sep=\metropolis@blocksep, vmode]{block body#1}%
} \vspace{-\metropolis@parskip}
\setbeamertemplate{block end}{% }}%
\end{beamercolorbox} \usebeamerfont{block body#1}%
\vspace*{0.2ex} \setlength{\parskip}{\metropolis@parskip}%
}
\setbeamertemplate{block alerted begin}{%
\vspace*{1ex}
\begin{beamercolorbox}[%
ht=2.4ex,
dp=1ex,
leftskip=\@metropolis@blockskip,
rightskip=\@metropolis@blockskip]{block title alerted}
\usebeamerfont*{block title alerted}\insertblocktitle%
\end{beamercolorbox}%
\vspace*{-1pt}
\usebeamerfont{block body alerted}%
\begin{beamercolorbox}[%
dp=1ex,
leftskip=\@metropolis@blockskip,
rightskip=\@metropolis@blockskip,
vmode]{block body}%
}
\setbeamertemplate{block alerted end}{%
\end{beamercolorbox}
\vspace*{0.2ex}
}
\setbeamertemplate{block example begin}{%
\vspace*{1ex}
\begin{beamercolorbox}[%
ht=2.4ex,
dp=1ex,
leftskip=\@metropolis@blockskip,
rightskip=\@metropolis@blockskip]{block title example}
\usebeamerfont*{block title example}\insertblocktitle%
\end{beamercolorbox}%
\vspace*{-1pt}
\usebeamerfont{block body example}%
\begin{beamercolorbox}[%
dp=1ex,
leftskip=\@metropolis@blockskip,
rightskip=\@metropolis@blockskip,
vmode]{block body}%
}
\setbeamertemplate{block example end}{%
\end{beamercolorbox}
\vspace*{0.2ex}
} }
\setbeamertemplate{block begin}{\metropolis@block{}}
\setbeamertemplate{block alerted begin}{\metropolis@block{ alerted}}
\setbeamertemplate{block example begin}{\metropolis@block{ example}}
\setbeamertemplate{block end}{\end{beamercolorbox}\vspace*{0.2ex}}
\setbeamertemplate{block alerted end}{\end{beamercolorbox}\vspace*{0.2ex}}
\setbeamertemplate{block example end}{\end{beamercolorbox}\vspace*{0.2ex}}
\setbeamertemplate{itemize items}{\textbullet} \setbeamertemplate{itemize items}{\textbullet}
\setbeamertemplate{caption label separator}{: } \setbeamertemplate{caption label separator}{: }
\setbeamertemplate{caption}[numbered] \setbeamertemplate{caption}[numbered]
@@ -258,7 +236,9 @@
\raggedright \raggedright
\usebeamercolor{footnote}\hbox to 0.8em{\hfil\insertfootnotemark}\insertfootnotetext\par% \usebeamercolor{footnote}\hbox to 0.8em{\hfil\insertfootnotemark}\insertfootnotetext\par%
} }
\setlength{\parskip}{0.5em} \newlength{\metropolis@parskip}
\setlength{\metropolis@parskip}{0.5em}
\setlength{\parskip}{\metropolis@parskip}
\linespread{1.15} \linespread{1.15}
\define@key{beamerframe}{c}[true]{% centered \define@key{beamerframe}{c}[true]{% centered
\beamer@frametopskip=0pt plus 1fill\relax% \beamer@frametopskip=0pt plus 1fill\relax%
@@ -267,7 +247,34 @@
\beamer@framebottomskipautobreak=0pt plus .6\paperheight\relax% \beamer@framebottomskipautobreak=0pt plus .6\paperheight\relax%
\def\beamer@initfirstlineunskip{}% \def\beamer@initfirstlineunskip{}%
} }
\@metropolis@inner@setdefaults \providebool{metropolis@standout}
\define@key{beamerframe}{standout}[true]{%
\booltrue{metropolis@standout}
\begingroup
\setkeys{beamerframe}{c}
\setkeys{beamerframe}{noframenumbering}
\ifbeamercolorempty[bg]{palette primary}{
\setbeamercolor{background canvas}{
use=palette primary,
bg=-palette primary.fg
}
}{
\setbeamercolor{background canvas}{
use=palette primary,
bg=palette primary.bg
}
}
\centering
\usebeamercolor[fg]{palette primary}
\usebeamerfont{standout}
}
\apptocmd{\beamer@reseteecodes}{%
\ifbool{metropolis@standout}{
\endgroup
\boolfalse{metropolis@standout}
}{}
}{}{}
\metropolis@inner@setdefaults
\ProcessPgfPackageOptions{/metropolis/inner} \ProcessPgfPackageOptions{/metropolis/inner}
\endinput \endinput
%% %%

93
presentation/beamerouterthememetropolis.sty Executable file → Normal file
View File

@@ -17,8 +17,7 @@
%% International License (https://creativecommons.org/licenses/by-sa/4.0/). %% International License (https://creativecommons.org/licenses/by-sa/4.0/).
%% --------------------------------------------------------------------------- %% ---------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{beamerouterthememetropolis} \ProvidesPackage{beamerouterthememetropolis}[2016/03/14 Metropolis outer theme]
[2015/06/12 A Modern Beamer Theme]
\RequirePackage{etoolbox} \RequirePackage{etoolbox}
\RequirePackage{calc} \RequirePackage{calc}
\RequirePackage{pgfopts} \RequirePackage{pgfopts}
@@ -38,45 +37,30 @@
\setbeamertemplate{footline}[plain] \setbeamertemplate{footline}[plain]
}, },
head/.code={\pgfkeys{/metropolis/outer/progressbar=none} head/.code={\pgfkeys{/metropolis/outer/progressbar=none}
\addtobeamertemplate{headline}{}{\usebeamertemplate*{progress bar in head/foot}} \addtobeamertemplate{headline}{}{%
\usebeamertemplate*{progress bar in head/foot}
}
}, },
frametitle/.code={\pgfkeys{/metropolis/outer/progressbar=none} frametitle/.code={\pgfkeys{/metropolis/outer/progressbar=none}
\addtobeamertemplate{frametitle}{}{\usebeamertemplate*{progress bar in head/foot}} \addtobeamertemplate{frametitle}{}{%
\usebeamertemplate*{progress bar in head/foot}
}
}, },
foot/.code={\pgfkeys{/metropolis/outer/progressbar=none} foot/.code={\pgfkeys{/metropolis/outer/progressbar=none}
\addtobeamertemplate{footline}{}{\usebeamertemplate*{progress bar in head/foot}} \addtobeamertemplate{footline}{}{%
}, \usebeamertemplate*{progress bar in head/foot}%
}
\pgfkeys{
/metropolis/outer/frametitleformat/.cd,
.is choice,
regular/.code={%
\renewcommand{\@metropolis@frametitleformat}{}%
\renewcommand{\@metropolis@frametitlestrut}{%
\rule{0pt}{\heightof{ABCDEFGHIJKLMNOPQRSTUVWXYZ}}
}
},
lowercase/.code={%
\renewcommand{\@metropolis@frametitleformat}{\MakeLowercase}%
\renewcommand{\@metropolis@frametitlestrut}{%
\rule{0pt}{\heightof{abcdefghijklmnopqrstuvwxyz}}
}
},
uppercase/.code={%
\renewcommand{\@metropolis@frametitleformat}{\MakeUppercase}%
\renewcommand{\@metropolis@frametitlestrut}{%
\rule{0pt}{\heightof{ABCDEFGHIJKLMNOPQRSTUVWXYZ}}
} }
}, },
} }
\newcommand{\@metropolis@outer@setdefaults}{ \newcommand{\metropolis@outer@setdefaults}{
\pgfkeys{/metropolis/outer/.cd, \pgfkeys{/metropolis/outer/.cd,
numbering=counter, numbering=counter,
progressbar=none, progressbar=none,
frametitleformat=lowercase,
} }
} }
\setbeamertemplate{navigation symbols}{} \setbeamertemplate{navigation symbols}{}
\defbeamertemplate{frame footer}{none}{}
\defbeamertemplate{frame footer}{custom}[1]{ #1 }
\defbeamertemplate{frame numbering}{none}{} \defbeamertemplate{frame numbering}{none}{}
\defbeamertemplate{frame numbering}{counter}{\insertframenumber} \defbeamertemplate{frame numbering}{counter}{\insertframenumber}
\defbeamertemplate{frame numbering}{fraction}{ \defbeamertemplate{frame numbering}{fraction}{
@@ -85,33 +69,36 @@
\defbeamertemplate{headline}{plain}{} \defbeamertemplate{headline}{plain}{}
\defbeamertemplate{footline}{plain}{% \defbeamertemplate{footline}{plain}{%
\begin{beamercolorbox}[wd=\textwidth, sep=3ex]{footline}% \begin{beamercolorbox}[wd=\textwidth, sep=3ex]{footline}%
\hfill%
\usebeamerfont{page number in head/foot}% \usebeamerfont{page number in head/foot}%
\usebeamertemplate*{frame footer}
\hfill%
\usebeamertemplate*{frame numbering} \usebeamertemplate*{frame numbering}
\end{beamercolorbox}% \end{beamercolorbox}%
} }
\def\@metropolis@frametitleformat#1{#1} \newlength{\metropolis@frametitle@padding}
\patchcmd{\beamer@@frametitle} \setlength{\metropolis@frametitle@padding}{2.2ex}
{\beamer@ifempty{#2}{}{% \newcommand{\metropolis@frametitlestrut@start}{
\gdef\insertframetitle{{#2\ifnum\beamer@autobreakcount>0\relax{}\space\usebeamertemplate*{frametitle continuation}\fi}}% \rule{0pt}{\metropolis@frametitle@padding +%
\gdef\beamer@frametitle{#2}% \totalheightof{%
\gdef\beamer@shortframetitle{#1}% \ifcsdef{metropolis@frametitleformat}{\metropolis@frametitleformat X}{X}%
}} }%
{\beamer@ifempty{#2}{}{% }%
\gdef\insertframetitle{{\@metropolis@frametitleformat{#2}\ifnum\beamer@autobreakcount>0\relax{}\space\usebeamertemplate*{frametitle continuation}\fi}}% }
\gdef\beamer@frametitle{#2}% \newcommand{\metropolis@frametitlestrut@end}{
\gdef\beamer@shortframetitle{#1}% \rule[-\metropolis@frametitle@padding]{0pt}{\metropolis@frametitle@padding}
}} }
{}
{\PackageError{beamerouterthememetropolis}{Patching frame title failed.}}
\newlength{\@metropolis@frametitlestrut}
\defbeamertemplate{frametitle}{plain}{% \defbeamertemplate{frametitle}{plain}{%
\nointerlineskip% \nointerlineskip%
\begin{beamercolorbox}[% \begin{beamercolorbox}[%
wd=\paperwidth,% wd=\paperwidth,%
sep=1.5ex,% sep=0pt,%
leftskip=\metropolis@frametitle@padding,%
rightskip=\metropolis@frametitle@padding,%
]{frametitle}% ]{frametitle}%
\@metropolis@frametitlestrut\insertframetitle\@metropolis@frametitlestrut% \metropolis@frametitlestrut@start%
\insertframetitle%
\nolinebreak%
\metropolis@frametitlestrut@end%
\end{beamercolorbox}% \end{beamercolorbox}%
} }
\newlength{\metropolis@progressinheadfoot} \newlength{\metropolis@progressinheadfoot}
@@ -122,12 +109,20 @@
}% }%
\begin{beamercolorbox}[wd=\paperwidth]{progress bar in head/foot} \begin{beamercolorbox}[wd=\paperwidth]{progress bar in head/foot}
\begin{tikzpicture} \begin{tikzpicture}
\draw[bg, fill=bg] (0,0) rectangle (\paperwidth, 0.4pt); \fill[bg] (0,0) rectangle (\paperwidth, 0.4pt);
\draw[fg, fill=fg] (0,0) rectangle (\metropolis@progressinheadfoot, 0.4pt); \fill[fg] (0,0) rectangle (\metropolis@progressinheadfoot, 0.4pt);
\end{tikzpicture}% \end{tikzpicture}%
\end{beamercolorbox} \end{beamercolorbox}
} }
\@metropolis@outer@setdefaults \AtBeginDocument{%
\apptocmd{\appendix}{%
\pgfkeys{%
/metropolis/outer/.cd,
numbering=none,
progressbar=none}
}{}{}
}
\metropolis@outer@setdefaults
\ProcessPgfPackageOptions{/metropolis/outer} \ProcessPgfPackageOptions{/metropolis/outer}
\endinput \endinput
%% %%

View File

@@ -1,10 +1,10 @@
%% %%
%% This is file `beamerthemem.sty', %% This is file `beamerthememetropolis.sty',
%% generated with the docstrip utility. %% generated with the docstrip utility.
%% %%
%% The original source files were: %% The original source files were:
%% %%
%% beamerthemem.dtx (with options: `package') %% beamerthememetropolis.dtx (with options: `package')
%% --------------------------------------------------------------------------- %% ---------------------------------------------------------------------------
%% Copyright 2015 Matthias Vogelgesang and the LaTeX community. A full list of %% Copyright 2015 Matthias Vogelgesang and the LaTeX community. A full list of
%% contributors can be found at %% contributors can be found at
@@ -17,41 +17,51 @@
%% International License (https://creativecommons.org/licenses/by-sa/4.0/). %% International License (https://creativecommons.org/licenses/by-sa/4.0/).
%% --------------------------------------------------------------------------- %% ---------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{beamerthemem} \ProvidesPackage{beamerthememetropolis}
[2015/06/12 A Modern Beamer Theme] [2016/03/14 v1.1 Metropolis Beamer theme]
\RequirePackage{etoolbox} \RequirePackage{etoolbox}
\RequirePackage{pgfopts} \RequirePackage{pgfopts}
\RequirePackage{ifxetex}
\RequirePackage{ifluatex}
\newcommand{\metroset}[1]{\pgfkeys{/metropolis/.cd,#1}}
\pgfkeys{/metropolis/.cd, \pgfkeys{/metropolis/.cd,
.search also={ .search also={
/metropolis/inner, /metropolis/inner,
/metropolis/outer, /metropolis/outer,
/metropolis/color, /metropolis/color,
}, /metropolis/font,
block/.code=\pgfkeysalso{ }
inner/block=#1,
color/block=#1,
},
} }
\pgfkeys{ \pgfkeys{
/metropolis/plaintitleformat/.cd, /metropolis/titleformat plain/.cd,
.is choice, .is choice,
regular/.code=\renewcommand{\@metropolis@plaintitleformat}{#1}, regular/.code={%
lowercase/.code={% \let\metropolis@plaintitleformat\@empty%
\renewcommand{\@metropolis@plaintitleformat}{\MakeLowercase{#1}} \setbeamerfont{standout}{shape=\normalfont}%
}, },
uppercase/.code={% smallcaps/.code={%
\renewcommand{\@metropolis@plaintitleformat}{\MakeUppercase{#1}} \let\metropolis@plaintitleformat\@empty%
\setbeamerfont{standout}{shape=\scshape}%
},
allsmallcaps/.code={%
\let\metropolis@plaintitleformat\MakeLowercase%
\setbeamerfont{standout}{shape=\scshape}%
\PackageWarning{beamerthememetropolis}{%
Be aware that titleformat plain=allsmallcaps can lead to problems%
}
},
allcaps/.code={%
\let\metropolis@plaintitleformat\MakeUppercase%
\setbeamerfont{standout}{shape=\normalfont}%
\PackageWarning{beamerthememetropolis}{%
Be aware that titleformat plain=allcaps can lead to problems%
}
}, },
} }
\pgfkeys{ \pgfkeys{
/metropolis/everytitleformat/.code=\pgfkeysalso{ /metropolis/titleformat/.code=\pgfkeysalso{
inner/titleformat=#1, font/titleformat title=#1,
inner/sectiontitleformat=#1, font/titleformat subtitle=#1,
outer/frametitleformat=#1, font/titleformat section=#1,
plaintitleformat=#1, font/titleformat frame=#1,
titleformat plain=#1,
} }
} }
\pgfkeys{/metropolis/.cd, \pgfkeys{/metropolis/.cd,
@@ -62,45 +72,34 @@
darkcolors/.code=\pgfkeysalso{color/background=dark}, darkcolors/.code=\pgfkeysalso{color/background=dark},
blockbg/.code=\pgfkeysalso{color/block=fill, inner/block=fill}, blockbg/.code=\pgfkeysalso{color/block=fill, inner/block=fill},
} }
\newcommand{\@metropolis@setdefaults}{ \newcommand{\metropolis@setdefaults}{
\pgfkeys{/metropolis/.cd, \pgfkeys{/metropolis/.cd,
plaintitleformat=lowercase, titleformat plain=regular,
} }
} }
\useinnertheme{metropolis} \useinnertheme{metropolis}
\useoutertheme{metropolis} \useoutertheme{metropolis}
\usecolortheme{metropolis} \usecolortheme{metropolis}
\ifboolexpr{bool {xetex} or bool {luatex}}{ \usefonttheme{metropolis}
\usefonttheme{metropolis}
}{
\PackageWarning{beamerthemem}{%
You need to compile with XeLaTeX or LuaLaTeX to use the Fira fonts.
}
}
\AtEndPreamble{% \AtEndPreamble{%
\@ifpackageloaded{pgfplots}{% \@ifpackageloaded{pgfplots}{%
\RequirePackage{pgfplotsthemetol} \RequirePackage{pgfplotsthemetol}
}{} }{}
} }
\def\@metropolis@plaintitleformat#1{#1} \newcommand{\metroset}[1]{\pgfkeys{/metropolis/.cd,#1}}
\def\metropolis@plaintitleformat#1{#1}
\newcommand{\plain}[2][]{% \newcommand{\plain}[2][]{%
\begingroup \PackageWarning{beamerthememetropolis}{%
\setbeamercolor{background canvas}{ The syntax `\plain' may be deprecated in a future version of Metropolis.
use=palette primary, Please use a frame with [standout] instead.
parent=palette primary
} }
\begin{frame}[c]{#1} \begin{frame}[standout]{#1}
\begin{center} \metropolis@plaintitleformat{#2}
\usebeamercolor[fg]{palette primary}
\usebeamerfont{section title}
\@metropolis@plaintitleformat{#2}
\end{center}
\end{frame} \end{frame}
\endgroup
} }
\newcommand{\mreducelistspacing}{\vspace{-\topsep}} \newcommand{\mreducelistspacing}{\vspace{-\topsep}}
\@metropolis@setdefaults \metropolis@setdefaults
\ProcessPgfOptions{/metropolis} \ProcessPgfOptions{/metropolis}
\endinput \endinput
%% %%
%% End of file `beamerthemem.sty'. %% End of file `beamerthememetropolis.sty'.

View File

@@ -0,0 +1,95 @@
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: cairo 1.15.2 (http://cairographics.org)
%%CreationDate: Sun Jul 3 16:27:35 2016
%%Pages: 1
%%DocumentData: Clean7Bit
%%LanguageLevel: 2
%%BoundingBox: 0 -1 154 103
%%EndComments
%%BeginProlog
save
50 dict begin
/q { gsave } bind def
/Q { grestore } bind def
/cm { 6 array astore concat } bind def
/w { setlinewidth } bind def
/J { setlinecap } bind def
/j { setlinejoin } bind def
/M { setmiterlimit } bind def
/d { setdash } bind def
/m { moveto } bind def
/l { lineto } bind def
/c { curveto } bind def
/h { closepath } bind def
/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto
0 exch rlineto 0 rlineto closepath } bind def
/S { stroke } bind def
/f { fill } bind def
/f* { eofill } bind def
/n { newpath } bind def
/W { clip } bind def
/W* { eoclip } bind def
/BT { } bind def
/ET { } bind def
/pdfmark where { pop globaldict /?pdfmark /exec load put }
{ globaldict begin /?pdfmark /pop load def /pdfmark
/cleartomark load def end } ifelse
/BDC { mark 3 1 roll /BDC pdfmark } bind def
/EMC { mark /EMC pdfmark } bind def
/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def
/Tj { show currentpoint cairo_store_point } bind def
/TJ {
{
dup
type /stringtype eq
{ show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse
} forall
currentpoint cairo_store_point
} bind def
/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore
cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def
/Tf { pop /cairo_font exch def /cairo_font_matrix where
{ pop cairo_selectfont } if } bind def
/Td { matrix translate cairo_font_matrix matrix concatmatrix dup
/cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point
/cairo_font where { pop cairo_selectfont } if } bind def
/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def
cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def
/g { setgray } bind def
/rg { setrgbcolor } bind def
/d1 { setcachedevice } bind def
%%EndProlog
%%BeginSetup
%%EndSetup
%%Page: 1 1
%%BeginPageSetup
%%PageBoundingBox: 0 -1 154 103
%%EndPageSetup
q 0 -1 154 104 rectclip q
1 g
0 102.4 80 -102.398 re f
80 102.4 73.602 -54.398 re f
0.862745 g
80 48.002 73.602 -48 re f
1 g
113.602 51.201 m 120 51.201 l 120 48.002 l 123.199 48.002 l 116.801 43.201
l 110.398 48.002 l 113.602 48.002 l h
113.602 51.201 m f*
0.643137 g
0.4 w
0 J
0 j
[] 0.0 d
4 M q 1 0 0 -1 0 102.400002 cm
113.602 51.199 m 120 51.199 l 120 54.398 l 123.199 54.398 l 116.801 59.199
l 110.398 54.398 l 113.602 54.398 l h
113.602 51.199 m S Q
0.501961 g
[ 0.4 0.8] 0 d
q 1 0 0 -1 0 102.400002 cm
80 0 m 80 102.398 l S Q
Q Q
showpage
%%Trailer
end restore
%%EOF

View File

@@ -0,0 +1,97 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="192"
height="128"
viewBox="0 0 192.00001 128"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="sysbg.svg">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="3.4305727"
inkscape:cx="54.826772"
inkscape:cy="54.053538"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
units="px"
inkscape:object-paths="true"
inkscape:object-nodes="true"
inkscape:window-width="1526"
inkscape:window-height="808"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1">
<inkscape:grid
type="xygrid"
id="grid4136"
empspacing="2" />
</sodipodi:namedview>
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-924.36222)">
<rect
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4138"
width="100.00001"
height="127.99998"
x="0"
y="924.36224" />
<rect
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4140"
width="92.000008"
height="68.000092"
x="100.00001"
y="924.36224" />
<rect
style="fill:#dcdcdc;fill-opacity:1;stroke:none;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4142"
width="91.999992"
height="60.000084"
x="100.00001"
y="992.36224" />
<path
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#a4a4a4;stroke-width:0.50000006;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 142.00001,988.36222 8,0 0,4 4,0 -8,6 -8,-6 4,0 z"
id="path4144"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#808080;stroke-width:0.50000003;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:0.50000003,1.00000006;stroke-dashoffset:0"
d="m 100,924.36222 0,127.99998"
id="path4245"
inkscape:connector-curvature="0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@@ -1,6 +1,6 @@
reset; reset;
set terminal qt size 500,500 set terminal qt size 600,500
po = -40; po = -40;
gamma = 1.4; gamma = 1.4;
@@ -26,8 +26,9 @@ uy = 5;
#set colorbox user origin screen 0.9,0.5 #set colorbox user origin screen 0.9,0.5
set origin -0.125,-0.125 set origin -0.125,-0.125
set size 1.25,1.25 set size 1.18, 1.18
unset colorbox; #unset colorbox;
unset cbtics;
set xrange[0:30]; set xrange[0:30];
@@ -54,6 +55,8 @@ set terminal pngcairo size 512,512
# plot 1 # plot 1
set label 2 "strong" font ",20" right at screen 0.973, 0.95
set label 3 "weak" font ",20" right at screen 0.973, 0.03
set output "wifi1.png" set output "wifi1.png"
splot getRSSI(x,y) with pm3d notitle; splot getRSSI(x,y) with pm3d notitle;
@@ -68,9 +71,11 @@ splot getRSSI2(x,y) with pm3d notitle;
unset cbrange; unset cbrange;
set palette rgb 33,13,10; set palette rgb 33,13,10;
unset colorbox; #unset colorbox;
# plot 3 # plot 3
set label 2 "likely" font ",20" right at screen 0.973, 0.95
set label 3 "unlikely" font ",20" right at screen 0.973, 0.03
set output "wifi3.png" set output "wifi3.png"
unset arrow 82; unset arrow 82;
unset arrow 81; unset arrow 81;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 KiB

After

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 147 KiB

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 181 KiB

After

Width:  |  Height:  |  Size: 179 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 156 KiB

After

Width:  |  Height:  |  Size: 157 KiB

View File

@@ -7,7 +7,8 @@
%\usetheme{m} %\usetheme{m}
\usetheme[everytitleformat=regular]{m} %\usetheme[everytitleformat=regular]{m}
\usetheme[subsectionpage=progressbar]{metropolis}
% Costumizing the m-theme here % Costumizing the m-theme here
\setbeamertemplate{footline}[text line]{% \setbeamertemplate{footline}[text line]{%
@@ -33,8 +34,8 @@
% End Costumizing % End Costumizing
\usepackage{tikz}
\usetikzlibrary{backgrounds}
\usepackage[utf8]{inputenc} \usepackage[utf8]{inputenc}
\usepackage{mathptmx} \usepackage{mathptmx}
@@ -109,13 +110,31 @@
\begin{document} \begin{document}
\maketitle \maketitle
%\frame{\tableofcontents[currentsection]} %\frame{\tableofcontents[currentsection]}
\frame{\tableofcontents} %\frametitle{Agenda}
%\frame{\tableofcontents}
\begin{frame}
\frametitle{Agenda}
\tableofcontents
\end{frame}
\section{Overview} \section{Overview}
% set background
\setbeamertemplate{background}{
%\begin{tikzpicture}%
% %\coordinate (Origin) at (0,0);
% %\draw[fill=blue!10] (0,1) circle (1cm);%
% %\draw[fill=red!10] (3,1) circle (1cm);%
% \begin{scope} \fill[white!80!black] (0.0, 0.0) rectangle (6.5, 8.4); \end{scope}
% \begin{scope} \fill[white!60!black] (6.5, 3.8) rectangle (13.0, 0.0); \end{scope}
% \begin{scope} \fill[white!80!black] (6.5, 8.4) rectangle (13.0, 3.8); \end{scope}
% %\fill[red] (6.5, 4.0) rectangle (13.0, 8.4);
%\end{tikzpicture}%
\includegraphics[width=12.8cm]{gfx/sysbg.eps}
}
\begin{frame} \begin{frame}
\begin{tabular}{lcr} \begin{tabular}{lcr}
@@ -144,6 +163,9 @@
\end{frame} \end{frame}
% reset
\setbeamertemplate{background}{}
\section{System} \section{System}
\subsection{Recursive Density Estimation} \subsection{Recursive Density Estimation}
@@ -156,18 +178,18 @@
\overbrace{\qTurn \in \R}^{\text{heading}},\enskip{} \overbrace{\qTurn \in \R}^{\text{heading}},\enskip{}
\overbrace{\qBaro \in \R}^{\text{rel. pressure}} \overbrace{\qBaro \in \R}^{\text{rel. pressure}}
$ \\ $ \\
$\vec{q_0} = $ uniformly distributed $\vec{q}_0 = $ uniformly distributed, $\qBaro = 0$
\ispace \ispace
\item<2-> Observation\\ \item<2-> Observation\\
$\vec{o} = (\vec{\oWifi}, \vec{\oBeacons}, \oStep, \oTurn, \oBaro)$ $\vec{o} = (\vec{\oWifi}, \vec{\oBeacons}, \oStep, \oTurn, \oBaro)$
\ispace \ispace
\item<3-> \small$ \item<3-> \small$
\underbrace{ p(\vec{q_t}\mid \vec{o}_{1:t})}_{\text{estimation}} \underbrace{ p(\vec{q}_t\mid \vec{o}_{1:t})}_{\text{estimation}}
\propto % \propto %
\underbrace{ p(\vec{o_t} \mid \vec{q_t}) }_{\text{evaluation}}% \underbrace{ p(\vec{o}_t \mid \vec{q}_t) }_{\text{evaluation}}%
\int \int
\underbrace{ p(\vec{q_t} \mid \vec{q_{t-1}}, \vec{o_{t-1}}) }_{\text{transition}}% \underbrace{ p(\vec{q}_t \mid \vec{q}_{t-1}, \vec{o}_{t-1}) }_{\text{transition}}%
\underbrace{ p(\vec{q_{t-1}} \mid \vec{o}_{1:t-1})}_{\text{recursion}}% \underbrace{ p(\vec{q}_{t-1} \mid \vec{o}_{1:t-1})}_{\text{recursion}}%
d\vec{q}_{t-1}% d\vec{q}_{t-1}%
$ $
\end{itemize} \end{itemize}
@@ -230,12 +252,20 @@
\frametitle{Observation - Wi-Fi/iBeacons} \frametitle{Observation - Wi-Fi/iBeacons}
\begin{itemize} \begin{itemize}
%\only<1>{
\item<1-> \item<1->
$p(\vec{o}_t \mid \vec{q}_t)_\text{wifi}=$ $p(\vec{o}_t \mid \vec{q}_t)_\text{wifi}=$
$p(\vec{\oWifi} \mid \vec{q}_t) = \prod_{\oWifi} \NDist(s_i \mid P_r(d_i, \Delta f_i), \sigma_{\text{wifi}}^2)$,\\ $p(\vec{\oWifi} \mid \vec{q}_t) = \prod_{\oWifi} \NDist(s_i \mid \overbrace{P_r(d_i, \Delta f_i)}^\text{model prediction}, \sigma_{\text{wifi}}^2)$,\\
\ispace \ispace
\only<1>{%
\small{\textit{probability to measure all currently received signal-strengths $\vec{\oWifi}$ at a location $\vec{q}_t$, by comparing them with corresponding estimations from a prediction model}}%
%\vspace{2.9cm}%
}
\item<2-> 3D signal strength prediction\\\ispace %}
\item<2->
3D signal strength prediction\\\ispace
$ $
P_r(d,\Delta f) = P_r(d,\Delta f) =
\underbrace{P_0}_{\text{reference}}\enskip \underbrace{P_0}_{\text{reference}}\enskip
@@ -249,10 +279,15 @@
% \underbrace{\lambda \approx -8}_{\text{attenuation per floor}} % \underbrace{\lambda \approx -8}_{\text{attenuation per floor}}
%$ %$
%\ispace %\ispace
\only<3>{ \includegraphics[width = 0.4\textwidth]{gfx/wifi1.png} }% \newline
\only<4->{ \includegraphics[width = 0.4\textwidth]{gfx/wifi2.png} }% \raisebox{5.0cm}{
\only<5>{ \includegraphics[width = 0.4\textwidth]{gfx/wifi3.png} }% %\only<2>{ \vspace{4.0cm} }
\only<6->{ \includegraphics[width = 0.4\textwidth]{gfx/wifi4.png} }% \only<3>{ \includegraphics[width = 0.35\textwidth]{gfx/wifi1.png} }%
\only<4->{ \includegraphics[width = 0.35\textwidth]{gfx/wifi2.png} }%
\only<5>{ \includegraphics[width = 0.35\textwidth]{gfx/wifi3.png} }%
\only<6->{ \includegraphics[width = 0.35\textwidth]{gfx/wifi4.png} }%
}
%\vspace{6mm}
\end{itemize} \end{itemize}
\end{frame} \end{frame}
@@ -261,10 +296,14 @@
\begin{frame} \begin{frame}
\frametitle{Observation - Barometer} \frametitle{Observation - Barometer}
\begin{itemize} \begin{itemize}
\item<1-> $p(\vec{o}_t \mid \vec{q}_t)_{\text{baro}} = $ \item<1->
$\NDist(o_t^{\oBaro} \mid q_t^{\qBaro}, \sigma_{\text{baro}}^2)$ $p(\vec{o}_t \mid \vec{q}_t)_{\text{baro}} = $
$\NDist(o_t^{\oBaro} \mid q_t^{\qBaro}, \sigma_{\text{baro}}^2)$\\
\ispace \ispace
\item<2-> each transition performs a relative pressure prediction:\\ \small{\textit{probability to measure the pressure $o_t^{\oBaro}$ (relative to the start) at a location $\vec{q}_t$}, by comparing it with the corresponding prediction}
\item<2->
each transition performs a relative pressure prediction:\\
\ispace \ispace
$q_t^{\qBaro} = q_{t-1}^{\qBaro} + \Delta z \cdot b$, \enskip $q_t^{\qBaro} = q_{t-1}^{\qBaro} + \Delta z \cdot b$, \enskip
$\underbrace{\Delta z = q_{t-1}^z - q_{t}^z}_{\text{height change}}$, \enskip $\underbrace{\Delta z = q_{t-1}^z - q_{t}^z}_{\text{height change}}$, \enskip
@@ -339,7 +378,7 @@
\begin{frame} \begin{frame}
\frametitle{Transition - Random Walk} \frametitle{Transition - Random Walk}
\begin{minipage}{0.49\textwidth} \begin{minipage}{0.49\textwidth}
$p(\vec{q}_t \mid \vec{q}_{t-1})$: $p(\vec{q}_t \mid \vec{q}_{t-1}, \vec{o}_{t-1})$:
\begin{enumerate} \begin{enumerate}
\item get node $\vec{q}_{t-1}$ belongs to \item get node $\vec{q}_{t-1}$ belongs to
\item draw distance $\leDistance$ to walk%\\ \textit{depends on the number of detected steps} \item draw distance $\leDistance$ to walk%\\ \textit{depends on the number of detected steps}
@@ -501,4 +540,17 @@
\end{frame} \end{frame}
\section{Summary}
\begin{frame}
\frametitle{Summary}
\begin{itemize}
\item Wi-Fi, iBeacons and a barometer infer the probability for a pedestrian to reside at a location
\item step- and turn detection serve as prediction for the pedestrian's movement
\item incorporating the building's floorplan by using a graph allows only valid movements
\item weighting the graph's nodes allows a realistic shortest-path calculation
\item adding prior knowledge like the pedestrian's destination further enhances the movement prediction
\end{itemize}
\end{frame}
\end{document} \end{document}

View File

@@ -1,8 +1,10 @@
#!/bin/bash #!/bin/bash
# latex binaries # latex binaries
PATH=$PATH:/mnt/usb/latex/bin/x86_64-linux/ #PATH=$PATH:/mnt/usb/latex/bin/x86_64-linux/
PATH=$PATH:/mnt/data/texlive/bin/x86_64-linux/
pdflatex main.tex
pdflatex main.tex pdflatex main.tex
evince main.pdf evince main.pdf

View File

@@ -0,0 +1,123 @@
%%
%% This is file `pgfplotsthemetol.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% pgfplotsthemetol.dtx (with options: `package')
%% ---------------------------------------------------------------------------
%% Copyright 2015 Matthias Vogelgesang and the LaTeX community. A full list of
%% contributors can be found at
%%
%% https://github.com/matze/mtheme/graphs/contributors
%%
%% and the original template was based on the HSRM theme by Benjamin Weiss.
%%
%% This work is licensed under a Creative Commons Attribution-ShareAlike 4.0
%% International License (https://creativecommons.org/licenses/by-sa/4.0/).
%% ---------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{pgfplotsthemetol}
[2016/03/14 PGFplots colors based on Paul Tol's SRON technical note]
\definecolor{TolDarkPurple}{HTML}{332288}
\definecolor{TolDarkBlue}{HTML}{6699CC}
\definecolor{TolLightBlue}{HTML}{88CCEE}
\definecolor{TolLightGreen}{HTML}{44AA99}
\definecolor{TolDarkGreen}{HTML}{117733}
\definecolor{TolDarkBrown}{HTML}{999933}
\definecolor{TolLightBrown}{HTML}{DDCC77}
\definecolor{TolDarkRed}{HTML}{661100}
\definecolor{TolLightRed}{HTML}{CC6677}
\definecolor{TolLightPink}{HTML}{AA4466}
\definecolor{TolDarkPink}{HTML}{882255}
\definecolor{TolLightPurple}{HTML}{AA4499}
\pgfplotscreateplotcyclelist{mbarplot cycle}{%
{draw=TolDarkBlue, fill=TolDarkBlue!70},
{draw=TolLightBrown, fill=TolLightBrown!70},
{draw=TolLightGreen, fill=TolLightGreen!70},
{draw=TolDarkPink, fill=TolDarkPink!70},
{draw=TolDarkPurple, fill=TolDarkPurple!70},
{draw=TolDarkRed, fill=TolDarkRed!70},
{draw=TolDarkBrown, fill=TolDarkBrown!70},
{draw=TolLightRed, fill=TolLightRed!70},
{draw=TolLightPink, fill=TolLightPink!70},
{draw=TolLightPurple, fill=TolLightPurple!70},
{draw=TolLightBlue, fill=TolLightBlue!70},
{draw=TolDarkGreen, fill=TolDarkGreen!70},
}
\pgfplotscreateplotcyclelist{mlineplot cycle}{%
{TolDarkBlue, mark=*, mark size=1.5pt},
{TolLightBrown, mark=square*, mark size=1.3pt},
{TolLightGreen, mark=triangle*, mark size=1.5pt},
{TolDarkBrown, mark=diamond*, mark size=1.5pt},
}
\pgfplotsset{
compat=1.9,
mlineplot/.style={
mbaseplot,
xmajorgrids=true,
ymajorgrids=true,
major grid style={dotted},
axis x line=bottom,
axis y line=left,
legend style={
cells={anchor=west},
draw=none
},
cycle list name=mlineplot cycle,
},
mbarplot base/.style={
mbaseplot,
bar width=6pt,
axis y line*=none,
},
mbarplot/.style={
mbarplot base,
ybar,
xmajorgrids=false,
ymajorgrids=true,
area legend,
legend image code/.code={%
\draw[#1] (0cm,-0.1cm) rectangle (0.15cm,0.1cm);
},
cycle list name=mbarplot cycle,
},
horizontal mbarplot/.style={
mbarplot base,
xmajorgrids=true,
ymajorgrids=false,
xbar stacked,
area legend,
legend image code/.code={%
\draw[#1] (0cm,-0.1cm) rectangle (0.15cm,0.1cm);
},
cycle list name=mbarplot cycle,
},
mbaseplot/.style={
legend style={
draw=none,
fill=none,
cells={anchor=west},
},
x tick label style={
font=\footnotesize
},
y tick label style={
font=\footnotesize
},
legend style={
font=\footnotesize
},
major grid style={
dotted,
},
axis x line*=bottom,
},
disable thousands separator/.style={
/pgf/number format/.cd,
1000 sep={}
},
}
\endinput
%%
%% End of file `pgfplotsthemetol.sty'.