mirror of https://github.com/matze/mtheme.git
Update with main respository commits. Removed footer option description from doc
This commit is contained in:
commit
3b7726ceff
|
@ -1,6 +1,7 @@
|
|||
\documentclass[10pt]{beamer}
|
||||
|
||||
\usetheme{metropolis}
|
||||
\usepackage{appendixnumberbeamer}
|
||||
|
||||
\usepackage{booktabs}
|
||||
\usepackage[scale=2]{ccicons}
|
||||
|
@ -310,6 +311,19 @@ or show \textbf{bold} results.\end{verbatim}
|
|||
|
||||
\plain{Questions?}
|
||||
|
||||
\appendix
|
||||
|
||||
\begin{frame}[fragile]{Backup slides}
|
||||
Sometimes, it is useful to add slides at the end of your presentation to
|
||||
refer to during audience questions.
|
||||
|
||||
The best way to do this is to include the \verb|appendixnumberbeamer|
|
||||
package in your preamble and call \verb|\appendix| before your backup slides.
|
||||
|
||||
\themename will automatically turn off slide numbering and progress bars for
|
||||
slides in the appendix.
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}[allowframebreaks]{References}
|
||||
|
||||
\bibliography{demo}
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
\suppressfontnotfounderror=0%
|
||||
}
|
||||
|
||||
\newcommand{\iffontsexist}[3]{%
|
||||
\newcommand{\iffontsavailable}[3]{%
|
||||
\setcounter{fontsnotfound}{0}%
|
||||
\expandafter\forcsvlist\expandafter%
|
||||
\checkfont\expandafter{#1}%
|
||||
|
@ -47,13 +47,13 @@
|
|||
#3%
|
||||
\fi%
|
||||
}
|
||||
\iffontsexist{Fira Sans Light,%
|
||||
\iffontsavailable{Fira Sans Light,%
|
||||
Fira Sans Light Italic,%
|
||||
Fira Sans,%
|
||||
Fira Sans Italic}{%
|
||||
\setmainfont[BoldFont={Fira Sans}]{Fira Sans Light}%
|
||||
}{%
|
||||
\iffontsexist{Fira Sans Light OT,%
|
||||
\iffontsavailable{Fira Sans Light OT,%
|
||||
Fira Sans Light Italic OT,%
|
||||
Fira Sans OT,%
|
||||
Fira Sans Italic OT}{%
|
||||
|
@ -65,10 +65,10 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
\iffontsexist{Fira Mono, Fira Mono Bold}{%
|
||||
\iffontsavailable{Fira Mono, Fira Mono Bold}{%
|
||||
\setmonofont{Fira Mono}%
|
||||
}{%
|
||||
\iffontsexist{Fira Mono OT, Fira Mono Bold OT}{%
|
||||
\iffontsavailable{Fira Mono OT, Fira Mono Bold OT}{%
|
||||
\setmonofont{Fira Mono OT}%
|
||||
}{%
|
||||
\typeout{%
|
||||
|
@ -147,20 +147,20 @@
|
|||
\GetFileInfo{beamerthememetropolis.dtx}
|
||||
\title{Modern Beamer Presentations with the \themename package}
|
||||
\author{Matthias Vogelgesang \\ \url{matthias.vogelgesang@gmail.com}}
|
||||
\date{v1.0 -- 2015/12/04}
|
||||
\date{v1.1 --- 2016/02/06}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\maketitle
|
||||
\tableofcontents
|
||||
|
||||
|
||||
\section{Introduction}
|
||||
|
||||
Beamer is an awesome way to make presentations with LaTeX, but its theme
|
||||
selection is surprisingly sparse. The stock themes share an aesthetic that is
|
||||
now overused and can be a little cluttered, and the few distinctive custom
|
||||
themes available are often specialized for a particular corporate or
|
||||
institutional brand.
|
||||
can be a little cluttered, and the few distinctive custom themes available are
|
||||
often specialized for a particular corporate or institutional brand.
|
||||
|
||||
The goal of \themename is to provide a simple, modern Beamer theme suitable
|
||||
for anyone to use. It tries to minimize noise and maximize space for content;
|
||||
|
@ -185,21 +185,23 @@ the theme even better, please get in touch there. The
|
|||
\section{Getting Started}
|
||||
|
||||
\subsection{Installing from CTAN}
|
||||
|
||||
For the regular user it is recommended to install \themename from
|
||||
\href{https://www.ctan.org}{CTAN}. In case you keep your \TeX\ distribution
|
||||
up-to-date, chances are good that \themename is already installed. If it is not,
|
||||
you need to update your packages. For \TeX\ Live (or Mac\TeX\ on OS X) the
|
||||
following command updates all packages.
|
||||
up-to-date, chances are good that \themename is already installed. If it is
|
||||
not, you need to update your packages. For \TeX\ Live (or Mac\TeX\ on OS X)
|
||||
the following command updates all packages.
|
||||
|
||||
\begin{lstlisting}
|
||||
sudo tlmgr update --all
|
||||
\end{lstlisting}
|
||||
|
||||
For any other distribution please refer to its documentation on how to update your
|
||||
packages.
|
||||
For any other distribution please refer to its documentation on how to update
|
||||
your packages.
|
||||
|
||||
To get the most out of the theme you should also install the |Fira| fonts.
|
||||
Yet this is not mandatory. \themename also works with the standard fonts.
|
||||
|
||||
To get the most out of the theme you should also install the |Fira| fonts. Yet this
|
||||
is not mandatory. \themename also works with the standard fonts.
|
||||
|
||||
\subsection{Installing from GitHub}
|
||||
|
||||
|
@ -237,11 +239,13 @@ options for advanced users:
|
|||
\item[|make ctan|] creates a package for CTAN distribution.
|
||||
\end{description}
|
||||
|
||||
|
||||
\subsection{Installing the Debian Package}
|
||||
As an alternative users of Debian or Ubuntu can also install this
|
||||
\href{https://launchpad.net/\%7Eedd/+archive/ubuntu/misc/+files/latex-mtheme_0.1.0vidid1_all.deb}{.deb package}
|
||||
containing the theme files as well as the Fira Sans font files.
|
||||
|
||||
|
||||
\subsection{A Minimal Example}
|
||||
|
||||
The following code shows a minimal example of a Beamer presentation using
|
||||
|
@ -266,17 +270,28 @@ The following code shows a minimal example of a Beamer presentation using
|
|||
|
||||
\subsection{Dependencies}
|
||||
|
||||
\begin{itemize}
|
||||
\item TikZ
|
||||
\item XeLaTeX or LuaTeX
|
||||
\item \href{https://github.com/mozilla/Fira}{Fira Sans} and Mono font
|
||||
\end{itemize}
|
||||
\themename depends on the |beamer| class and the following standard packages:
|
||||
\begin{multicols}{3}
|
||||
\begin{itemize}
|
||||
\item |tikz|
|
||||
\item |pgfopts|
|
||||
\item |etoolbox|
|
||||
\item |calc|
|
||||
\item |ifxetex|
|
||||
\item |ifluatex|
|
||||
\end{itemize}
|
||||
\end{multicols}
|
||||
|
||||
For best results, we recommend installing the fonts
|
||||
\href{https://github.com/mozilla/Fira}{|Fira Sans|} and |Fira Mono|
|
||||
and compiling with \themename using Xe\LaTeX{} or Lua\TeX{}.
|
||||
These are optional dependencies; \themename is compatible with (e.g.)
|
||||
pdf\LaTeX{} and will fall back to standard fonts if |Fira Sans| or |Fira Mono|
|
||||
is not installed.
|
||||
|
||||
The packaged name of |Fira Sans| is |Fira Sans OT| in some Linux
|
||||
distributions; this case is automatically handled by \themename.
|
||||
|
||||
The |Fira Sans| font is not a hard dependency. \themename will try to load the
|
||||
font and use it if it is installed, but if not it will just use the standard
|
||||
font. Depending on the Linux distribution, the packaged name of |Fira Sans|
|
||||
might be |Fira Sans OT| instead of |Fira Sans|. \themename will check for this
|
||||
name too.
|
||||
|
||||
\subsection{Pandoc}
|
||||
|
||||
|
@ -288,118 +303,97 @@ $ pandoc -t beamer --latex-engine=xelatex -V theme:metropolis -o output.pdf inpu
|
|||
\end{lstlisting}
|
||||
|
||||
|
||||
|
||||
|
||||
\section{Customization}
|
||||
|
||||
\subsection{Package options}
|
||||
The theme provides a number of options. The options use a key=value interface.
|
||||
So every option is controlled by a key its value. To use an option you can
|
||||
either provide a comma separated list of options when invoking
|
||||
\textsc{metropolis} in the preamble of the presentation.
|
||||
|
||||
The theme provides a number of options, which can be set using a key=value
|
||||
interface. The primary way to set options is to provide a comma-separated list
|
||||
of option-value pairs when loading \themename in the preamble:
|
||||
\begin{lstlisting}
|
||||
\usetheme[<key=value list>]{metropolis}
|
||||
\usetheme[option1=value1, option2=value2, ...]{metropolis}
|
||||
\end{lstlisting}
|
||||
Or you can set them at any time with the |\metroset| macro.
|
||||
|
||||
Options can be changed at any time --- even mid-presentation! --- with the
|
||||
|\metroset| macro.
|
||||
\begin{lstlisting}
|
||||
\metroset{<key=value list>}
|
||||
\end{lstlisting}
|
||||
To set an option on a specific sub-package only you have to add the
|
||||
corresponding prefix (inner, outer, color), e.g.
|
||||
\begin{lstlisting}
|
||||
\metroset{inner/block=fill}
|
||||
\metroset{option1=newvalue1, option2=newvalue2, ...}
|
||||
\end{lstlisting}
|
||||
|
||||
The list of options is structured as shown in the following example.
|
||||
|
||||
\DescribeOption{key}{list of possible values}{default value}{
|
||||
\DescribeOption{option key}{list of possible values}{default}{
|
||||
A short description of the option.
|
||||
}
|
||||
|
||||
Although the options are grouped into the corresponding packages every option
|
||||
can and in most cases should be set on the main theme directly. If an option
|
||||
is listed in multiple sub-packages, setting it on the main theme will set the
|
||||
option on every sub-package accordingly.
|
||||
|
||||
\subsubsection{Main theme}
|
||||
|
||||
\DescribeOption{titleformat}%
|
||||
{regular, smallcaps, allsmallcaps, allcaps}
|
||||
{regular}{
|
||||
Shortcut option to change the titleformat of all titles together. Please
|
||||
refer to section \ref{sec:titleformats} for known issues.
|
||||
Changes the format of titles, subtitles, section titles, frame titles, and
|
||||
the text on standout ``plain'' frames. The available options produce
|
||||
Regular, \textsc{SmallCaps}, \textsc{\MakeLowercase{AllSmallCaps}}, or
|
||||
\MakeUppercase{AllCaps} titles. Please refer to
|
||||
Section~\ref{sec:titleformats} for known issues with these options.
|
||||
}
|
||||
|
||||
\DescribeOption{titleformat plain}%
|
||||
\DescribeOption{titleformat-plain}%
|
||||
{regular, smallcaps, allsmallcaps, allcaps}%
|
||||
{regular}{
|
||||
Control the titleformat of the plain title. Please refer to section
|
||||
\ref{sec:titleformats} for known issues.
|
||||
Changes the format of standout ``plain'' frames (see |titleformat|, above).
|
||||
}
|
||||
|
||||
|
||||
\subsubsection{Inner theme}
|
||||
\DescribeOption{block}{transparent, fill}{transparent}{
|
||||
This option controls the block background. It can either be filled with a
|
||||
light grey or be transparent.
|
||||
}
|
||||
|
||||
\DescribeOption{sectionpage}{none, simple, progressbar}{progressbar}{
|
||||
Disable section pages at all, typeset centered section title or add a thin
|
||||
progress bar below the centered section title.
|
||||
Adds a slide at the start of each section (|simple|) with an optional thin
|
||||
progress bar below the section title (|progressbar|). The |none| option
|
||||
disables the section page.
|
||||
}
|
||||
|
||||
\DescribeOption{titleformat title}%
|
||||
{regular, smallcaps, allsmallcaps, allcaps}%
|
||||
{regular}{
|
||||
Control the titleformat of the title. Please refer to section
|
||||
\ref{sec:titleformats} for known issues.
|
||||
}
|
||||
|
||||
\DescribeOption{titleformat subtitle}%
|
||||
{regular, smallcaps, allsmallcaps, allcaps}%
|
||||
{regular}{
|
||||
Control the titleformat of the subtitle. Please refer to section
|
||||
\ref{sec:titleformats} for known issues.
|
||||
}
|
||||
|
||||
\DescribeOption{titleformat section}%
|
||||
{regular, smallcaps, allsmallcaps, allcaps}%
|
||||
{regular}{
|
||||
Control the titleformat of the section title. Please refer to section
|
||||
\ref{sec:titleformats} for known issues.
|
||||
}
|
||||
|
||||
\subsubsection{Outer theme}
|
||||
\DescribeOption{footer}{none, custom}{none}{
|
||||
In the bottom left corner of each frame, a frame footer text (the section name by default) can be
|
||||
displayed using (|custom|). This can be set to any text as footer={custom=My text}
|
||||
}
|
||||
|
||||
\DescribeOption{numbering}{none, counter, fraction}{counter}{
|
||||
In the bottom right corner of each frame the current frame number is
|
||||
displayed. This can be disabled or the total framenumber can be added
|
||||
additionally.
|
||||
Controls whether the frame number at the bottom right of each slide is
|
||||
omitted (|none|), shown (|counter|) or displayed as a fraction of the total
|
||||
number of frames (|fraction|).
|
||||
}
|
||||
|
||||
\DescribeOption{progressbar}{none, head, frametitle, foot}{none}{
|
||||
Adds a progress bar to the top of each frame (|head|), the bottom of each
|
||||
frame (|foot|), or directly below each frame title (|frametitle|).
|
||||
}
|
||||
|
||||
\DescribeOption{titleformat frame}%
|
||||
{regular, smallcaps, allsmallcaps, allcaps}%
|
||||
{regular}{
|
||||
Control the titleformat of the frame title. Please refer to section
|
||||
\ref{sec:titleformats} for known issues.
|
||||
Optionally adds a progress bar to the top of each frame (|head|),
|
||||
the bottom of each frame (|foot|), or directly below each frame title
|
||||
(|frametitle|).
|
||||
}
|
||||
|
||||
\subsubsection{Color theme}
|
||||
\DescribeOption{block}{transparent, fill}{transparent}{
|
||||
This option controls the block background. It can either be filled with a
|
||||
light grey or be transparent.
|
||||
Optionally adds a light grey background to block environments like |theorem|
|
||||
and |example|.
|
||||
}
|
||||
|
||||
\DescribeOption{background}{dark, light}{light}{
|
||||
This option defines whether the background shall be dark and the foreground
|
||||
be light or vice versa.
|
||||
Provides the option to have a dark background and light foreground instead
|
||||
of the reverse.
|
||||
}
|
||||
|
||||
|
||||
\subsubsection{Font theme}
|
||||
|
||||
\DescribeMacro{titleformat-title}
|
||||
\DescribeMacro{titleformat-subtitle}
|
||||
\DescribeMacro{titeformat-section}
|
||||
\DescribeOption{titleformat-frame}%
|
||||
{regular, smallcaps, allsmallcaps, allcaps}%
|
||||
{regular}{
|
||||
Individually controls the format of titles, subtitles, section titles, and
|
||||
frame titles (see |titleformat|, above).
|
||||
}
|
||||
|
||||
|
||||
\subsection{Color Customization}
|
||||
|
||||
The included \themename color theme is used by default, but its colors can be
|
||||
|
@ -410,6 +404,7 @@ terms of three beamer colors:
|
|||
\item |alerted text| (colored fg, should be visible against dark or light)
|
||||
\item |example text| (colored fg, should be visible against dark or light)
|
||||
\end{itemize}
|
||||
|
||||
An easy way to customize the theme is to redefine these colors using
|
||||
|
||||
\begin{lstlisting}
|
||||
|
@ -426,12 +421,12 @@ of \themename specific colors, which can also be redefined to your liking.
|
|||
\setbeamercolor{progress bar in section page}{ ... }
|
||||
\end{lstlisting}
|
||||
|
||||
|
||||
\subsection{Font Customization}
|
||||
|
||||
The default font for \themename is |Fira|. Yet this can be easily changed using
|
||||
The default font for \themename is |Fira|. This can be easily changed using
|
||||
the standard font selection commands of the \textsf{fontspec} package. So if
|
||||
you for example prefer the \href{http://font.ubuntu.com}{|Ubuntu|} font family
|
||||
just add the following two commands after loading the \themename theme.
|
||||
you prefer, for example, the \href{http://font.ubuntu.com}{|Ubuntu|} font family, just add the following two commands after loading the \themename theme.
|
||||
|
||||
\begin{lstlisting}
|
||||
\setsansfont{Ubuntu}
|
||||
|
@ -442,8 +437,8 @@ just add the following two commands after loading the \themename theme.
|
|||
\subsubsection{Old style figures}
|
||||
|
||||
The regular \textsf{fontspec} mechanism for changing glyph appearance applies
|
||||
also to this theme. In case you want to have old style figures in the text but
|
||||
regular lined figures for math, you have to add the following to your preamble:
|
||||
also to this theme. If you want to have old style figures in the text but
|
||||
regular lined figures for math, you could add the following to your preamble:
|
||||
|
||||
\begin{lstlisting}
|
||||
\usefonttheme{professionalfonts} % required for mathspec
|
||||
|
@ -462,35 +457,71 @@ dark background, which can be useful to focus attention on a single sentence
|
|||
or image.
|
||||
\end{macro}
|
||||
|
||||
\subsection{Paul Tol's colors: a \texttt{pgfplots} theme}
|
||||
|
||||
A good presentation uses colors that are
|
||||
\section{\texttt{pgfplots} integration}
|
||||
|
||||
\begin{itemize}
|
||||
\item distinct from each other as much as possible, and
|
||||
\item distinct from black and white,
|
||||
\item under many different lighting and display environments, and
|
||||
\item to color-blind viewers,
|
||||
\item all while matching well together.
|
||||
\end{itemize}
|
||||
\themename comes with a set of pre-defined pgfplots styles and a color theme
|
||||
based on Paul Tol's color scheme.
|
||||
|
||||
|
||||
\subsection{Styles}
|
||||
|
||||
Pass the following style keys to the axis environment to get the appropriate
|
||||
effect:
|
||||
|
||||
\begin{macro}{mlineplot}
|
||||
Plot regular line charts with reduced axis frames, less intrusive legend and
|
||||
subdued grid.
|
||||
\end{macro}
|
||||
\begin{macro}{mbarplot}
|
||||
Plot vertical bar charts in a similar way as |mlineplot| but reduce grid usage.
|
||||
\end{macro}
|
||||
\begin{macro}{horizontal mbarplot}
|
||||
Plot horizontal bar charts.
|
||||
\end{macro}
|
||||
\begin{macro}{disable thousands separator}
|
||||
Helper style to remove thousands separator.
|
||||
\end{macro}
|
||||
|
||||
|
||||
\subsection{Paul Tol colors}
|
||||
|
||||
A good presentation uses colors that are distinct from each other as much as
|
||||
possible as well as from black and white, can be discerned item under different
|
||||
lighting and display environments and by color-blind viewers, while matching
|
||||
well together.
|
||||
|
||||
In a \href{https://personal.sron.nl/~pault/colourschemes.pdf}{technical note}
|
||||
for SRON, Paul Tol proposed a palette of colors satisfying these constraints.
|
||||
The sub-package |pgfplotsthemetol| defines palettes for |pgfplots| charts
|
||||
based on Tol's work. Use the |mlineplot| key to plot line data and |mbarplot|
|
||||
or horizontal |mbarplot| to plot bar charts.
|
||||
based on Tol's work.
|
||||
|
||||
|
||||
\section{Tips \& Tricks}
|
||||
|
||||
\subsection{Backup Slides}
|
||||
|
||||
Speakers will often include extra slides at the end of their presentation to
|
||||
refer to during audience questions. One easy way to do this is to include the
|
||||
\verb|appendixnumberbeamer| package in your preamble and call \verb|\appendix| before your backup slides.
|
||||
|
||||
\themename will automatically turn off slide numbering and progress bars for
|
||||
slides in the appendix.
|
||||
|
||||
|
||||
\section{Known Issues}
|
||||
|
||||
\subsection{Titleformats}
|
||||
\subsection{Title formats}
|
||||
\label{sec:titleformats}
|
||||
If you want to use either |smallcaps| or |allsmallcaps| be aware that not
|
||||
every font supports small caps. So make sure the font you are using does.
|
||||
|
||||
|allsmallcaps| and |allcaps| are quite nice from an aesthetic point of view,
|
||||
but they introduce some issues by using |\MakeLowercase| and |\MakeUppercase|,
|
||||
respectively.
|
||||
Be aware that not every font supports small caps, so the |smallcaps| or
|
||||
|allsmallcaps| options may not work if you use a font other than |Fira Sans|.
|
||||
In particular, the Computer Modern sans-serif typeface, which is used when
|
||||
\themename is compiled with pdf\LaTeX, does not have a small-caps variant.
|
||||
|
||||
The title format options |allsmallcaps| and |allcaps| are quite nice from an
|
||||
aesthetic point of view, but their use of |\MakeLowercase| and
|
||||
|\MakeUppercase| can cause unexpected problems. For example:
|
||||
|
||||
\begin{itemize}
|
||||
\item Some commands, like |\\|, do not work inside |\MakeLowercase| and
|
||||
|
@ -509,19 +540,54 @@ respectively.
|
|||
\href{https://github.com/matze/mtheme/issues/153}{\#153})
|
||||
\end{itemize}
|
||||
|
||||
\subsection{Plain Frame}
|
||||
The |\plain| command does not work if you override the \themename color theme
|
||||
with the default beamer color theme |fly|.
|
||||
The |allsmallcaps| and |allcaps| options are safe to use if your titles contain
|
||||
only alphabetic characters and do not require the expansion of any macros.
|
||||
|
||||
|
||||
\subsection{Interactions with other color themes}
|
||||
|
||||
\themename can be used along with any other Beamer color theme, such as
|
||||
|crane| or |seahorse|. If you wish to do this, it is usually best to include
|
||||
the \themename subpackages individually so the \themename color theme is
|
||||
never loaded. Although this will disable some features, including
|
||||
|\plain| slides, it will prevent conflicts between the \themename color theme
|
||||
and your preferred theme.
|
||||
|
||||
For example, overriding the color theme as follows may not work as expected because |\usetheme{metropolis}| loads the \themename color theme, which
|
||||
defines a relationship between the frametitle background and the primary
|
||||
palette of the theme. Since |seahorse| assumes a different relationship
|
||||
between its palettes, the result is a grey, rather than periwinkle,
|
||||
frametitle background.
|
||||
|
||||
\begin{lstlisting}
|
||||
\usetheme{metropolis}
|
||||
\usecolortheme{seahorse}
|
||||
\end{lstlisting}
|
||||
|
||||
The correct colors are chosen if the \themename outer, inner, and font themes
|
||||
are loaded seperately:
|
||||
|
||||
\begin{lstlisting}
|
||||
\useoutertheme{metropolis}
|
||||
\useinnertheme{metropolis}
|
||||
\usefonttheme{metropolis}
|
||||
\usecolortheme{seahorse} % or your preferred color theme
|
||||
\end{lstlisting}
|
||||
|
||||
Please note that \themename may not use all the colors defined in your
|
||||
favourite Beamer color theme. In particular, \themename does not set a
|
||||
background color for the title; this will cause issues when using color themes
|
||||
like |whale| which set a white foreground for the title.
|
||||
|
||||
|
||||
\section{License}
|
||||
|
||||
The theme itself is licensed under a
|
||||
\themename is licensed under a
|
||||
\href{http://creativecommons.org/licenses/by-sa/4.0/}{Creative Commons
|
||||
Attribution-ShareAlike 4.0 International License}. This means that if you change
|
||||
the theme and re-distribute it, you must retain the copyright notice header and
|
||||
license it under the same CC-BY-SA license. This does not affect the
|
||||
presentation that you create with the theme.
|
||||
|
||||
Attribution-ShareAlike 4.0 International License}.
|
||||
This means that if you change the theme and re-distribute it, you must retain
|
||||
the copyright notice header and license it under the same CC-BY-SA license.
|
||||
This does not affect any presentations that you create with the theme.
|
||||
|
||||
|
||||
\section{Implementation}
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
%<driver> \ProvidesFile{beamercolorthememetropolis.dtx}
|
||||
%<*package>
|
||||
\NeedsTeXFormat{LaTeX2e}
|
||||
\ProvidesPackage{beamercolorthememetropolis}[2015/12/04 Metropolis color theme]
|
||||
\ProvidesPackage{beamercolorthememetropolis}[2016/02/21 Metropolis color theme]
|
||||
%</package>
|
||||
%<driver> \documentclass{ltxdoc}
|
||||
%<driver> \usepackage{beamercolorthememetropolis}
|
||||
|
@ -27,9 +27,11 @@
|
|||
%<*package>
|
||||
% ------------------------------------------------------------------------- \fi
|
||||
%
|
||||
% \subsection{\textsc{metropolis} color theme}
|
||||
% \subsection{\themename color theme}
|
||||
%
|
||||
% Load required packages.
|
||||
%
|
||||
%
|
||||
% \subsubsection{Package dependencies}
|
||||
% \begin{macrocode}
|
||||
\RequirePackage{pgfopts}
|
||||
% \end{macrocode}
|
||||
|
@ -39,34 +41,35 @@
|
|||
% \subsubsection{Options}
|
||||
%
|
||||
% \begin{macro}{block}
|
||||
% This option controls whether the blocks are filled or transparent.
|
||||
% Optionally adds a light grey background to block environments like
|
||||
% |theorem| and |example|.
|
||||
% \begin{macrocode}
|
||||
\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,
|
||||
}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
% \begin{macro}{colors}
|
||||
% Defines whether the background shall be dark and the foreground be light or
|
||||
% vice versa
|
||||
% Provides the option to have a dark background and light foreground instead
|
||||
% of the reverse.
|
||||
% \begin{macrocode}
|
||||
\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,
|
||||
}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
% \begin{macro}{\@metropolis@color@setdefaults}
|
||||
% Set default values for color theme options.
|
||||
% \begin{macro}{\metropolis@color@setdefaults}
|
||||
% Sets default values for color theme options.
|
||||
% \begin{macrocode}
|
||||
\newcommand{\@metropolis@color@setdefaults}{
|
||||
\newcommand{\metropolis@color@setdefaults}{
|
||||
\pgfkeys{/metropolis/color/.cd,
|
||||
background=light,
|
||||
block=transparent,
|
||||
|
@ -90,17 +93,17 @@
|
|||
%
|
||||
% \subsubsection{Base styles}
|
||||
%
|
||||
% All colors in the \textsc{metropolis} theme are derived from the definitions
|
||||
% of |normal text|, |alerted text|, and |example text|.
|
||||
% All colors in \themename are derived from the definitions of |normal text|,
|
||||
% |alerted text|, and |example text|.
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\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
|
||||
|
@ -133,8 +136,8 @@
|
|||
% \end{macrocode}
|
||||
%
|
||||
% The “primary” palette should be used for the most important navigational
|
||||
% elements, and possibly of other elements. The \textsc{metropolis} theme uses
|
||||
% it for frame titles and slides.
|
||||
% elements, and possibly of other elements. \themename uses it for frame
|
||||
% titles and slides.
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\setbeamercolor{palette primary}{%
|
||||
|
@ -148,7 +151,7 @@
|
|||
}
|
||||
% \end{macrocode}
|
||||
%
|
||||
% The \textsc{metropolis} inner or outer themes optionally display progress
|
||||
% The \themename inner or outer themes optionally display progress
|
||||
% bars in various locations. Their color is set by |progress bar| but the two
|
||||
% different kinds can be customized separately. The horizontal rule on the
|
||||
% title page is also set based on the progress bar color and can be customized
|
||||
|
@ -174,18 +177,33 @@
|
|||
}
|
||||
% \end{macrocode}
|
||||
%
|
||||
% Blocks
|
||||
% Block environments such as |theorem| and |example| have no background color
|
||||
% by default. The option |block=fill| sets a background color based on the
|
||||
% background and foreground of |normal text|. The option |block=transparent|
|
||||
% reverts the block environments to an empty background, which can be useful
|
||||
% if changing colors mid-presentation.
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\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},
|
||||
|
@ -199,10 +217,6 @@
|
|||
}
|
||||
\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
|
||||
}
|
||||
% \end{macrocode}
|
||||
%
|
||||
% Footnotes
|
||||
|
@ -212,10 +226,12 @@
|
|||
\setbeamercolor{footnote mark}{fg=.}
|
||||
% \end{macrocode}
|
||||
%
|
||||
% Process package options
|
||||
%
|
||||
%
|
||||
% \subsubsection{Process package options}
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\@metropolis@color@setdefaults
|
||||
\metropolis@color@setdefaults
|
||||
\ProcessPgfPackageOptions{/metropolis/color}
|
||||
% \end{macrocode}
|
||||
%
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
%<driver> \ProvidesFile{beamerfontthememetropolis.dtx}
|
||||
%<*package>
|
||||
\NeedsTeXFormat{LaTeX2e}
|
||||
\ProvidesPackage{beamerfontthememetropolis}[2015/12/04 Metropolis font theme]
|
||||
\ProvidesPackage{beamerfontthememetropolis}[2016/02/21 Metropolis font theme]
|
||||
%</package>
|
||||
%<driver> \documentclass{ltxdoc}
|
||||
%<driver> \usepackage{beamerfontthememetropolis}
|
||||
|
@ -26,29 +26,36 @@
|
|||
% \iffalse
|
||||
%<*package>
|
||||
% ------------------------------------------------------------------------- \fi
|
||||
% \subsection{\textsc{metropolis} font theme}
|
||||
%
|
||||
% \subsection{\themename font theme}
|
||||
%
|
||||
% A |beamer| font theme sets the style of the font used in the document.
|
||||
%
|
||||
%
|
||||
% Load required packages.
|
||||
%
|
||||
% \subsubsection{Package dependencies}
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\RequirePackage{etoolbox}
|
||||
\RequirePackage{ifxetex}
|
||||
\RequirePackage{ifluatex}
|
||||
\RequirePackage{pgfopts}
|
||||
% \end{macrocode}
|
||||
%
|
||||
% \subsubsection{Load Fira font}
|
||||
% If the presentation is compiled with XeLaTeX or LuaLaTeX the fontspec package
|
||||
% will be loaded.
|
||||
%
|
||||
%
|
||||
% \subsubsection{Load Fira fonts}
|
||||
%
|
||||
% If the presentation is compiled with Xe\LaTeX{} or Lua\LaTeX{}, the fontspec
|
||||
% package is loaded and we search for the |Fira| fonts.
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\ifboolexpr{bool {xetex} or bool {luatex}}{
|
||||
\RequirePackage[no-math]{fontspec}
|
||||
% \end{macrocode}
|
||||
%
|
||||
% To simplify the check whether the |Fira| fonts are installed, a set macros is
|
||||
% defined.
|
||||
%
|
||||
% \begin{macro}{\checkfont}
|
||||
% Checks if a font is installed and increases |fontsnotfound| counter if not.
|
||||
% Checks if a font is installed; if not, |fontsnotfound| is increased.
|
||||
% \begin{macrocode}
|
||||
\newcounter{fontsnotfound}
|
||||
\newcommand{\checkfont}[1]{%
|
||||
|
@ -64,11 +71,11 @@
|
|||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
% \begin{macro}{\iffontexists}
|
||||
% Resets the |fontsnotfound| counter and calls |\checkfont| for each font in
|
||||
% the comma separated list in the first argument.
|
||||
% \begin{macro}{\iffontsavailable}
|
||||
% Resets the |fontsnotfound| counter and calls |\checkfont| for each font in
|
||||
% the comma separated list in the first argument.
|
||||
% \begin{macrocode}
|
||||
\newcommand{\iffontsexist}[3]{%
|
||||
\newcommand{\iffontsavailable}[3]{%
|
||||
\setcounter{fontsnotfound}{0}%
|
||||
\expandafter\forcsvlist\expandafter%
|
||||
\checkfont\expandafter{#1}%
|
||||
|
@ -81,19 +88,19 @@
|
|||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
% Using the previously defined macros it is tried to load the |Fira| fonts.
|
||||
% First the default |Fira| name will be tried. Second the |Fira| fonts with
|
||||
% the suffix OT -- used by some Linux distributions -- will be tried. If this
|
||||
% also fails a warning will be displayed and the standard fonts will be used.
|
||||
% We search for regular, italic, light, light italic, mono, and mono bold
|
||||
% fonts under the default |Fira Sans| and |Fira Mono| names. If this fails,
|
||||
% the suffix OT --- used by some Linux distributions --- will be tried. If this
|
||||
% also fails, a warning will be displayed and the standard fonts will be used.
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\iffontsexist{Fira Sans Light,%
|
||||
\iffontsavailable{Fira Sans Light,%
|
||||
Fira Sans Light Italic,%
|
||||
Fira Sans,%
|
||||
Fira Sans Italic}{%
|
||||
\setsansfont[BoldFont={Fira Sans}]{Fira Sans Light}%
|
||||
}{%
|
||||
\iffontsexist{Fira Sans Light OT,%
|
||||
\iffontsavailable{Fira Sans Light OT,%
|
||||
Fira Sans Light Italic OT,%
|
||||
Fira Sans OT,%
|
||||
Fira Sans Italic OT}{%
|
||||
|
@ -104,10 +111,10 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
\iffontsexist{Fira Mono, Fira Mono Bold}{%
|
||||
\iffontsavailable{Fira Mono, Fira Mono Bold}{%
|
||||
\setmonofont{Fira Mono}%
|
||||
}{%
|
||||
\iffontsexist{Fira Mono OT, Fira Mono Bold OT}{%
|
||||
\iffontsavailable{Fira Mono OT, Fira Mono Bold OT}{%
|
||||
\setmonofont{Fira Mono OT}%
|
||||
}{%
|
||||
\PackageWarning{beamerthememetropolis}{%
|
||||
|
@ -125,6 +132,10 @@
|
|||
}
|
||||
% \end{macrocode}
|
||||
%
|
||||
% This concludes the portion of the code which is only run when compiled with
|
||||
% Xe\LaTeX{} or Lua\LaTeX{}. The remainder of this package applies regardless
|
||||
% of the compiling engine.
|
||||
%
|
||||
%
|
||||
%
|
||||
% \subsubsection{General font definitions}
|
||||
|
@ -159,6 +170,235 @@
|
|||
series=\normalfont}
|
||||
% \end{macrocode}
|
||||
%
|
||||
%
|
||||
%
|
||||
% \subsubsection{Title format options}
|
||||
%
|
||||
% \begin{macro}{titleformat title}
|
||||
% Controls the format of the title.
|
||||
% \begin{macrocode}
|
||||
\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%
|
||||
}
|
||||
},
|
||||
}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
% \begin{macro}{titleformat subtitle}
|
||||
% Control the format of the subtitle.
|
||||
% \begin{macrocode}
|
||||
\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%
|
||||
}
|
||||
},
|
||||
}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
% \begin{macro}{titleformat section}
|
||||
% Controls the format of the section title.
|
||||
% \begin{macrocode}
|
||||
\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%
|
||||
}
|
||||
},
|
||||
}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
% \begin{macro}{frametitleformat}
|
||||
% Control the format of the frame title.
|
||||
% \begin{macrocode}
|
||||
\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%
|
||||
}
|
||||
},
|
||||
}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
% \begin{macro}{titleformat aliases}
|
||||
% Allows |titleformat title| et al. to be used in the |\usetheme|
|
||||
% declaration, where \LaTeX{} automatically removes all spaces.
|
||||
% \begin{macrocode}
|
||||
\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},
|
||||
}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
% \begin{macro}{\metropolis@font@setdefaults}
|
||||
% Sets default values for font theme options.
|
||||
% \begin{macrocode}
|
||||
\newcommand{\metropolis@font@setdefaults}{
|
||||
\pgfkeys{/metropolis/font/.cd,
|
||||
titleformat title=regular,
|
||||
titleformat subtitle=regular,
|
||||
titleformat section=regular,
|
||||
titleformat frame=regular,
|
||||
}
|
||||
}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
% We first define hooks to change the case format of the titles.
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\def\metropolis@titleformat#1{#1}
|
||||
\def\metropolis@subtitleformat#1{#1}
|
||||
\def\metropolis@sectiontitleformat#1{#1}
|
||||
\def\metropolis@frametitleformat#1{#1}
|
||||
% \end{macrocode}
|
||||
%
|
||||
% To make the uppercase and lowercase macros work in the title, subtitle, etc.,
|
||||
% we have to patch the appropriate |beamer| commands that set their values.
|
||||
% This solution was suggested by Enrico Gregorio in an answer to
|
||||
% \href{http://tex.stackexchange.com/questions/112526/}{this StackExchange
|
||||
% question}.
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\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}}
|
||||
% \end{macrocode}
|
||||
%
|
||||
% Similarly, to make the |\MakeLowercase| and |\MakeUppercase| macros work in
|
||||
% the frame title we have to patch |\beamer@@frametitle|.
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\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}}
|
||||
% \end{macrocode}
|
||||
%
|
||||
%
|
||||
%
|
||||
% \subsubsection{Process package options}
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\metropolis@font@setdefaults
|
||||
\ProcessPgfPackageOptions{/metropolis/font}
|
||||
% \end{macrocode}
|
||||
% \iffalse
|
||||
%</package>
|
||||
% \fi
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
%<driver> \ProvidesFile{beamerinnerthememetropolis.dtx}
|
||||
%<*package>
|
||||
\NeedsTeXFormat{LaTeX2e}
|
||||
\ProvidesPackage{beamerinnerthememetropolis}[2015/12/04 Metropolis inner theme]
|
||||
\ProvidesPackage{beamerinnerthememetropolis}[2016/02/21 Metropolis inner theme]
|
||||
%</package>
|
||||
%<driver> \documentclass{ltxdoc}
|
||||
%<driver> \usepackage{beamerinnerthememetropolis}
|
||||
|
@ -27,7 +27,7 @@
|
|||
%<*package>
|
||||
% ------------------------------------------------------------------------- \fi
|
||||
%
|
||||
% \subsection{\textsc{metropolis} inner theme}
|
||||
% \subsection{\themename inner theme}
|
||||
%
|
||||
% A |beamer| inner theme dictates the style of the frame elements traditionally
|
||||
% set in the ``body'' of each slide. These include:
|
||||
|
@ -40,7 +40,10 @@
|
|||
% \item footnotes and plain text.
|
||||
% \end{itemize}
|
||||
%
|
||||
% Load required packages.
|
||||
%
|
||||
%
|
||||
% \subsubsection{Package dependencies}
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\RequirePackage{etoolbox}
|
||||
\RequirePackage{calc}
|
||||
|
@ -52,137 +55,25 @@
|
|||
%
|
||||
% \subsubsection{Options}
|
||||
%
|
||||
% \begin{macro}{block}
|
||||
% This option controls the block style.
|
||||
% \begin{macrocode}
|
||||
\pgfkeys{
|
||||
/metropolis/inner/block/.cd,
|
||||
.is choice,
|
||||
transparent/.code=\setlength{\@metropolis@blockskip}{0ex},
|
||||
fill/.code=\setlength{\@metropolis@blockskip}{1ex},
|
||||
}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
% \begin{macro}{titleformat title}
|
||||
% Control the titleformat of the title
|
||||
% \begin{macrocode}
|
||||
\pgfkeys{
|
||||
/metropolis/inner/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\MakeLowercase%
|
||||
\setbeamerfont{title}{shape=\scshape}%
|
||||
\PackageWarning{beamerthememetropolis}{%
|
||||
Be aware that titleformat title=allsmallcaps can lead to problems%
|
||||
}
|
||||
},
|
||||
allcaps/.code={%
|
||||
\let\@metropolis@titleformat\MakeUppercase%
|
||||
\setbeamerfont{title}{shape=\normalfont}
|
||||
\PackageWarning{beamerthememetropolis}{%
|
||||
Be aware that titleformat title=allcaps can lead to problems%
|
||||
}
|
||||
},
|
||||
}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
% \begin{macro}{titleformat subtitle}
|
||||
% Control the titleformat of the subtitle
|
||||
% \begin{macrocode}
|
||||
\pgfkeys{
|
||||
/metropolis/inner/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\MakeLowercase%
|
||||
\setbeamerfont{subtitle}{shape=\scshape}%
|
||||
\PackageWarning{beamerthememetropolis}{%
|
||||
Be aware that titleformat subtitle=allsmallcaps can lead to problems%
|
||||
}
|
||||
},
|
||||
allcaps/.code={%
|
||||
\let\@metropolis@subtitleformat\MakeUppercase%
|
||||
\setbeamerfont{subtitle}{shape=\normalfont}%
|
||||
\PackageWarning{beamerthememetropolis}{%
|
||||
Be aware that titleformat subtitle=allcaps can lead to problems%
|
||||
}
|
||||
},
|
||||
}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
% \begin{macro}{titleformat section}
|
||||
% Control the titleformat of the section title
|
||||
% \begin{macrocode}
|
||||
\pgfkeys{
|
||||
/metropolis/inner/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%
|
||||
}
|
||||
},
|
||||
}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
% \begin{macro}{sectionpage}
|
||||
% The |sectionpage| option defines the behaviour of the sectionpage.
|
||||
% \begin{macrocode}
|
||||
\pgfkeys{
|
||||
/metropolis/inner/sectionpage/.cd,
|
||||
.is choice,
|
||||
none/.code=\@metropolis@sectionpage@none,
|
||||
simple/.code=\@metropolis@sectionpage@simple,
|
||||
progressbar/.code=\@metropolis@sectionpage@progressbar,
|
||||
none/.code=\metropolis@sectionpage@none,
|
||||
simple/.code=\metropolis@sectionpage@simple,
|
||||
progressbar/.code=\metropolis@sectionpage@progressbar,
|
||||
}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
% \begin{macro}{\@metropolis@inner@setdefaults}
|
||||
% \begin{macro}{\metropolis@inner@setdefaults}
|
||||
% Set default values for inner theme options.
|
||||
% \begin{macrocode}
|
||||
\newcommand{\@metropolis@inner@setdefaults}{
|
||||
\newcommand{\metropolis@inner@setdefaults}{
|
||||
\pgfkeys{/metropolis/inner/.cd,
|
||||
sectionpage=progressbar,
|
||||
block=transparent,
|
||||
titleformat title=regular,
|
||||
titleformat subtitle=regular,
|
||||
titleformat section=regular,
|
||||
}
|
||||
}
|
||||
% \end{macrocode}
|
||||
|
@ -192,35 +83,6 @@
|
|||
%
|
||||
% \subsubsection{Title page}
|
||||
%
|
||||
% \begin{macro}{\@metropolis@titleformat}
|
||||
% Define hooks to change the case format of the titles.
|
||||
% \begin{macrocode}
|
||||
\def\@metropolis@titleformat#1{#1}
|
||||
\def\@metropolis@subtitleformat#1{#1}
|
||||
\def\@metropolis@sectiontitleformat#1{#1}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
% To make the |\MakeLowercase| and |\MakeUppercase| macros work in the
|
||||
% sectiontitle we have to patch |\sectionentry| and |\beamer@section|. 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{\@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}}
|
||||
% \end{macrocode}
|
||||
%
|
||||
% \begin{macro}{title page}
|
||||
% Template for the title page. Each element is only typset if it is defined
|
||||
% by the user. If |\subtitle| is empty, for example, it won't leave a blank
|
||||
|
@ -268,7 +130,7 @@
|
|||
\ifbeamer@inframe
|
||||
\titlepage
|
||||
\else
|
||||
\frame[plain]{\titlepage}
|
||||
\frame[plain,noframenumbering]{\titlepage}
|
||||
\fi
|
||||
}
|
||||
\def\titlepage{%
|
||||
|
@ -298,7 +160,7 @@
|
|||
\setbeamertemplate{title}{
|
||||
\raggedright%
|
||||
\linespread{1.0}%
|
||||
\@metropolis@titleformat{\inserttitle}%
|
||||
\inserttitle%
|
||||
\par%
|
||||
\vspace*{0.5em}
|
||||
}
|
||||
|
@ -309,7 +171,7 @@
|
|||
% Set the subtitle on the title page.
|
||||
% \begin{macrocode}
|
||||
\setbeamertemplate{subtitle}{
|
||||
\@metropolis@subtitleformat{\insertsubtitle}%
|
||||
\insertsubtitle%
|
||||
\par%
|
||||
\vspace*{0.5em}
|
||||
}
|
||||
|
@ -371,7 +233,7 @@
|
|||
% Template for the section title slide at the beginning of each section.
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\newcommand{\@metropolis@sectionpage@none}{
|
||||
\newcommand{\metropolis@sectionpage@none}{
|
||||
\AtBeginSection{
|
||||
% intenionally empty
|
||||
}
|
||||
|
@ -382,13 +244,13 @@
|
|||
\usebeamerfont{section title}
|
||||
\insertsectionhead\\
|
||||
}
|
||||
\newcommand{\@metropolis@sectionpage@simple}{
|
||||
\newcommand{\metropolis@sectionpage@simple}{
|
||||
\setbeamertemplate{section page}[simple]
|
||||
\AtBeginSection{
|
||||
\ifbeamer@inframe
|
||||
\sectionpage
|
||||
\else
|
||||
\frame[plain,c]{\sectionpage}
|
||||
\frame[plain,c,noframenumbering]{\sectionpage}
|
||||
\fi
|
||||
}
|
||||
}
|
||||
|
@ -402,13 +264,13 @@
|
|||
\end{minipage}
|
||||
\par
|
||||
}
|
||||
\newcommand{\@metropolis@sectionpage@progressbar}{
|
||||
\newcommand{\metropolis@sectionpage@progressbar}{
|
||||
\setbeamertemplate{section page}[progressbar]
|
||||
\AtBeginSection{
|
||||
\ifbeamer@inframe
|
||||
\sectionpage
|
||||
\else
|
||||
\frame[plain,c]{\sectionpage}
|
||||
\frame[plain,c,noframenumbering]{\sectionpage}
|
||||
\fi
|
||||
}
|
||||
}
|
||||
|
@ -453,87 +315,70 @@
|
|||
%
|
||||
% \subsubsection{Block environments}
|
||||
%
|
||||
% Regular block environment
|
||||
%
|
||||
% \begin{macro}{block}
|
||||
% \begin{macro}{block alerted}
|
||||
% \begin{macro}{block example}
|
||||
%
|
||||
% The three different block environments differ only in their colours.
|
||||
% Rather than repeat the essentially the same template three times, we use
|
||||
% the auxiliary macro |\metropolis@block| to define all three templates.
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\newlength{\@metropolis@blockskip}
|
||||
\setbeamertemplate{block begin}{%
|
||||
\setlength{\parskip}{\@metropolis@parskip}
|
||||
\newlength{\metropolis@blocktitleskip}
|
||||
\newlength{\metropolis@blockbodyskip}
|
||||
\newcommand{\metropolis@block}[1]{
|
||||
\setlength{\parskip}{\metropolis@parskip}
|
||||
% \end{macrocode}
|
||||
%
|
||||
% If a background color is defined for the block title or body, a little
|
||||
% bit of padding is added to the corresponding box.
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\ifbeamercolorempty[bg]{block title}
|
||||
{\setlength{\metropolis@blocktitleskip}{0ex}}
|
||||
{\setlength{\metropolis@blocktitleskip}{1ex}}
|
||||
\ifbeamercolorempty[bg]{block body}
|
||||
{\setlength{\metropolis@blockbodyskip}{0ex}}
|
||||
{\setlength{\metropolis@blockbodyskip}{1ex}}
|
||||
\vspace*{1ex}
|
||||
% \end{macrocode}
|
||||
%
|
||||
% Each block environment consists of two (possibly coloured) beamer boxes:
|
||||
% one for the title and one for the body.
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\begin{beamercolorbox}[%
|
||||
ht=2.4ex,
|
||||
dp=1ex,
|
||||
leftskip=\@metropolis@blockskip,
|
||||
rightskip=\@metropolis@blockskip]{block title}
|
||||
\usebeamerfont*{block title}\insertblocktitle%
|
||||
leftskip=\metropolis@blocktitleskip,
|
||||
rightskip=\metropolis@blocktitleskip]{block title#1}
|
||||
\usebeamerfont*{block title#1}\insertblocktitle%
|
||||
\end{beamercolorbox}%
|
||||
\vspace*{-1pt}
|
||||
\usebeamerfont{block body}%
|
||||
\nointerlineskip%
|
||||
\usebeamerfont{block body#1}%
|
||||
\begin{beamercolorbox}[%
|
||||
dp=1ex,
|
||||
leftskip=\@metropolis@blockskip,
|
||||
rightskip=\@metropolis@blockskip,
|
||||
vmode]{block body}%
|
||||
}
|
||||
\setbeamertemplate{block end}{%
|
||||
\end{beamercolorbox}
|
||||
\vspace*{0.2ex}
|
||||
leftskip=\metropolis@blockbodyskip,
|
||||
rightskip=\metropolis@blockbodyskip,
|
||||
vmode]{block body#1}%
|
||||
}
|
||||
% \end{macrocode}
|
||||
%
|
||||
% Alerted block environment
|
||||
% This concludes the auxiliary macro |\metropolis@block|. Next,
|
||||
% we define the block beamer templates using this macro.
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\setbeamertemplate{block alerted begin}{%
|
||||
\setlength{\parskip}{\@metropolis@parskip}
|
||||
\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 alerted}%
|
||||
}
|
||||
\setbeamertemplate{block alerted end}{%
|
||||
\end{beamercolorbox}
|
||||
\vspace*{0.2ex}
|
||||
}
|
||||
% \end{macrocode}
|
||||
%
|
||||
% Example block environment
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\setbeamertemplate{block example begin}{%
|
||||
\setlength{\parskip}{\@metropolis@parskip}
|
||||
\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 example}%
|
||||
}
|
||||
\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}}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
% \end{macro}
|
||||
% \end{macro}
|
||||
%
|
||||
%
|
||||
%
|
||||
|
@ -561,9 +406,9 @@
|
|||
% \subsubsection{Text and spacing settings}
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\newlength{\@metropolis@parskip}
|
||||
\setlength{\@metropolis@parskip}{0.5em}
|
||||
\setlength{\parskip}{\@metropolis@parskip}
|
||||
\newlength{\metropolis@parskip}
|
||||
\setlength{\metropolis@parskip}{0.5em}
|
||||
\setlength{\parskip}{\metropolis@parskip}
|
||||
\linespread{1.15}
|
||||
% \end{macrocode}
|
||||
%
|
||||
|
@ -584,10 +429,12 @@
|
|||
}
|
||||
% \end{macrocode}
|
||||
%
|
||||
% Process package options
|
||||
%
|
||||
%
|
||||
% \subsubsection{Process package options}
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\@metropolis@inner@setdefaults
|
||||
\metropolis@inner@setdefaults
|
||||
\ProcessPgfPackageOptions{/metropolis/inner}
|
||||
% \end{macrocode}
|
||||
%
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
%<driver> \ProvidesFile{beamerouterthememetropolis.dtx}
|
||||
%<*package>
|
||||
\NeedsTeXFormat{LaTeX2e}
|
||||
\ProvidesPackage{beamerouterthememetropolis}[2015/12/04 Metropolis outer theme]
|
||||
\ProvidesPackage{beamerouterthememetropolis}[2016/02/21 Metropolis outer theme]
|
||||
%</package>
|
||||
%<driver> \documentclass{ltxdoc}
|
||||
%<driver> \usepackage{beamerouterthememetropolis}
|
||||
|
@ -27,12 +27,15 @@
|
|||
%<*package>
|
||||
% ------------------------------------------------------------------------- \fi
|
||||
%
|
||||
% \subsection{\textsc{metropolis} outer theme}
|
||||
% \subsection{\themename outer theme}
|
||||
%
|
||||
% A |beamer| outer theme dictates the style of the frame elements traditionally
|
||||
% set outside the body of each slide: the head, footline, and frame title.
|
||||
%
|
||||
% Load required packages.
|
||||
%
|
||||
%
|
||||
% \subsubsection{Package dependencies}
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\RequirePackage{etoolbox}
|
||||
\RequirePackage{calc}
|
||||
|
@ -44,7 +47,7 @@
|
|||
% \subsubsection{Options}
|
||||
%
|
||||
% \begin{macro}{numbering}
|
||||
% This option controls the page numbering.
|
||||
% Adds slide numbers to the bottom right of each slide.
|
||||
% \begin{macrocode}
|
||||
\pgfkeys{
|
||||
/metropolis/outer/numbering/.cd,
|
||||
|
@ -57,7 +60,7 @@
|
|||
% \end{macro}
|
||||
%
|
||||
% \begin{macro}{progressbar}
|
||||
% This option controls the progressbar.
|
||||
% Adds a progress bar to the top, bottom, or frametitle of each slide.
|
||||
% \begin{macrocode}
|
||||
\pgfkeys{
|
||||
/metropolis/outer/progressbar/.cd,
|
||||
|
@ -86,58 +89,13 @@
|
|||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
% \begin{macro}{frametitleformat}
|
||||
% Control the titleformat of the frame title
|
||||
% \begin{macro}{\metropolis@outer@setdefaults}
|
||||
% Sets default values for outer theme options.
|
||||
% \begin{macrocode}
|
||||
\pgfkeys{
|
||||
/metropolis/outer/titleformat frame/.cd,
|
||||
.is choice,
|
||||
regular/.code={%
|
||||
\let\@metropolis@frametitleformat\@empty%
|
||||
\setbeamerfont{frametitle}{shape=\normalfont}%
|
||||
\renewcommand{\@metropolis@frametitlestrut}{%
|
||||
\vphantom{ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz}%
|
||||
}
|
||||
},
|
||||
smallcaps/.code={%
|
||||
\let\@metropolis@frametitleformat\@empty%
|
||||
\setbeamerfont{frametitle}{shape=\scshape}%
|
||||
\renewcommand{\@metropolis@frametitlestrut}{%
|
||||
\vphantom{ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz}%
|
||||
}
|
||||
},
|
||||
allsmallcaps/.code={%
|
||||
\let\@metropolis@frametitleformat\MakeLowercase%
|
||||
\setbeamerfont{frametitle}{shape=\scshape}%
|
||||
\renewcommand{\@metropolis@frametitlestrut}{%
|
||||
\vphantom{abcdefghijklmnopqrstuvwxyz}%
|
||||
}
|
||||
\PackageWarning{beamerthememetropolis}{%
|
||||
Be aware that titleformat frame=allsmallcaps can lead to problems%
|
||||
}
|
||||
},
|
||||
allcaps/.code={%
|
||||
\let\@metropolis@frametitleformat\MakeUppercase%
|
||||
\setbeamerfont{frametitle}{shape=\normalfont}
|
||||
\renewcommand{\@metropolis@frametitlestrut}{%
|
||||
\vphantom{ABCDEFGHIJKLMNOPQRSTUVWXYZ}%
|
||||
}
|
||||
\PackageWarning{beamerthememetropolis}{%
|
||||
Be aware that titleformat frame=allcaps can lead to problems%
|
||||
}
|
||||
},
|
||||
}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
% \begin{macro}{\@metropolis@outer@setdefaults}
|
||||
% Set default values for outer theme options.
|
||||
% \begin{macrocode}
|
||||
\newcommand{\@metropolis@outer@setdefaults}{
|
||||
\newcommand{\metropolis@outer@setdefaults}{
|
||||
\pgfkeys{/metropolis/outer/.cd,
|
||||
numbering=counter,
|
||||
progressbar=none,
|
||||
titleformat frame=regular,
|
||||
}
|
||||
}
|
||||
% \end{macrocode}%
|
||||
|
@ -148,15 +106,15 @@
|
|||
% \subsubsection{Head and footline}
|
||||
%
|
||||
% All good |beamer| presentations should already remove the navigation symbols,
|
||||
% but \textsc{metropolis} removes them automatically (just in case).
|
||||
% but \themename removes them automatically (just in case).
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\setbeamertemplate{navigation symbols}{}
|
||||
% \end{macrocode}
|
||||
%
|
||||
% Templates for the frame number. Can be omitted, shown or displayed as a
|
||||
% fraction of the total frames.
|
||||
%
|
||||
% \begin{macro}{frame numbering}
|
||||
% Templates for the frame number. Can be omitted, shown or displayed as a
|
||||
% fraction of the total frames.
|
||||
% \begin{macrocode}
|
||||
\defbeamertemplate{frame footer}{none}{}
|
||||
\defbeamertemplate{frame footer}{custom}[1]{ #1 }
|
||||
|
@ -169,7 +127,11 @@
|
|||
\insertframenumber/\inserttotalframenumber
|
||||
}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
% \begin{macro}{headline}
|
||||
% \begin{macro}{footline}
|
||||
% Templates for the head- and footline at the top and bottom of each frame.
|
||||
% \begin{macrocode}
|
||||
\defbeamertemplate{headline}{plain}{}
|
||||
\defbeamertemplate{footline}{plain}{%
|
||||
|
@ -181,68 +143,36 @@
|
|||
\end{beamercolorbox}%
|
||||
}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
% \end{macro}
|
||||
%
|
||||
%
|
||||
%
|
||||
% \subsubsection{Frametitle}
|
||||
%
|
||||
% \begin{macro}{\@metropolis@frametitleformat}
|
||||
% Define a hook to change the case format of the frame title.
|
||||
% \begin{macrocode}
|
||||
\def\@metropolis@frametitleformat#1{#1}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
% To make the |\MakeLowercase| and |\MakeUppercase| macros work in the
|
||||
% frame title we have to patch |\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{\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}}
|
||||
% \end{macrocode}
|
||||
%
|
||||
% \begin{macro}{frametitle}
|
||||
%
|
||||
% Templates for the frame title, which is optionally underlined with a
|
||||
% progress bar.
|
||||
%
|
||||
% Templates for the frame title, which is optionally underlined with a
|
||||
% progress bar.
|
||||
% \begin{macrocode}
|
||||
\newlength{\@metropolis@frametitlestrut}
|
||||
\newcommand{\metropolis@frametitlestrut}{
|
||||
\vphantom{ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz()}%
|
||||
}
|
||||
\defbeamertemplate{frametitle}{plain}{%
|
||||
\nointerlineskip%
|
||||
\begin{beamercolorbox}[%
|
||||
wd=\paperwidth,%
|
||||
sep=1.5ex,%
|
||||
]{frametitle}%
|
||||
\@metropolis@frametitlestrut\insertframetitle\@metropolis@frametitlestrut%
|
||||
\metropolis@frametitlestrut\insertframetitle\metropolis@frametitlestrut%
|
||||
\end{beamercolorbox}%
|
||||
}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
% \begin{macro}{progress bar in head/foot}
|
||||
%
|
||||
% Template for the progress bar optionally displayed below the frame title
|
||||
% on each page. Much of this code is duplicated in the inner theme's template
|
||||
% |progress bar in section page|.
|
||||
%
|
||||
% Template for the progress bar optionally displayed below the frame title
|
||||
% on each page. Much of this code is duplicated in the inner theme's
|
||||
% template |progress bar in section page|.
|
||||
% \begin{macrocode}
|
||||
\newlength{\metropolis@progressinheadfoot}
|
||||
\setbeamertemplate{progress bar in head/foot}{
|
||||
|
@ -260,10 +190,28 @@
|
|||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
% Process package options
|
||||
%
|
||||
%
|
||||
% \begin{macro}{appendix}
|
||||
% Removes page numbering and per-slide progress bars when |\appendix| is
|
||||
% called. This makes it easier to include additional ``backup slides'' at
|
||||
% the end of the presentation, especially in conjunction with the package
|
||||
% |appendixnumberbeamer|.
|
||||
% \begin{macrocode}
|
||||
\AtBeginDocument{%
|
||||
\apptocmd{\appendix}{%
|
||||
\pgfkeys{%
|
||||
/metropolis/outer/.cd,
|
||||
numbering=none,
|
||||
progressbar=none}
|
||||
}{}{}
|
||||
}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
% \subsubsection{Process package options}
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\@metropolis@outer@setdefaults
|
||||
\metropolis@outer@setdefaults
|
||||
\ProcessPgfPackageOptions{/metropolis/outer}
|
||||
% \end{macrocode}
|
||||
%
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
%<driver> \ProvidesFile{beamerthememetropolis.dtx}
|
||||
%<*package>
|
||||
\NeedsTeXFormat{LaTeX2e}
|
||||
\ProvidesPackage{beamerthememetropolis}[2015/12/04 Metropolis Beamer theme]
|
||||
\ProvidesPackage{beamerthememetropolis}[2016/02/21 Metropolis Beamer theme]
|
||||
%</package>
|
||||
%<driver> \documentclass{ltxdoc}
|
||||
%<driver> \usepackage{beamerthememetropolis}
|
||||
|
@ -27,28 +27,26 @@
|
|||
%<*package>
|
||||
% ------------------------------------------------------------------------- \fi
|
||||
%
|
||||
% \subsection{\textsc{metropolis} main theme}
|
||||
% \subsection{\themename parent 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
|
||||
% \themename theme and route the theme options accordingly. It also
|
||||
% provides some custom commands and environments for the user.
|
||||
%
|
||||
% Load the required packages.
|
||||
%
|
||||
%
|
||||
% \subsubsection{Package dependencies}
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\RequirePackage{etoolbox}
|
||||
\RequirePackage{pgfopts}
|
||||
% \end{macrocode}
|
||||
%
|
||||
%
|
||||
%
|
||||
% \subsubsection{Options}
|
||||
%
|
||||
% \begin{macro}{\metroset}
|
||||
% First of all we define a macro for the user to set options.
|
||||
% \begin{macrocode}
|
||||
\newcommand{\metroset}[1]{\pgfkeys{/metropolis/.cd,#1}}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
% Then we need to pass the unknown options to the sub-packages.
|
||||
% Most options are passed off to the component sub-packages.
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\pgfkeys{/metropolis/.cd,
|
||||
|
@ -56,42 +54,34 @@
|
|||
/metropolis/inner,
|
||||
/metropolis/outer,
|
||||
/metropolis/color,
|
||||
},
|
||||
% \end{macrocode}
|
||||
%
|
||||
% We have to forwarded keys that affect multiple sub-packages manually.
|
||||
%
|
||||
% \begin{macrocode}
|
||||
block/.code=\pgfkeysalso{
|
||||
inner/block=#1,
|
||||
color/block=#1,
|
||||
},
|
||||
/metropolis/font,
|
||||
}
|
||||
}
|
||||
% \end{macrocode}
|
||||
%
|
||||
% \begin{macro}{titleformat plain}
|
||||
% Control the titleformat of the plain title
|
||||
% Controls the formatting of the text on standout ``plain'' frames.
|
||||
% \begin{macrocode}
|
||||
\pgfkeys{
|
||||
/metropolis/titleformat plain/.cd,
|
||||
.is choice,
|
||||
regular/.code={%
|
||||
\let\@metropolis@plaintitleformat\@empty%
|
||||
\let\metropolis@plaintitleformat\@empty%
|
||||
\setbeamerfont{plain title}{shape=\normalfont}%
|
||||
},
|
||||
smallcaps/.code={%
|
||||
\let\@metropolis@plaintitleformat\@empty%
|
||||
\let\metropolis@plaintitleformat\@empty%
|
||||
\setbeamerfont{plain title}{shape=\scshape}%
|
||||
},
|
||||
allsmallcaps/.code={%
|
||||
\let\@metropolis@plaintitleformat\MakeLowercase%
|
||||
\let\metropolis@plaintitleformat\MakeLowercase%
|
||||
\setbeamerfont{plain title}{shape=\scshape}%
|
||||
\PackageWarning{beamerthememetropolis}{%
|
||||
Be aware that titleformat plain=allsmallcaps can lead to problems%
|
||||
}
|
||||
},
|
||||
allcaps/.code={%
|
||||
\let\@metropolis@plaintitleformat\MakeUppercase%
|
||||
\let\metropolis@plaintitleformat\MakeUppercase%
|
||||
\setbeamerfont{plain title}{shape=\normalfont}%
|
||||
\PackageWarning{beamerthememetropolis}{%
|
||||
Be aware that titleformat plain=allcaps can lead to problems%
|
||||
|
@ -102,14 +92,15 @@
|
|||
% \end{macro}
|
||||
%
|
||||
% \begin{macro}{titleformat}
|
||||
% Control the titleformat of every title type together
|
||||
% Sets a standard format for titles, subtitles, section titles, frame
|
||||
% titles, and the text on standout ``plain'' frames.
|
||||
% \begin{macrocode}
|
||||
\pgfkeys{
|
||||
/metropolis/titleformat/.code=\pgfkeysalso{
|
||||
inner/titleformat title=#1,
|
||||
inner/titleformat subtitle=#1,
|
||||
inner/titleformat section=#1,
|
||||
outer/titleformat frame=#1,
|
||||
font/titleformat title=#1,
|
||||
font/titleformat subtitle=#1,
|
||||
font/titleformat section=#1,
|
||||
font/titleformat frame=#1,
|
||||
titleformat plain=#1,
|
||||
}
|
||||
}
|
||||
|
@ -133,7 +124,7 @@
|
|||
% Set default values for options.
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\newcommand{\@metropolis@setdefaults}{
|
||||
\newcommand{\metropolis@setdefaults}{
|
||||
\pgfkeys{/metropolis/.cd,
|
||||
titleformat plain=regular,
|
||||
}
|
||||
|
@ -146,6 +137,7 @@
|
|||
%
|
||||
% Having processed the options, we can now load the component sub-packages of
|
||||
% the theme.
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\useinnertheme{metropolis}
|
||||
\useoutertheme{metropolis}
|
||||
|
@ -167,31 +159,40 @@
|
|||
%
|
||||
% \subsubsection{Custom commands}
|
||||
%
|
||||
% We define custom commands in this package as their proper usage may depend
|
||||
% The parent theme defines custom commands as their proper usage may depend
|
||||
% on multiple sub-packages.
|
||||
%
|
||||
% \begin{macro}{\@metropolis@plaintitleformat}
|
||||
% Define a hook to change the case format of the plain title.
|
||||
% \begin{macro}{\metroset}
|
||||
% Allows the user to change options midway through a presentation.
|
||||
% \begin{macrocode}
|
||||
\def\@metropolis@plaintitleformat#1{#1}
|
||||
\newcommand{\metroset}[1]{\pgfkeys{/metropolis/.cd,#1}}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
% \begin{macro}{\plain}
|
||||
% Creates a plain frame with dark background, suitable for displaying images
|
||||
% or a few words.
|
||||
% or a few words. The format of the text can be set with the
|
||||
% |titleformat plain| option.
|
||||
% \begin{macrocode}
|
||||
\def\metropolis@plaintitleformat#1{#1}
|
||||
\newcommand{\plain}[2][]{%
|
||||
\begingroup
|
||||
\setbeamercolor{background canvas}{
|
||||
use=palette primary,
|
||||
parent=palette primary
|
||||
\ifbeamercolorempty[bg]{palette primary}{
|
||||
\setbeamercolor{background canvas}{
|
||||
use=palette primary,
|
||||
bg=-palette primary.fg
|
||||
}
|
||||
}{
|
||||
\setbeamercolor{background canvas}{
|
||||
use=palette primary,
|
||||
bg=palette primary.bg
|
||||
}
|
||||
}
|
||||
\begin{frame}[c]{#1}
|
||||
\begin{frame}[c,noframenumbering]{#1}
|
||||
\begin{center}
|
||||
\usebeamercolor[fg]{palette primary}
|
||||
\usebeamerfont{plain title}
|
||||
\@metropolis@plaintitleformat{#2}
|
||||
\metropolis@plaintitleformat{#2}
|
||||
\end{center}
|
||||
\end{frame}
|
||||
\endgroup
|
||||
|
@ -205,10 +206,12 @@
|
|||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
% Process package options
|
||||
%
|
||||
%
|
||||
% \subsubsection{Process package options}
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\@metropolis@setdefaults
|
||||
\metropolis@setdefaults
|
||||
\ProcessPgfOptions{/metropolis}
|
||||
% \end{macrocode}
|
||||
%
|
||||
|
|
Loading…
Reference in New Issue