% \iffalse meta-comment ------------------------------------------------------- % 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/). % ------------------------------------------------------------------------- \fi % \iffalse % \ProvidesFile{beamerthemem.dtx} %<*package> \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{beamerthemem} [2015/06/12 A Modern Beamer Theme] % % \documentclass{ltxdoc} % \usepackage{beamerthemem} % \begin{document} % \DocInput{beamerthemem.dtx} % \end{document} % \fi % \CheckSum{0} % \StopEventually{} % \iffalse %<*package> % ------------------------------------------------------------------------- \fi % \section{Implementation: \textsc{metropolis} main theme} % % The primary job of this package is to load the component sub-packages of the % \textsc{metropolis} theme and route the theme options accordingly. It also % provides some custom commands and environments for the user. % % % Options % % \begin{macrocode} \newif\if@useTitleProgressBar \@useTitleProgressBarfalse \DeclareOptionBeamer{usetitleprogressbar}{ \@useTitleProgressBartrue } % \end{macrocode} % % usetotalslideindicator % % \begin{macrocode} \newif\if@useTotalSlideIndicator \@useTotalSlideIndicatorfalse \DeclareOptionBeamer{usetotalslideindicator}{ \@useTotalSlideIndicatortrue } % \end{macrocode} % % noslidenumbers % % \begin{macrocode} \newif\if@noSlideNumbers \@noSlideNumbersfalse \DeclareOptionBeamer{noslidenumbers}{ \@noSlideNumberstrue } % \end{macrocode} % % nosectionslide % % \begin{macrocode} \newif\if@noSectionSlide \@noSectionSlidefalse \DeclareOptionBeamer{nosectionslide}{ \@noSectionSlidetrue } % \end{macrocode} % % nooffset % % \begin{macrocode} \newlength{\@mtheme@voffset} \setlength{\@mtheme@voffset}{2em} \DeclareOptionBeamer{nooffset}{ \setlength{\@mtheme@voffset}{0em} } % \end{macrocode} % % blockbg % % \begin{macrocode} \newif\if@beamer@metropolis@blockbg \@beamer@metropolis@blockbgfalse \DeclareOptionBeamer{blockbg}{ \@beamer@metropolis@blockbgtrue } % \end{macrocode} % % darkcolors % % \begin{macrocode} \DeclareOptionBeamer{darkcolors}{ \PassOptionsToPackage{darkcolors}{beamercolorthememetropolis}% } % \end{macrocode} % % Unknown option error handling % % \begin{macrocode} \DeclareOptionBeamer*{ \PackageWarning{beamerthemem}{Unknown option `\CurrentOption'}% } \ProcessOptionsBeamer % \end{macrocode} % % \subsection{Component sub-packages} % % Having processed the options, we can now load the component sub-packages of % the theme. % \begin{macrocode} \useinnertheme{metropolis} \useoutertheme{metropolis} \usecolortheme{metropolis} % \end{macrocode} % % The |fira| font theme, which depends on |fontspec|, is only loaded if the % document is being processed by Xe\LaTeX{} or Lua\LaTeX{}. % % \begin{macrocode} \RequirePackage{etoolbox} \RequirePackage{ifxetex,ifluatex} \ifboolexpr{bool {xetex} or bool {luatex}}{ \usefonttheme{metropolis} }{ \PackageWarning{beamerthemem}{% You need to compile with XeLaTeX or LuaLaTeX to use the Fira fonts. } } % \end{macrocode} % % The |tol| theme for |pgfplots| is only loaded if |pgfplots| is used. % % \begin{macrocode} \AtEndPreamble{% \@ifpackageloaded{pgfplots}{% \RequirePackage{pgfplotsthemetol} }{} } % \end{macrocode} % % \subsection{Custom commands} % % We define custom commands in this package as their proper usage may depend % on multiple sub-packages. % % \begin{macro}{\mthemetitleformat} % \begin{macro}{\mthemesectiontitleformat} % \begin{macro}{\mthemeframetitleformat} % \begin{macro}{\mthemeplaintitleformat} % Creates hooks to change the case format of the four different titles. % \begin{macrocode} \def\mthemetitleformat#1{\MakeLowercase{#1}} \def\mthemesectiontitleformat#1{\mthemetitleformat{#1}} \def\mthemeframetitleformat#1{\mthemetitleformat{#1}} \def\mthemeplaintitleformat#1{\mthemetitleformat{#1}} % \end{macrocode} % % To give users the option to |\MakeUppercase| or |\MakeLowercase| the % section title and frame title we need to patch the commands % |\sectionentry|, |\beamer@section| and |\beamer@@frametitle|. This % solution was suggested by Enrico Gregorio in an answer to % \href{http://tex.stackexchange.com/questions/112526/}{this StackExchange % question}. % % \begin{macrocode} \patchcmd{\sectionentry} {\def\insertsectionhead{#2}} {\def\insertsectionhead{\mthemesectiontitleformat{#2}}} {}{} \patchcmd{\beamer@section} {\def\insertsectionhead{\hyperlink{Navigation\the\c@page}{#1}}} {\def\insertsectionhead{\hyperlink{Navigation\the\c@page}{\mthemesectiontitleformat{#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{{\mthemeframetitleformat{#2}\ifnum\beamer@autobreakcount>0\relax{}\space\usebeamertemplate*{frametitle continuation}\fi}}% \gdef\beamer@frametitle{#2}% \gdef\beamer@shortframetitle{#1}% }} {}{} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % \begin{macro}{\plain} % Creates a plain frame with dark background, suitable for displaying images % or a few words. % \begin{macrocode} \newcommand{\plain}[2][]{% \begingroup \setbeamercolor{background canvas}{use=palette primary,parent=palette primary} \begin{frame}{#1} \centering \vfill \vspace{1em} \usebeamercolor[fg]{palette primary} \usebeamerfont{section title} \mthemeplaintitleformat{#2} \vfill \end{frame} \endgroup } % \end{macrocode} % \end{macro} % % \begin{macro}{\mreducelistspacing} % \begin{macrocode} \newcommand{\mreducelistspacing}{\vspace{-\topsep}} % \end{macrocode} % \end{macro} % % \iffalse % % \fi % \Finale \endinput