Appendix A — Main Theme

Note

A.1 Moloch Parent Theme

The primary job of this package is to load the component sub-packages of the Moloch theme and route the theme options accordingly. It also provides some custom commands and environments for the user.

A.2 Package Dependencies

\RequirePackage{pgfopts}

A.3 Options

Most options are passed off to the component sub-packages.

\pgfkeys{/moloch/.cd,
  .search also={
      /moloch/inner,
      /moloch/outer,
      /moloch/color,
      /moloch/font,
    }
}

A.3.1 titleformat plain

Controls the formatting of the text on standout “plain” frames.

\pgfkeys{
  /moloch/titleformat plain/.cd,
  .is choice,
  regular/.code={%
      \let\moloch@plaintitleformat\@empty%
      \setbeamerfont{standout}{shape=\normalfont}%
    },
  smallcaps/.code={%
      \let\moloch@plaintitleformat\@empty%
      \setbeamerfont{standout}{shape=\scshape}%
    },
  allsmallcaps/.code={%
      \let\moloch@plaintitleformat\MakeLowercase%
      \setbeamerfont{standout}{shape=\scshape}%
    },
  allcaps/.code={%
      \let\moloch@plaintitleformat\MakeUppercase%
      \setbeamerfont{standout}{shape=\normalfont}%
    },
}

A.3.2 titleformat

Sets a standard format for titles, subtitles, section titles, frame titles, and the text on standout “plain” frames.

\pgfkeys{
  /moloch/titleformat/.code=\pgfkeysalso{
    font/titleformat title=#1,
    font/titleformat subtitle=#1,
    font/titleformat section=#1,
    font/titleformat frame=#1,
    titleformat plain=#1,
  }
}

Set default values for options.

\newcommand{\moloch@setdefaults}{
  \pgfkeys{/moloch/.cd,
    titleformat plain=regular,
  }
}

A.4 Component Sub-Packages

Having processed the options, we can now load the component sub-packages of the theme.

\useinnertheme{moloch}
\useoutertheme{moloch}
\usecolortheme{moloch}
\usefonttheme{moloch}

A.5 Custom Commands

The parent theme defines custom commands as their proper usage may depend on multiple sub-packages.

A.5.1 \molochset

Allows the user to change options midway through a presentation.

\newcommand{\molochset}[1]{\pgfkeys{/moloch/.cd,#1}}

A.5.2 \mreducelistspacing

\newcommand{\mreducelistspacing}{\vspace{-\topsep}}

A.6 Process Package Options

\moloch@setdefaults
\ProcessPgfOptions{/moloch}