diff --git a/presentation/beamercolorthememetropolis.sty b/presentation/beamercolorthememetropolis.sty old mode 100755 new mode 100644 index 026c5fe..6b23f8d --- a/presentation/beamercolorthememetropolis.sty +++ b/presentation/beamercolorthememetropolis.sty @@ -17,22 +17,21 @@ %% International License (https://creativecommons.org/licenses/by-sa/4.0/). %% --------------------------------------------------------------------------- \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{beamercolorthememetropolis} - [2015/06/12 A Modern Beamer Color Theme] +\ProvidesPackage{beamercolorthememetropolis}[2016/03/14 Metropolis color theme] \RequirePackage{pgfopts} \pgfkeys{ /metropolis/color/block/.cd, .is choice, - transparent/.code=\@metropolis@block@transparent, - fill/.code=\@metropolis@block@fill, + transparent/.code=\metropolis@block@transparent, + fill/.code=\metropolis@block@fill, } \pgfkeys{ /metropolis/color/background/.cd, .is choice, - dark/.code=\@metropolis@colors@dark, - light/.code=\@metropolis@colors@light, + dark/.code=\metropolis@colors@dark, + light/.code=\metropolis@colors@light, } -\newcommand{\@metropolis@color@setdefaults}{ +\newcommand{\metropolis@color@setdefaults}{ \pgfkeys{/metropolis/color/.cd, background=light, block=transparent, @@ -42,13 +41,13 @@ \definecolor{mDarkTeal}{HTML}{23373b} \definecolor{mLightBrown}{HTML}{EB811B} \definecolor{mLightGreen}{HTML}{14B03D} -\newcommand{\@metropolis@colors@dark}{ +\newcommand{\metropolis@colors@dark}{ \setbeamercolor{normal text}{% fg=black!2, bg=mDarkTeal } } -\newcommand{\@metropolis@colors@light}{ +\newcommand{\metropolis@colors@light}{ \setbeamercolor{normal text}{% fg=mDarkTeal, bg=black!2 @@ -60,13 +59,11 @@ \setbeamercolor{example text}{% fg=mLightGreen } -\setbeamercolor{titlelike}{% - use=normal text, - parent=normal text -} -\setbeamercolor{structure}{% - fg=normal text.fg -} +\setbeamercolor{titlelike}{use=normal text, parent=normal text} +\setbeamercolor{author}{use=normal text, parent=normal text} +\setbeamercolor{date}{use=normal text, parent=normal text} +\setbeamercolor{institute}{use=normal text, parent=normal text} +\setbeamercolor{structure}{use=normal text, fg=normal text.fg} \setbeamercolor{palette primary}{% use=normal text, fg=normal text.bg, @@ -79,7 +76,7 @@ \setbeamercolor{progress bar}{% use=alerted text, fg=alerted text.fg, - bg=normal text.bg!50!normal text.fg + bg=alerted text.fg!50!black!30 } \setbeamercolor{title separator}{ use=progress bar, @@ -93,15 +90,26 @@ use=progress bar, parent=progress bar } -\newcommand{\@metropolis@block@transparent}{ - \setbeamercolor{block title}{use=normal text, parent=normal text} +\newcommand{\metropolis@block@transparent}{ + \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}{% use=normal text, fg=normal text.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}{% use={block title, alerted text}, @@ -115,13 +123,9 @@ } \setbeamercolor{block body alerted}{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 mark}{fg=.} -\@metropolis@color@setdefaults +\metropolis@color@setdefaults \ProcessPgfPackageOptions{/metropolis/color} \mode \endinput diff --git a/presentation/beamerfontthememetropolis.sty b/presentation/beamerfontthememetropolis.sty old mode 100755 new mode 100644 index 6abc534..77fdfc1 --- a/presentation/beamerfontthememetropolis.sty +++ b/presentation/beamerfontthememetropolis.sty @@ -17,40 +17,273 @@ %% International License (https://creativecommons.org/licenses/by-sa/4.0/). %% --------------------------------------------------------------------------- \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{beamerfontthememetropolis} - [2015/06/12 A Modern Beamer Font Theme] -\RequirePackage[no-math]{fontspec} -\defaultfontfeatures{Mapping=tex-text} -\setsansfont[BoldItalicFont={Fira Sans Italic},% - ItalicFont={Fira Sans Light Italic},% - BoldFont={Fira Sans}]{Fira Sans Light} -\setmonofont{Fira Mono} -\newfontfamily\ExtraLight{Fira Sans ExtraLight} -\newfontfamily\Light{Fira Sans Light} -\newfontfamily\Book{Fira Sans} -\newfontfamily\Medium{Fira Sans Medium} -\AtBeginEnvironment{tabular}{% - \setsansfont[BoldFont={Fira Sans},% - Numbers={Monospaced}]{Fira Sans Light}% - } -\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} +\ProvidesPackage{beamerfontthememetropolis}[2016/03/14 Metropolis font theme] +\RequirePackage{etoolbox} +\RequirePackage{ifxetex} +\RequirePackage{ifluatex} +\RequirePackage{pgfopts} +\ifboolexpr{bool {xetex} or bool {luatex}}{ + \RequirePackage[no-math]{fontspec} + \newcounter{fontsnotfound} + \newcommand{\checkfont}[1]{% + \suppressfontnotfounderror=1% + \font\x = "#1" at 10pt + \selectfont + \ifx\x\nullfont% + \stepcounter{fontsnotfound}% + \fi% + \suppressfontnotfounderror=0% + } + \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 %% %% End of file `beamerfontthememetropolis.sty'. diff --git a/presentation/beamerinnerthememetropolis.sty b/presentation/beamerinnerthememetropolis.sty old mode 100755 new mode 100644 index 7d9974e..c4f364a --- a/presentation/beamerinnerthememetropolis.sty +++ b/presentation/beamerinnerthememetropolis.sty @@ -17,125 +17,46 @@ %% International License (https://creativecommons.org/licenses/by-sa/4.0/). %% --------------------------------------------------------------------------- \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{beamerinnerthememetropolis} - [2015/06/12 A Modern Beamer Theme] +\ProvidesPackage{beamerinnerthememetropolis}[2016/03/14 Metropolis inner theme] \RequirePackage{etoolbox} +\RequirePackage{keyval} \RequirePackage{calc} \RequirePackage{pgfopts} \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{ /metropolis/inner/sectionpage/.cd, .is choice, - none/.code=\@metropolis@sectionpage@none, - progressbar/.code=\@metropolis@sectionpage@progressbar, + none/.code=\metropolis@disablesectionpage, + 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, sectionpage=progressbar, - block=transparent, - titleformat=lowercase, - sectiontitleformat=lowercase, + subsectionpage=none } } -\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}{ \begin{minipage}[b][\paperheight]{\textwidth} - \ifx\inserttitlegraphic\@empty\else{% - \vbox to 0pt { - \vspace*{2em} - \usebeamercolor[fg]{titlegraphic}% - \inserttitlegraphic% - }% - \nointerlineskip% - } - \fi + \ifx\inserttitlegraphic\@empty\else\usebeamertemplate*{title graphic}\fi \vfill% - \ifx\inserttitle\@empty\else{{% - \raggedright% - \linespread{1.0}% - \usebeamerfont{title}% - \usebeamercolor[fg]{title}% - \@metropolis@titleformat{\inserttitle}% - \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 + \ifx\inserttitle\@empty\else\usebeamertemplate*{title}\fi + \ifx\insertsubtitle\@empty\else\usebeamertemplate*{subtitle}\fi + \usebeamertemplate*{title separator} + \ifx\beamer@shortauthor\@empty\else\usebeamertemplate*{author}\fi + \ifx\insertdate\@empty\else\usebeamertemplate*{date}\fi + \ifx\insertinstitute\@empty\else\usebeamertemplate*{institute}\fi \vfill \vspace*{1mm} \end{minipage} @@ -144,34 +65,110 @@ \ifbeamer@inframe \titlepage \else - \frame[plain]{\titlepage} + \frame[plain,noframenumbering]{\titlepage} \fi } \def\titlepage{% \usebeamertemplate{title page} } -\newcommand{\@metropolis@sectionpage@none}{ - \AtBeginSection{ - % intenionally empty - } +\setbeamertemplate{title graphic}{ + \vbox to 0pt { + \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}{ \centering \begin{minipage}{22em} + \raggedright \usebeamercolor[fg]{section title} \usebeamerfont{section title} \insertsectionhead\\[-1ex] \usebeamertemplate*{progress bar in section page} + \par + \ifx\insertsubsectionhead\@empty\else% + \usebeamercolor[fg]{subsection title}% + \usebeamerfont{subsection title}% + \insertsubsectionhead + \fi \end{minipage} \par + \vspace{\baselineskip} } -\newcommand{\@metropolis@sectionpage@progressbar}{ - \setbeamertemplate{section page}[progressbar] +\newcommand{\metropolis@disablesectionpage}{ + \AtBeginSection{ + % intentionally empty + } +} +\newcommand{\metropolis@enablesectionpage}{ \AtBeginSection{ \ifbeamer@inframe \sectionpage \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 } } @@ -181,75 +178,56 @@ \textwidth * \ratio{\insertframenumber pt}{\inserttotalframenumber pt}% }% \begin{tikzpicture} - \draw[bg, fill=bg] (0,0) rectangle (\textwidth, 0.4pt); - \draw[fg, fill=fg] (0,0) rectangle (\metropolis@progressonsectionpage, 0.4pt); + \fill[bg] (0,0) rectangle (\textwidth, 0.4pt); + \fill[fg] (0,0) rectangle (\metropolis@progressonsectionpage, 0.4pt); \end{tikzpicture}% } \def\inserttotalframenumber{100} -\newlength{\@metropolis@blockskip} -\setbeamertemplate{block begin}{% - \vspace*{1ex} - \begin{beamercolorbox}[% - ht=2.4ex, - dp=1ex, - leftskip=\@metropolis@blockskip, - rightskip=\@metropolis@blockskip]{block title} - \usebeamerfont*{block title}\insertblocktitle% +\newlength{\metropolis@blocksep} +\newlength{\metropolis@blockadjust} +\setlength{\metropolis@blocksep}{0.75ex} +\setlength{\metropolis@blockadjust}{0.25ex} +\providecommand{\metropolis@strut}{% + \vphantom{ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz()}% +} +\newcommand{\metropolis@block}[1]{ + \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}% - \vspace*{-1pt} - \usebeamerfont{block body}% - \begin{beamercolorbox}[% - dp=1ex, - leftskip=\@metropolis@blockskip, - rightskip=\@metropolis@blockskip, - vmode]{block body}% -} -\setbeamertemplate{block end}{% - \end{beamercolorbox} - \vspace*{0.2ex} -} -\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} + \nointerlineskip% + \ifbeamercolorempty[bg]{block body#1}{% + \begin{beamercolorbox}[vmode]{block body#1}}{ + \ifbeamercolorempty[bg]{block body}{% + \begin{beamercolorbox}[vmode]{block body#1}% + }{% + \begin{beamercolorbox}[sep=\metropolis@blocksep, vmode]{block body#1}% + \vspace{-\metropolis@parskip} + }}% + \usebeamerfont{block body#1}% + \setlength{\parskip}{\metropolis@parskip}% } +\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{caption label separator}{: } \setbeamertemplate{caption}[numbered] @@ -258,7 +236,9 @@ \raggedright \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} \define@key{beamerframe}{c}[true]{% centered \beamer@frametopskip=0pt plus 1fill\relax% @@ -267,7 +247,34 @@ \beamer@framebottomskipautobreak=0pt plus .6\paperheight\relax% \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} \endinput %% diff --git a/presentation/beamerouterthememetropolis.sty b/presentation/beamerouterthememetropolis.sty old mode 100755 new mode 100644 index a1ebdff..e1b90ab --- a/presentation/beamerouterthememetropolis.sty +++ b/presentation/beamerouterthememetropolis.sty @@ -17,8 +17,7 @@ %% International License (https://creativecommons.org/licenses/by-sa/4.0/). %% --------------------------------------------------------------------------- \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{beamerouterthememetropolis} - [2015/06/12 A Modern Beamer Theme] +\ProvidesPackage{beamerouterthememetropolis}[2016/03/14 Metropolis outer theme] \RequirePackage{etoolbox} \RequirePackage{calc} \RequirePackage{pgfopts} @@ -38,45 +37,30 @@ \setbeamertemplate{footline}[plain] }, 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} - \addtobeamertemplate{frametitle}{}{\usebeamertemplate*{progress bar in head/foot}} + \addtobeamertemplate{frametitle}{}{% + \usebeamertemplate*{progress bar in head/foot} + } }, 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, numbering=counter, progressbar=none, - frametitleformat=lowercase, } } \setbeamertemplate{navigation symbols}{} +\defbeamertemplate{frame footer}{none}{} +\defbeamertemplate{frame footer}{custom}[1]{ #1 } \defbeamertemplate{frame numbering}{none}{} \defbeamertemplate{frame numbering}{counter}{\insertframenumber} \defbeamertemplate{frame numbering}{fraction}{ @@ -85,33 +69,36 @@ \defbeamertemplate{headline}{plain}{} \defbeamertemplate{footline}{plain}{% \begin{beamercolorbox}[wd=\textwidth, sep=3ex]{footline}% - \hfill% \usebeamerfont{page number in head/foot}% + \usebeamertemplate*{frame footer} + \hfill% \usebeamertemplate*{frame numbering} \end{beamercolorbox}% } -\def\@metropolis@frametitleformat#1{#1} -\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{beamerouterthememetropolis}{Patching frame title failed.}} -\newlength{\@metropolis@frametitlestrut} +\newlength{\metropolis@frametitle@padding} +\setlength{\metropolis@frametitle@padding}{2.2ex} +\newcommand{\metropolis@frametitlestrut@start}{ + \rule{0pt}{\metropolis@frametitle@padding +% + \totalheightof{% + \ifcsdef{metropolis@frametitleformat}{\metropolis@frametitleformat X}{X}% + }% + }% +} +\newcommand{\metropolis@frametitlestrut@end}{ + \rule[-\metropolis@frametitle@padding]{0pt}{\metropolis@frametitle@padding} +} \defbeamertemplate{frametitle}{plain}{% \nointerlineskip% \begin{beamercolorbox}[% wd=\paperwidth,% - sep=1.5ex,% + sep=0pt,% + leftskip=\metropolis@frametitle@padding,% + rightskip=\metropolis@frametitle@padding,% ]{frametitle}% - \@metropolis@frametitlestrut\insertframetitle\@metropolis@frametitlestrut% + \metropolis@frametitlestrut@start% + \insertframetitle% + \nolinebreak% + \metropolis@frametitlestrut@end% \end{beamercolorbox}% } \newlength{\metropolis@progressinheadfoot} @@ -122,12 +109,20 @@ }% \begin{beamercolorbox}[wd=\paperwidth]{progress bar in head/foot} \begin{tikzpicture} - \draw[bg, fill=bg] (0,0) rectangle (\paperwidth, 0.4pt); - \draw[fg, fill=fg] (0,0) rectangle (\metropolis@progressinheadfoot, 0.4pt); + \fill[bg] (0,0) rectangle (\paperwidth, 0.4pt); + \fill[fg] (0,0) rectangle (\metropolis@progressinheadfoot, 0.4pt); \end{tikzpicture}% \end{beamercolorbox} } -\@metropolis@outer@setdefaults +\AtBeginDocument{% + \apptocmd{\appendix}{% + \pgfkeys{% + /metropolis/outer/.cd, + numbering=none, + progressbar=none} + }{}{} +} +\metropolis@outer@setdefaults \ProcessPgfPackageOptions{/metropolis/outer} \endinput %% diff --git a/presentation/beamerthemem.sty b/presentation/beamerthememetropolis.sty old mode 100755 new mode 100644 similarity index 50% rename from presentation/beamerthemem.sty rename to presentation/beamerthememetropolis.sty index b8657c6..740cb88 --- a/presentation/beamerthemem.sty +++ b/presentation/beamerthememetropolis.sty @@ -1,10 +1,10 @@ %% -%% This is file `beamerthemem.sty', +%% This is file `beamerthememetropolis.sty', %% generated with the docstrip utility. %% %% 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 %% contributors can be found at @@ -17,41 +17,51 @@ %% International License (https://creativecommons.org/licenses/by-sa/4.0/). %% --------------------------------------------------------------------------- \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{beamerthemem} - [2015/06/12 A Modern Beamer Theme] +\ProvidesPackage{beamerthememetropolis} + [2016/03/14 v1.1 Metropolis Beamer theme] \RequirePackage{etoolbox} \RequirePackage{pgfopts} -\RequirePackage{ifxetex} -\RequirePackage{ifluatex} -\newcommand{\metroset}[1]{\pgfkeys{/metropolis/.cd,#1}} \pgfkeys{/metropolis/.cd, .search also={ /metropolis/inner, /metropolis/outer, /metropolis/color, - }, - block/.code=\pgfkeysalso{ - inner/block=#1, - color/block=#1, - }, + /metropolis/font, + } } \pgfkeys{ - /metropolis/plaintitleformat/.cd, + /metropolis/titleformat plain/.cd, .is choice, - regular/.code=\renewcommand{\@metropolis@plaintitleformat}{#1}, - lowercase/.code={% - \renewcommand{\@metropolis@plaintitleformat}{\MakeLowercase{#1}} + regular/.code={% + \let\metropolis@plaintitleformat\@empty% + \setbeamerfont{standout}{shape=\normalfont}% }, - uppercase/.code={% - \renewcommand{\@metropolis@plaintitleformat}{\MakeUppercase{#1}} + smallcaps/.code={% + \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{ - /metropolis/everytitleformat/.code=\pgfkeysalso{ - inner/titleformat=#1, - inner/sectiontitleformat=#1, - outer/frametitleformat=#1, - plaintitleformat=#1, + /metropolis/titleformat/.code=\pgfkeysalso{ + font/titleformat title=#1, + font/titleformat subtitle=#1, + font/titleformat section=#1, + font/titleformat frame=#1, + titleformat plain=#1, } } \pgfkeys{/metropolis/.cd, @@ -62,45 +72,34 @@ darkcolors/.code=\pgfkeysalso{color/background=dark}, blockbg/.code=\pgfkeysalso{color/block=fill, inner/block=fill}, } -\newcommand{\@metropolis@setdefaults}{ +\newcommand{\metropolis@setdefaults}{ \pgfkeys{/metropolis/.cd, - plaintitleformat=lowercase, + titleformat plain=regular, } } \useinnertheme{metropolis} \useoutertheme{metropolis} \usecolortheme{metropolis} -\ifboolexpr{bool {xetex} or bool {luatex}}{ - \usefonttheme{metropolis} -}{ - \PackageWarning{beamerthemem}{% - You need to compile with XeLaTeX or LuaLaTeX to use the Fira fonts. - } -} +\usefonttheme{metropolis} \AtEndPreamble{% \@ifpackageloaded{pgfplots}{% \RequirePackage{pgfplotsthemetol} }{} } -\def\@metropolis@plaintitleformat#1{#1} +\newcommand{\metroset}[1]{\pgfkeys{/metropolis/.cd,#1}} +\def\metropolis@plaintitleformat#1{#1} \newcommand{\plain}[2][]{% - \begingroup - \setbeamercolor{background canvas}{ - use=palette primary, - parent=palette primary - } - \begin{frame}[c]{#1} - \begin{center} - \usebeamercolor[fg]{palette primary} - \usebeamerfont{section title} - \@metropolis@plaintitleformat{#2} - \end{center} - \end{frame} - \endgroup + \PackageWarning{beamerthememetropolis}{% + The syntax `\plain' may be deprecated in a future version of Metropolis. + Please use a frame with [standout] instead. + } + \begin{frame}[standout]{#1} + \metropolis@plaintitleformat{#2} + \end{frame} } \newcommand{\mreducelistspacing}{\vspace{-\topsep}} -\@metropolis@setdefaults +\metropolis@setdefaults \ProcessPgfOptions{/metropolis} \endinput %% -%% End of file `beamerthemem.sty'. +%% End of file `beamerthememetropolis.sty'. diff --git a/presentation/gfx/sysbg.eps b/presentation/gfx/sysbg.eps new file mode 100644 index 0000000..522994c --- /dev/null +++ b/presentation/gfx/sysbg.eps @@ -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 diff --git a/presentation/gfx/sysbg.svg b/presentation/gfx/sysbg.svg new file mode 100644 index 0000000..5af632d --- /dev/null +++ b/presentation/gfx/sysbg.svg @@ -0,0 +1,97 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/presentation/gfx/wifi.gp b/presentation/gfx/wifi.gp index aec5875..670ccc5 100644 --- a/presentation/gfx/wifi.gp +++ b/presentation/gfx/wifi.gp @@ -1,6 +1,6 @@ reset; -set terminal qt size 500,500 +set terminal qt size 600,500 po = -40; gamma = 1.4; @@ -26,8 +26,9 @@ uy = 5; #set colorbox user origin screen 0.9,0.5 set origin -0.125,-0.125 -set size 1.25,1.25 -unset colorbox; +set size 1.18, 1.18 +#unset colorbox; +unset cbtics; set xrange[0:30]; @@ -54,6 +55,8 @@ set terminal pngcairo size 512,512 # 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" splot getRSSI(x,y) with pm3d notitle; @@ -68,9 +71,11 @@ splot getRSSI2(x,y) with pm3d notitle; unset cbrange; set palette rgb 33,13,10; -unset colorbox; +#unset colorbox; # 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" unset arrow 82; unset arrow 81; diff --git a/presentation/gfx/wifi1.png b/presentation/gfx/wifi1.png index 3be9d55..d5d3681 100755 Binary files a/presentation/gfx/wifi1.png and b/presentation/gfx/wifi1.png differ diff --git a/presentation/gfx/wifi2.png b/presentation/gfx/wifi2.png index 17eb68a..3355b9f 100755 Binary files a/presentation/gfx/wifi2.png and b/presentation/gfx/wifi2.png differ diff --git a/presentation/gfx/wifi3.png b/presentation/gfx/wifi3.png index 17be23b..82a309f 100755 Binary files a/presentation/gfx/wifi3.png and b/presentation/gfx/wifi3.png differ diff --git a/presentation/gfx/wifi4.png b/presentation/gfx/wifi4.png index a27e40e..898366a 100755 Binary files a/presentation/gfx/wifi4.png and b/presentation/gfx/wifi4.png differ diff --git a/presentation/main.tex b/presentation/main.tex index 45e1f43..158ce61 100755 --- a/presentation/main.tex +++ b/presentation/main.tex @@ -7,7 +7,8 @@ %\usetheme{m} -\usetheme[everytitleformat=regular]{m} +%\usetheme[everytitleformat=regular]{m} +\usetheme[subsectionpage=progressbar]{metropolis} % Costumizing the m-theme here \setbeamertemplate{footline}[text line]{% @@ -33,8 +34,8 @@ % End Costumizing - - +\usepackage{tikz} +\usetikzlibrary{backgrounds} \usepackage[utf8]{inputenc} \usepackage{mathptmx} @@ -109,15 +110,33 @@ \begin{document} \maketitle - - %\frame{\tableofcontents[currentsection]} - \frame{\tableofcontents} - + %\frametitle{Agenda} + %\frame{\tableofcontents} + \begin{frame} + \frametitle{Agenda} + \tableofcontents + \end{frame} + \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{tabular}{lcr} % icons: https://thenounproject.com/search/?q=graph @@ -144,6 +163,9 @@ \end{frame} + % reset + \setbeamertemplate{background}{} + \section{System} \subsection{Recursive Density Estimation} @@ -156,18 +178,18 @@ \overbrace{\qTurn \in \R}^{\text{heading}},\enskip{} \overbrace{\qBaro \in \R}^{\text{rel. pressure}} $ \\ - $\vec{q_0} = $ uniformly distributed + $\vec{q}_0 = $ uniformly distributed, $\qBaro = 0$ \ispace \item<2-> Observation\\ $\vec{o} = (\vec{\oWifi}, \vec{\oBeacons}, \oStep, \oTurn, \oBaro)$ \ispace \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 % - \underbrace{ p(\vec{o_t} \mid \vec{q_t}) }_{\text{evaluation}}% + \underbrace{ p(\vec{o}_t \mid \vec{q}_t) }_{\text{evaluation}}% \int - \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 \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}}% d\vec{q}_{t-1}% $ \end{itemize} @@ -230,12 +252,20 @@ \frametitle{Observation - Wi-Fi/iBeacons} \begin{itemize} - \item<1-> - $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)$,\\ - \ispace - - \item<2-> 3D signal strength prediction\\\ispace + %\only<1>{ + \item<1-> + $p(\vec{o}_t \mid \vec{q}_t)_\text{wifi}=$ + $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 + \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 $ P_r(d,\Delta f) = \underbrace{P_0}_{\text{reference}}\enskip @@ -249,10 +279,15 @@ % \underbrace{\lambda \approx -8}_{\text{attenuation per floor}} %$ %\ispace - \only<3>{ \includegraphics[width = 0.4\textwidth]{gfx/wifi1.png} }% - \only<4->{ \includegraphics[width = 0.4\textwidth]{gfx/wifi2.png} }% - \only<5>{ \includegraphics[width = 0.4\textwidth]{gfx/wifi3.png} }% - \only<6->{ \includegraphics[width = 0.4\textwidth]{gfx/wifi4.png} }% + \newline + \raisebox{5.0cm}{ + %\only<2>{ \vspace{4.0cm} } + \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{frame} @@ -261,14 +296,18 @@ \begin{frame} \frametitle{Observation - Barometer} \begin{itemize} - \item<1-> $p(\vec{o}_t \mid \vec{q}_t)_{\text{baro}} = $ - $\NDist(o_t^{\oBaro} \mid q_t^{\qBaro}, \sigma_{\text{baro}}^2)$ - \ispace - \item<2-> each transition performs a relative pressure prediction:\\ - \ispace - $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{b \in \R}_{\text{pressure change / meter}}$\\ + \item<1-> + $p(\vec{o}_t \mid \vec{q}_t)_{\text{baro}} = $ + $\NDist(o_t^{\oBaro} \mid q_t^{\qBaro}, \sigma_{\text{baro}}^2)$\\ + \ispace + \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 + $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{b \in \R}_{\text{pressure change / meter}}$\\ % \vspace{5mm} \begin{figure} @@ -339,7 +378,7 @@ \begin{frame} \frametitle{Transition - Random Walk} \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} \item get node $\vec{q}_{t-1}$ belongs to \item draw distance $\leDistance$ to walk%\\ \textit{depends on the number of detected steps} @@ -501,4 +540,17 @@ \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} diff --git a/presentation/make.sh b/presentation/make.sh index bdc1315..85e7a02 100755 --- a/presentation/make.sh +++ b/presentation/make.sh @@ -1,8 +1,10 @@ #!/bin/bash # 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 evince main.pdf diff --git a/presentation/pgfplotsthemetol.sty b/presentation/pgfplotsthemetol.sty new file mode 100644 index 0000000..9405e10 --- /dev/null +++ b/presentation/pgfplotsthemetol.sty @@ -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'.