summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/beamertheme-metropolis/metropolistheme.dtx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-03-14 21:25:03 +0000
committerKarl Berry <karl@freefriends.org>2016-03-14 21:25:03 +0000
commit1cdee1080e0ad8f88624629e00039d9fe89c1b54 (patch)
treede1ea75b810891ce5bc773022516edfab072ac77 /Master/texmf-dist/source/latex/beamertheme-metropolis/metropolistheme.dtx
parentecc285a4a14716fefbfab61485038eb34dd32a5e (diff)
beamertheme-metropolis (14mar16)
git-svn-id: svn://tug.org/texlive/trunk@40024 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/beamertheme-metropolis/metropolistheme.dtx')
-rw-r--r--Master/texmf-dist/source/latex/beamertheme-metropolis/metropolistheme.dtx394
1 files changed, 257 insertions, 137 deletions
diff --git a/Master/texmf-dist/source/latex/beamertheme-metropolis/metropolistheme.dtx b/Master/texmf-dist/source/latex/beamertheme-metropolis/metropolistheme.dtx
index d78c6dd2f7b..4baf2607018 100644
--- a/Master/texmf-dist/source/latex/beamertheme-metropolis/metropolistheme.dtx
+++ b/Master/texmf-dist/source/latex/beamertheme-metropolis/metropolistheme.dtx
@@ -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{%
@@ -125,6 +125,7 @@
plain,setbeamercolor,metroset,setsansfont,setmonofont},
}
\lstMakeShortInline|
+\usepackage{metalogo}
\usepackage[colorlinks=true,
linkcolor=mLightBrown,
@@ -144,23 +145,25 @@
\newcommand{\themename}{\textbf{\textsc{metropolis}}\xspace}
-\GetFileInfo{beamerthememetropolis.dtx}
+\usepackage{readprov}
+\ReadPackageInfos{beamerthememetropolis}
+
\title{Modern Beamer Presentations with the \themename package}
\author{Matthias Vogelgesang \\ \url{matthias.vogelgesang@gmail.com}}
-\date{v1.0}
+\date{\fileversion~---~\filedate}
\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.
+selection is surprisingly sparse. The stock themes share an aesthetic that can
+be a little cluttered, while 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;
@@ -171,7 +174,7 @@ By default, \themename uses
\href{https://www.mozilla.org/en-US/styleguide/products/firefox-os/typeface/}
{Fira Sans}, a gorgeous typeface commissioned by Mozilla and designed by
\href{http://www.carrois.com/fira-3-1/}{Carrois}. For best results, you will
-need the Fira typeface installed and use Xe\LaTeX{} to typeset your slides.
+need the Fira typeface installed and use \XeLaTeX\ to typeset your slides.
However, \themename can also be used with other typefaces and \LaTeX{} build
systems.
@@ -185,25 +188,37 @@ 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.
+
+For most users, we recommend installing \themename from
+\href{https://www.ctan.org}{CTAN}. If 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. If your distribution is \TeX\ Live
+(or Mac\TeX\ on OS X), the following command updates all packages.
+
+\begin{lstlisting}
+tlmgr update --all
+\end{lstlisting}
+
+If this results in an error, you may need to run it with administrative privileges:
\begin{lstlisting}
sudo tlmgr update --all
\end{lstlisting}
-For any other distribution please refer to its documentation on how to update your
-packages.
+Mac\TeX\ on OS X also provides a graphical interface for |tlmgr| called
+\TeX\ Live Utility.
+
+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.
+However, 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}
-Installing \themename, like any Beamer theme, involves four easy steps:
+If you want to use the cutting-edge development version of \themename, you can
+install it manually. Like any \LaTeX\ package, this involves four easy steps:
\begin{description}
\item[Download the source] with a |git clone| of the
\href{https://github.com/matze/mtheme}{\themename repository} or as a
@@ -230,17 +245,12 @@ options for advanced users:
\item[|make doc|] builds this documentation manual.
\item[|make demo|] builds a demo presentation to test the features of
\themename.
- \item[|make all|] builds the theme, manual, and demo presentation.
+ \item[|make all|] builds the theme and manual.
\item[|make clean|] removes the files generated by |make all|.
\item[|make install|] installs the theme into your local texmf folder.
\item[|make uninstall|] removes the theme from your local texmf folder.
- \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}
@@ -266,17 +276,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 \XeLaTeX\ or \LuaTeX.
+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}
@@ -284,118 +305,110 @@ To use this theme with \href{http://johnmacfarlane.net/pandoc/}{Pandoc}-based
presentations, you can run the following command
\begin{lstlisting}
-$ pandoc -t beamer --latex-engine=xelatex -V theme:m -o output.pdf input.md
+$ pandoc -t beamer --latex-engine=xelatex -V theme:metropolis -o output.pdf input.md
\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.
-\begin{lstlisting}
-\usetheme[<key=value list>]{metropolis}
-\end{lstlisting}
-Or you can set them at any time with the |\metroset| macro.
+
+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}
-\metroset{<key=value list>}
+\usetheme[option1=value1, option2=value2, ...]{metropolis}
\end{lstlisting}
-To set an option on a specific sub-package only you have to add the
-corresponding prefix (inner, outer, color), e.g.
+
+Options can be changed at any time --- even mid-presentation! --- with the
+|\metroset| macro.
\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'' 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}%
{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'' 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.
-}
-
-\DescribeOption{titleformat title}%
- {regular, smallcaps, allsmallcaps, allcaps}%
- {regular}{
- Control the titleformat of the title. Please refer to section
- \ref{sec:titleformats} for known issues.
+ 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 subtitle}%
- {regular, smallcaps, allsmallcaps, allcaps}%
- {regular}{
- Control the titleformat of the subtitle. Please refer to section
- \ref{sec:titleformats} for known issues.
+\DescribeOption{subsectionpage}{none, simple, progressbar}{none}{
+ Optionally adds a slide at the start of each subsection. If enabled with
+ the |simple| or |progressbar| options, the style of the |section page| will
+ be updated to match the style of the |subsection page|. Note that section
+ slides and subsection slides can appear consecutively if both are enabled;
+ you may want to use this option together with |sectionpage=none| depending
+ on the section structure of your presentation.
}
-\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{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
@@ -406,6 +419,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}
@@ -422,24 +436,32 @@ 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}
\setmonofont{Ubuntu Mono}
\end{lstlisting}
+If you are expecting to present in a large room or with an underpowered
+projector, you may want to change the font to a heavier weight of Fira to
+maximize readability.
+
+\begin{lstlisting}
+\setsansfont[BoldFont={Fira Sans SemiBold}]{Fira Sans Book}
+\end{lstlisting}
+
\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
@@ -452,41 +474,84 @@ regular lined figures for math, you have to add the following to your preamble:
\subsection{Commands}
-\begin{macro}{\plain}
-The \lstinline|\plain{title=[]}{<body>}| command sets a slide in with a plain
-dark background, which can be useful to focus attention on a single sentence
-or image.
+\subsubsection{Standout frames}
+
+The \themename inner theme offers a custom frame format with large, centered
+text and an inverted background --- perfect for focusing attention on
+single sentence or image. To use it, add the key |standout| to the frame:
+
+\begin{lstlisting}
+\begin{frame}[standout]
+ Thank you!
+\end{frame}
+\end{lstlisting}
+
+
+
+\section{\texttt{pgfplots} integration}
+
+\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's colors: a \texttt{pgfplots} theme}
-A good presentation uses colors that are
+\subsection{Paul Tol colors}
-\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}
+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
@@ -505,19 +570,74 @@ 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. This 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.
+
+
+\subsection{Notes on second screen}
+
+If you use the |[show notes on second screen]| option built in to Beamer and
+compile with \XeLaTeX, text on slides following the first section slide may
+be rendered in white instead of the regular colour. This is due to
+\href{http://tex.stackexchange.com/questions/288408/}{a bug} in Beamer
+or \XeLaTeX\ itself. You can work around it either by compiling with \LuaTeX\
+or by adding the following code to your preamble to reset the text color
+on each slide.
+
+\begin{lstlisting}
+\makeatletter
+\def\beamer@framenotesbegin{% at beginning of slide
+ \usebeamercolor[fg]{normal text}
+ \gdef\beamer@noteitems{}%
+ \gdef\beamer@notes{}%
+}
+\makeatother
+\end{lstlisting}
+
\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}