diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/beamertheme-metropolis/metropolistheme.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/beamertheme-metropolis/metropolistheme.dtx | 532 |
1 files changed, 532 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/beamertheme-metropolis/metropolistheme.dtx b/Master/texmf-dist/source/latex/beamertheme-metropolis/metropolistheme.dtx new file mode 100644 index 00000000000..d78c6dd2f7b --- /dev/null +++ b/Master/texmf-dist/source/latex/beamertheme-metropolis/metropolistheme.dtx @@ -0,0 +1,532 @@ +%% --------------------------------------------------------------------------- +%% Copyright 2015 Matthias Vogelgesang and the LaTeX community. A full list of +%% contributors can be found at +%% +%% https://github.com/matze/mtheme/graphs/contributors +%% +%% and the original template was based on the HSRM theme by Benjamin Weiss. +%% +%% This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 +%% International License (https://creativecommons.org/licenses/by-sa/4.0/). +%% --------------------------------------------------------------------------- + +\documentclass{ltxdoc} +%\OnlyDescription + +\usepackage{parskip} +\usepackage{setspace} +\usepackage{xspace} +\onehalfspacing + +\usepackage{etoolbox} +\usepackage{ifxetex} +\usepackage{ifluatex} + +\ifboolexpr{bool {xetex} or bool {luatex}}{ + \usepackage{fontspec} + \defaultfontfeatures{Ligatures=TeX} + + \newcounter{fontsnotfound} + \newcommand{\checkfont}[1]{% + \suppressfontnotfounderror=1% + \font\x = "#1" at 10pt + \selectfont + \ifx\x\nullfont% + \stepcounter{fontsnotfound}% + \fi% + \suppressfontnotfounderror=0% + } + + \newcommand{\iffontsexist}[3]{% + \setcounter{fontsnotfound}{0}% + \expandafter\forcsvlist\expandafter% + \checkfont\expandafter{#1}% + \ifnum\value{fontsnotfound}=0% + #2% + \else% + #3% + \fi% + } + \iffontsexist{Fira Sans Light,% + Fira Sans Light Italic,% + Fira Sans,% + Fira Sans Italic}{% + \setmainfont[BoldFont={Fira Sans}]{Fira Sans Light}% + }{% + \iffontsexist{Fira Sans Light OT,% + Fira Sans Light Italic OT,% + Fira Sans OT,% + Fira Sans Italic OT}{% + \setmainfont[BoldFont={Fira Sans OT}]{Fira Sans Light OT}% + }{% + \typeout{% + Could not find Fira Sans fonts. Creating documentation% + with standard fonts.% + } + } + } + \iffontsexist{Fira Mono, Fira Mono Bold}{% + \setmonofont{Fira Mono}% + }{% + \iffontsexist{Fira Mono OT, Fira Mono Bold OT}{% + \setmonofont{Fira Mono OT}% + }{% + \typeout{% + Could not find Fira Sans fonts. Creating documentation% + with standard monospaced fonts.% + } + } + } +}{ + \typeout{% + You need to compile with XeLaTeX or LuaLaTeX to use the Fira fonts.% + } +} + +\usepackage{enumitem} +\setlist[itemize]{noitemsep} +\setlist[enumerate]{noitemsep} + +\usepackage{xcolor} +\definecolor{mDarkBrown}{HTML}{604c38} +\definecolor{mDarkTeal}{HTML}{23373b} +\definecolor{mLightBrown}{HTML}{EB811B} +\definecolor{mLightGreen}{HTML}{14B03D} +\definecolor{mBackground}{HTML}{FFFFFF} + +\usepackage{listings} +\lstset{% + language=[LaTeX]{TeX}, + basicstyle=\ttfamily, + keywordstyle=\color{mLightBrown}\bfseries, + commentstyle=\color{mLightGreen}, + stringstyle=\color{mLightGreen}, + backgroundcolor=\color{mBackground}, + numbers=none, + numberstyle=\tiny\ttfamily, + stepnumber=2, + showspaces=false, + showstringspaces=false, + showtabs=false, + frame=none, + framerule=1pt, + tabsize=2, + rulesep=5em, + captionpos=b, + breaklines=true, + breakatwhitespace=false, + framexleftmargin=0em, + framexrightmargin=0em, + xleftmargin=0em, + xrightmargin=0em, + aboveskip=1em, + belowskip=1em, + morekeywords={usetheme,institute,maketitle,@metropolis@titleformat,% + plain,setbeamercolor,metroset,setsansfont,setmonofont}, +} +\lstMakeShortInline| + +\usepackage[colorlinks=true, + linkcolor=mLightBrown, + menucolor=mLightBrown, + pagecolor=mLightBrown, + urlcolor=mLightBrown]{hyperref} + +\newcommand{\DescribeOption}[4]{ + \DescribeMacro{#1} + \begin{minipage}[t]{\textwidth} + \textit{\textbf{\textcolor{mLightGreen}{#2}}}\dotfill\,#3\par + \begingroup + \vspace{0.5em}#4\par + \endgroup + \end{minipage} +} + +\newcommand{\themename}{\textbf{\textsc{metropolis}}\xspace} + +\GetFileInfo{beamerthememetropolis.dtx} +\title{Modern Beamer Presentations with the \themename package} +\author{Matthias Vogelgesang \\ \url{matthias.vogelgesang@gmail.com}} +\date{v1.0} + +\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. + +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; +the only visual flourish it offers is an (optional) progress bar added to each +slide or to the section slides. + +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. +However, \themename can also be used with other typefaces and \LaTeX{} build +systems. + +\themename's codebase is maintained on \href{https://github.com/matze/mtheme} +{GitHub}. If you have issues, find mistakes in the manual or want to help make +the theme even better, please get in touch there. The +\href{https://github.com/matze/mtheme/graphs/contributors} +{full list of contributors} already contains over a dozen names! + + +\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. + +\begin{lstlisting} +sudo tlmgr update --all +\end{lstlisting} + +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. + +\subsection{Installing from GitHub} + +Installing \themename, like any Beamer theme, 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 + \href{https://github.com/matze/mtheme/archive/master.zip}{zip archive} + of the latest development version. + + \item[Compile the style files] by running |make sty| inside the downloaded + directory. (Or run \LaTeX{} directly on |source/metropolistheme.ins|.) + + \item[Move the resulting |*.sty| files] to the folder containing your + presentation. To use \themename with many presentations, run + |make install| or move the |*.sty| files to a folder in your \TeX{} path + instead. + + \item[Use the theme for your presentation] by declaring + |\usetheme{metropolis}| in the preamble of your Beamer document. +\end{description} + +\themename uses the Make build system to offer the following installation +options for advanced users: + +\begin{description} + \item[|make sty|] builds the theme style files. + \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 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} + +The following code shows a minimal example of a Beamer presentation using +\themename. + +\begin{lstlisting} +\documentclass{beamer} +\usetheme{metropolis} % Use metropolis theme +\title{A minimal example} +\date{\today} +\author{Matthias Vogelgesang} +\institute{Centre for Modern Beamer Themes} +\begin{document} + \maketitle + \section{First Section} + \begin{frame}{First Frame} + Hello, world! + \end{frame} +\end{document} +\end{lstlisting} + + +\subsection{Dependencies} + +\begin{itemize} + \item TikZ + \item XeLaTeX or LuaTeX + \item \href{https://github.com/mozilla/Fira}{Fira Sans} and Mono font +\end{itemize} + +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} + +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 +\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. +\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} +\end{lstlisting} +The list of options is structured as shown in the following example. + +\DescribeOption{key}{list of possible values}{default value}{ + 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. +} + +\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. +} + +\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. +} + +\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{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. +} + +\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. +} + +\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. +} + +\DescribeOption{background}{dark, light}{light}{ + This option defines whether the background shall be dark and the foreground + be light or vice versa. +} + +\subsection{Color Customization} + +The included \themename color theme is used by default, but its colors can be +easily changed to suit your tastes. All of the theme's styles are defined in +terms of three beamer colors: +\begin{itemize} + \item |normal text| (dark fg, light bg) + \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} +\setbeamercolor{ ... }{ fg= ... , bg= ... } +\end{lstlisting} +in your preamble. For greater customization, you can redefine any of the other +stock beamer colors. In addition to the stock colors the theme defines a number +of \themename specific colors, which can also be redefined to your liking. + +\begin{lstlisting} +\setbeamercolor{progress bar}{ ... } +\setbeamercolor{title separator}{ ... } +\setbeamercolor{progress bar in head/foot}{ ... } +\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 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. + +\begin{lstlisting} +\setsansfont{Ubuntu} +\setmonofont{Ubuntu Mono} +\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: + +\begin{lstlisting} +\usefonttheme{professionalfonts} % required for mathspec +\usepackage{mathspec} +\setsansfont[BoldFont={Fira Sans}, + Numbers={OldStyle}]{Fira Sans Light} +\setmathsfont(Digits)[Numbers={Lining, Proportional}]{Fira Sans Light} +\end{lstlisting} + + +\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. +\end{macro} + +\subsection{Paul Tol's colors: a \texttt{pgfplots} theme} + +A good presentation uses colors that are + +\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} + +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. + + +\section{Known Issues} + +\subsection{Titleformats} +\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. + +\begin{itemize} + \item Some commands, like |\\|, do not work inside |\MakeLowercase| and + |\MakeUppercase|. (See \href{https://github.com/matze/mtheme/issues/125} + {\#125}) + \item Only alphabetic characters are affected by |\MakeLowercase|, so + numerals and punctuation remain at full height. This can spoil some of the + aesthetic benefits of |allsmallcaps|. (See + \href{https://github.com/matze/mtheme/issues/33}{\#33}) + \item |\MakeLowercase| and |\MakeUppercase| apply to math mode and + |\scshape| does not. This can easily introduce mathematical errors that + are hard to catch. + \item It is impossible to typeset symbols which are encoded as uppercase + letters in a different font. In particular, |\mathbb| and |\mathcal| + letters will be replaced by other math glyphs. (See + \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|. + +\section{License} + +The theme itself 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. + + + +\section{Implementation} + +\DocInput{beamerthememetropolis.dtx} +\DocInput{beamerinnerthememetropolis.dtx} +\DocInput{beamerouterthememetropolis.dtx} +\DocInput{beamerfontthememetropolis.dtx} +\DocInput{beamercolorthememetropolis.dtx} +\DocInput{pgfplotsthemetol.dtx} + +\end{document} |