diff options
author | Karl Berry <karl@freefriends.org> | 2015-12-05 23:05:44 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2015-12-05 23:05:44 +0000 |
commit | 85ee8c199f2c14ef10dd75bd71157faa5cb51bf6 (patch) | |
tree | 4aa56eb66743945fdf28f15849d291743f359aee /Master/texmf-dist/source/latex/beamertheme-metropolis | |
parent | 5384f92b5a44dd9e84f1bab69420edf32e99c696 (diff) |
beamertheme-metropolis (6dec15)
git-svn-id: svn://tug.org/texlive/trunk@39020 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/beamertheme-metropolis')
8 files changed, 2274 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/beamertheme-metropolis/beamercolorthememetropolis.dtx b/Master/texmf-dist/source/latex/beamertheme-metropolis/beamercolorthememetropolis.dtx new file mode 100644 index 00000000000..1d5f50e2534 --- /dev/null +++ b/Master/texmf-dist/source/latex/beamertheme-metropolis/beamercolorthememetropolis.dtx @@ -0,0 +1,230 @@ +% \iffalse meta-comment ------------------------------------------------------- +% Copyright 2015 Matthias Vogelgesang and the LaTeX community. A full list of +% contributors can be found at +% +% https://github.com/matze/mtheme/graphs/contributors +% +% and the original template was based on the HSRM theme by Benjamin Weiss. +% +% This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 +% International License (https://creativecommons.org/licenses/by-sa/4.0/). +% ------------------------------------------------------------------------- \fi +% \iffalse +%<driver> \ProvidesFile{beamercolorthememetropolis.dtx} +%<*package> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{beamercolorthememetropolis}[2015/12/04 Metropolis color theme] +%</package> +%<driver> \documentclass{ltxdoc} +%<driver> \usepackage{beamercolorthememetropolis} +%<driver> \begin{document} +%<driver> \DocInput{beamercolorthememetropolis.dtx} +%<driver> \end{document} +% \fi +% \CheckSum{0} +% \StopEventually{} +% \iffalse +%<*package> +% ------------------------------------------------------------------------- \fi +% +% \subsection{\textsc{metropolis} color theme} +% +% Load required packages. +% \begin{macrocode} +\RequirePackage{pgfopts} +% \end{macrocode} +% +% +% +% \subsubsection{Options} +% +% \begin{macro}{block} +% This option controls whether the blocks are filled or transparent. +% \begin{macrocode} +\pgfkeys{ + /metropolis/color/block/.cd, + .is choice, + 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 +% \begin{macrocode} +\pgfkeys{ + /metropolis/color/background/.cd, + .is choice, + 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{macrocode} +\newcommand{\@metropolis@color@setdefaults}{ + \pgfkeys{/metropolis/color/.cd, + background=light, + block=transparent, + } +} +% \end{macrocode} +% \end{macro} +% +% +% +% \subsubsection{Base colors} +% +% \begin{macrocode} +\definecolor{mDarkBrown}{HTML}{604c38} +\definecolor{mDarkTeal}{HTML}{23373b} +\definecolor{mLightBrown}{HTML}{EB811B} +\definecolor{mLightGreen}{HTML}{14B03D} +% \end{macrocode} +% +% +% +% \subsubsection{Base styles} +% +% All colors in the \textsc{metropolis} theme are derived from the definitions +% of |normal text|, |alerted text|, and |example text|. +% +% \begin{macrocode} +\newcommand{\@metropolis@colors@dark}{ + \setbeamercolor{normal text}{% + fg=black!2, + bg=mDarkTeal + } +} +\newcommand{\@metropolis@colors@light}{ + \setbeamercolor{normal text}{% + fg=mDarkTeal, + bg=black!2 + } +} +\setbeamercolor{alerted text}{% + fg=mLightBrown +} +\setbeamercolor{example text}{% + fg=mLightGreen +} +% \end{macrocode} +% +% +% +% \subsubsection{Derived colors} +% +% The titles and structural elements (e.g. |itemize| bullets) are set in the +% same color as |normal text|. This would ideally done by setting |normal text| +% as a parent style, which we do to set |titlelike|, but this doesn't work for +% |structure| as its foreground is set explicitly in +% |beamercolorthemedefault.sty|. +% +% \begin{macrocode} +\setbeamercolor{titlelike}{use=normal text, parent=normal text} +\setbeamercolor{author}{use=normal text, parent=normal text} +\setbeamercolor{date}{use=normal text, parent=normal text} +\setbeamercolor{institute}{use=normal text, parent=normal text} +\setbeamercolor{structure}{use=normal text, fg=normal text.fg} +% \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. +% +% \begin{macrocode} +\setbeamercolor{palette primary}{% + use=normal text, + fg=normal text.bg, + bg=normal text.fg +} +\setbeamercolor{frametitle}{% + use=palette primary, + parent=palette primary +} +% \end{macrocode} +% +% The \textsc{metropolis} 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 +% with |title separator|. +% +% \begin{macrocode} +\setbeamercolor{progress bar}{% + use=alerted text, + fg=alerted text.fg, + bg=alerted text.fg!50!black!30 +} +\setbeamercolor{title separator}{ + use=progress bar, + parent=progress bar +} +\setbeamercolor{progress bar in head/foot}{% + use=progress bar, + parent=progress bar +} +\setbeamercolor{progress bar in section page}{ + use=progress bar, + parent=progress bar +} +% \end{macrocode} +% +% Blocks +% +% \begin{macrocode} +\newcommand{\@metropolis@block@transparent}{ + \setbeamercolor{block title}{use=normal text, parent=normal text} +} +\newcommand{\@metropolis@block@fill}{ + \setbeamercolor{block title}{% + use=normal text, + fg=normal text.fg, + bg=normal text.bg!80!fg + } +} +\setbeamercolor{block title alerted}{% + use={block title, alerted text}, + bg=block title.bg, + fg=alerted text.fg +} +\setbeamercolor{block title example}{% + use={block title, example text}, + bg=block title.bg, + fg=example text.fg +} +\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 +% +% \begin{macrocode} +\setbeamercolor{footnote}{fg=normal text.fg!90} +\setbeamercolor{footnote mark}{fg=.} +% \end{macrocode} +% +% Process package options +% +% \begin{macrocode} +\@metropolis@color@setdefaults +\ProcessPgfPackageOptions{/metropolis/color} +% \end{macrocode} +% +% \begin{macrocode} +\mode<all> +% \end{macrocode} +% +% \iffalse +%</package> +% \fi +% \Finale +\endinput diff --git a/Master/texmf-dist/source/latex/beamertheme-metropolis/beamerfontthememetropolis.dtx b/Master/texmf-dist/source/latex/beamertheme-metropolis/beamerfontthememetropolis.dtx new file mode 100644 index 00000000000..4c9b4516bd3 --- /dev/null +++ b/Master/texmf-dist/source/latex/beamertheme-metropolis/beamerfontthememetropolis.dtx @@ -0,0 +1,166 @@ +% \iffalse meta-comment ------------------------------------------------------- +% Copyright 2015 Matthias Vogelgesang and the LaTeX community. A full list of +% contributors can be found at +% +% https://github.com/matze/mtheme/graphs/contributors +% +% and the original template was based on the HSRM theme by Benjamin Weiss. +% +% This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 +% International License (https://creativecommons.org/licenses/by-sa/4.0/). +% ------------------------------------------------------------------------- \fi +% \iffalse +%<driver> \ProvidesFile{beamerfontthememetropolis.dtx} +%<*package> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{beamerfontthememetropolis}[2015/12/04 Metropolis font theme] +%</package> +%<driver> \documentclass{ltxdoc} +%<driver> \usepackage{beamerfontthememetropolis} +%<driver> \begin{document} +%<driver> \DocInput{beamerfontthememetropolis.dtx} +%<driver> \end{document} +% \fi +% \CheckSum{0} +% \StopEventually{} +% \iffalse +%<*package> +% ------------------------------------------------------------------------- \fi +% \subsection{\textsc{metropolis} font theme} +% +% +% Load required packages. +% \begin{macrocode} +\RequirePackage{etoolbox} +\RequirePackage{ifxetex} +\RequirePackage{ifluatex} +% \end{macrocode} +% +% \subsubsection{Load Fira font} +% If the presentation is compiled with XeLaTeX or LuaLaTeX the fontspec package +% will be loaded. +% \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. +% \begin{macrocode} + \newcounter{fontsnotfound} + \newcommand{\checkfont}[1]{% + \suppressfontnotfounderror=1% + \font\x = "#1" at 10pt + \selectfont + \ifx\x\nullfont% + \stepcounter{fontsnotfound}% + \fi% + \suppressfontnotfounderror=0% + } + +% \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{macrocode} + \newcommand{\iffontsexist}[3]{% + \setcounter{fontsnotfound}{0}% + \expandafter\forcsvlist\expandafter% + \checkfont\expandafter{#1}% + \ifnum\value{fontsnotfound}=0% + #2% + \else% + #3% + \fi% + } +% \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. +% +% \begin{macrocode} + \iffontsexist{Fira Sans Light,% + Fira Sans Light Italic,% + Fira Sans,% + Fira Sans Italic}{% + \setsansfont[BoldFont={Fira Sans}]{Fira Sans Light}% + }{% + \iffontsexist{Fira Sans Light OT,% + Fira Sans Light Italic OT,% + Fira Sans OT,% + Fira Sans Italic OT}{% + \setsansfont[BoldFont={Fira Sans OT}]{Fira Sans Light OT}% + }{% + \PackageWarning{beamerthememetropolis}{% + Could not find Fira Sans fonts% + } + } + } + \iffontsexist{Fira Mono, Fira Mono Bold}{% + \setmonofont{Fira Mono}% + }{% + \iffontsexist{Fira Mono OT, Fira Mono Bold OT}{% + \setmonofont{Fira Mono OT}% + }{% + \PackageWarning{beamerthememetropolis}{% + Could not find Fira Mono fonts% + } + } + } + \AtBeginEnvironment{tabular}{% + \addfontfeature{Numbers={Monospaced}}% + } +}{% + \PackageWarning{beamerthememetropolis}{% + You need to compile with XeLaTeX or LuaLaTeX to use the Fira fonts% + } +} +% \end{macrocode} +% +% +% +% \subsubsection{General font definitions} +% +% \begin{macrocode} +\setbeamerfont{title}{size=\Large,% + series=\bfseries} +\setbeamerfont{author}{size=\small} +\setbeamerfont{date}{size=\small} +\setbeamerfont{section title}{size=\Large,% + series=\bfseries} +\setbeamerfont{plain title}{size=\Large,% + series=\bfseries} +\setbeamerfont{block title}{size=\normalsize,% + series=\bfseries} +\setbeamerfont{block title alerted}{size=\normalsize,% + series=\bfseries} +\setbeamerfont*{subtitle}{size=\large} +\setbeamerfont{frametitle}{size=\large,% + series=\bfseries} +\setbeamerfont{caption}{size=\small} +\setbeamerfont{caption name}{series=\bfseries} +\setbeamerfont{description item}{series=\bfseries} +\setbeamerfont{page number in head/foot}{size=\scriptsize} +\setbeamerfont{bibliography entry author}{size=\normalsize,% + series=\normalfont} +\setbeamerfont{bibliography entry title}{size=\normalsize,% + series=\bfseries} +\setbeamerfont{bibliography entry location}{size=\normalsize,% + series=\normalfont} +\setbeamerfont{bibliography entry note}{size=\small,% + series=\normalfont} +% \end{macrocode} +% +% \iffalse +%</package> +% \fi +% \Finale +\endinput diff --git a/Master/texmf-dist/source/latex/beamertheme-metropolis/beamerinnerthememetropolis.dtx b/Master/texmf-dist/source/latex/beamertheme-metropolis/beamerinnerthememetropolis.dtx new file mode 100644 index 00000000000..21daf14a7bc --- /dev/null +++ b/Master/texmf-dist/source/latex/beamertheme-metropolis/beamerinnerthememetropolis.dtx @@ -0,0 +1,598 @@ +% \iffalse meta-comment ------------------------------------------------------- +% Copyright 2015 Matthias Vogelgesang and the LaTeX community. A full list of +% contributors can be found at +% +% https://github.com/matze/mtheme/graphs/contributors +% +% and the original template was based on the HSRM theme by Benjamin Weiss. +% +% This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 +% International License (https://creativecommons.org/licenses/by-sa/4.0/). +% ------------------------------------------------------------------------- \fi +% \iffalse +%<driver> \ProvidesFile{beamerinnerthememetropolis.dtx} +%<*package> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{beamerinnerthememetropolis}[2015/12/04 Metropolis inner theme] +%</package> +%<driver> \documentclass{ltxdoc} +%<driver> \usepackage{beamerinnerthememetropolis} +%<driver> \begin{document} +%<driver> \DocInput{beamerinnerthememetropolis.dtx} +%<driver> \end{document} +% \fi +% \CheckSum{0} +% \StopEventually{} +% \iffalse +%<*package> +% ------------------------------------------------------------------------- \fi +% +% \subsection{\textsc{metropolis} inner theme} +% +% A |beamer| inner theme dictates the style of the frame elements traditionally +% set in the ``body'' of each slide. These include: +% +% \begin{itemize} +% \item title, part, and section pages; +% \item itemize, enumerate, and description environments; +% \item block environments including theorems and proofs; +% \item figures and tables; and +% \item footnotes and plain text. +% \end{itemize} +% +% Load required packages. +% \begin{macrocode} +\RequirePackage{etoolbox} +\RequirePackage{calc} +\RequirePackage{pgfopts} +\RequirePackage{tikz} +% \end{macrocode} +% +% +% +% \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, +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@metropolis@inner@setdefaults} +% Set default values for inner theme options. +% \begin{macrocode} +\newcommand{\@metropolis@inner@setdefaults}{ + \pgfkeys{/metropolis/inner/.cd, + sectionpage=progressbar, + block=transparent, + titleformat title=regular, + titleformat subtitle=regular, + titleformat section=regular, + } +} +% \end{macrocode} +% \end{macro} +% +% +% +% \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 +% space on the title slide. +% \begin{macrocode} +\setbeamertemplate{title page}{ + \begin{minipage}[b][\paperheight]{\textwidth} + \ifx\inserttitlegraphic\@empty\else\usebeamertemplate*{title graphic}\fi + \vfill% + \ifx\inserttitle\@empty\else\usebeamertemplate*{title}\fi + \ifx\insertsubtitle\@empty\else\usebeamertemplate*{subtitle}\fi + \usebeamertemplate*{title separator} +% \end{macrocode} +% +% Beamer's definition of |\insertauthor| is always nonempty, so we have +% to test another macro initialized by |\author{...}| to see if the user has +% defined an author. This solution was suggested by Enrico Gregorio in an +% answer to \href{https://tex.stackexchange.com/questions/241306/}{this +% Stack Exchange question}. +% +% \begin{macrocode} + \ifx\beamer@shortauthor\@empty\else\usebeamertemplate*{author}\fi + \ifx\insertdate\@empty\else\usebeamertemplate*{date}\fi + \ifx\insertinstitute\@empty\else\usebeamertemplate*{institute}\fi + \vfill + \vspace*{1mm} + \end{minipage} +} +% \end{macrocode} +% \end{macro}% +% +% Normal people should use |\maketitle| or |\titlepage| instead of using the +% |title page| beamer template directly. Beamer already defines these macros, +% but we patch them here to make the title page |[plain]| by default, remove +% |\@thanks|, and ensure the title frame number doesn't count. +% +% \begin{macro}{\maketitle} +% \begin{macro}{\titlepage} +% +% Inserts the title frame, or causes the current frame to use the +% |title page| template. +% +% \begin{macrocode} +\def\maketitle{% + \ifbeamer@inframe + \titlepage + \else + \frame[plain]{\titlepage} + \fi +} +\def\titlepage{% + \usebeamertemplate{title page} +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{title graphic} +% Set the title graphic in a zero-height box, so it doesn't change the +% position of other elements. +% \begin{macrocode} +\setbeamertemplate{title graphic}{ + \vbox to 0pt { + \vspace*{2em} + \inserttitlegraphic% + }% + \nointerlineskip% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{title} +% Set the title on the title page. +% \begin{macrocode} +\setbeamertemplate{title}{ + \raggedright% + \linespread{1.0}% + \@metropolis@titleformat{\inserttitle}% + \par% + \vspace*{0.5em} +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{subtitle} +% Set the subtitle on the title page. +% \begin{macrocode} +\setbeamertemplate{subtitle}{ + \@metropolis@subtitleformat{\insertsubtitle}% + \par% + \vspace*{0.5em} +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{title separator} +% Template to set the title graphic in a zero-height box. (It won't +% change the position of other elements.) +% \begin{macrocode} +\setbeamertemplate{title separator}{ + \begin{tikzpicture} + \draw[fg, fill=fg] (0,0) rectangle (\textwidth, 0.4pt); + \end{tikzpicture}% + \par% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{author} +% Set the author on the title page. +% \begin{macrocode} +\setbeamertemplate{author}{ + \vspace*{2em} + \insertauthor% + \par% + \vspace*{0.25em} +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{date} +% Set the date on the title page. +% \begin{macrocode} +\setbeamertemplate{date}{ + \insertdate% + \par% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{institute} +% Set the institute on the title page. +% \begin{macrocode} +\setbeamertemplate{institute}{ + \vspace*{3mm} + \insertinstitute% + \par% +} +% \end{macrocode} +% \end{macro} +% +% +% +% \subsubsection{Section page} +% +% \begin{macro}{section page} +% +% Template for the section title slide at the beginning of each section. +% +% \begin{macrocode} +\newcommand{\@metropolis@sectionpage@none}{ + \AtBeginSection{ + % intenionally empty + } +} +\defbeamertemplate{section page}{simple}{ + \centering + \usebeamercolor[fg]{section title} + \usebeamerfont{section title} + \insertsectionhead\\ +} +\newcommand{\@metropolis@sectionpage@simple}{ + \setbeamertemplate{section page}[simple] + \AtBeginSection{ + \ifbeamer@inframe + \sectionpage + \else + \frame[plain,c]{\sectionpage} + \fi + } +} +\defbeamertemplate{section page}{progressbar}{ + \centering + \begin{minipage}{22em} + \usebeamercolor[fg]{section title} + \usebeamerfont{section title} + \insertsectionhead\\[-1ex] + \usebeamertemplate*{progress bar in section page} + \end{minipage} + \par +} +\newcommand{\@metropolis@sectionpage@progressbar}{ + \setbeamertemplate{section page}[progressbar] + \AtBeginSection{ + \ifbeamer@inframe + \sectionpage + \else + \frame[plain,c]{\sectionpage} + \fi + } +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{progress bar in section page} +% +% Template for the progress bar displayed by default on the section page. +% This code is duplicated in large part in the outer theme's template +% |progress bar in head/foot|. +% +% \begin{macrocode} +\newlength{\metropolis@progressonsectionpage} +\setbeamertemplate{progress bar in section page}{ + \setlength{\metropolis@progressonsectionpage}{% + \textwidth * \ratio{\insertframenumber pt}{\inserttotalframenumber pt}% + }% + \begin{tikzpicture} + \draw[bg, fill=bg] (0,0) rectangle (\textwidth, 0.4pt); + \draw[fg, fill=fg] (0,0) rectangle (\metropolis@progressonsectionpage, 0.4pt); + \end{tikzpicture}% +} +% \end{macrocode} +% +% The above code assumes that |\insertframenumber| is less than or equal to +% |\inserttotalframenumber|. However, this is not true on the first compile; +% in the absence of an |.aux| file, |\inserttotalframenumber| defaults to 1. +% This behaviour could cause fatal errors for long presentations, as +% |\metropolis@progressonsectionpage| would exceed \TeX's maximum length +% (16383.99999pt, roughly 5.75 metres or 18.9 feet). +% To avoid this, we increase the default value for |\inserttotalframenumber|; +% presentations with over 4000 slides will still break on first compile, but +% users in that situation likely have deeper problems to solve. +% +% \begin{macrocode} +\def\inserttotalframenumber{100} +% \end{macrocode} +% \end{macro} +% +% +% +% \subsubsection{Block environments} +% +% Regular block environment +% +% \begin{macrocode} +\newlength{\@metropolis@blockskip} +\setbeamertemplate{block begin}{% + \setlength{\parskip}{\@metropolis@parskip} + \vspace*{1ex} + \begin{beamercolorbox}[% + ht=2.4ex, + dp=1ex, + leftskip=\@metropolis@blockskip, + rightskip=\@metropolis@blockskip]{block title} + \usebeamerfont*{block title}\insertblocktitle% + \end{beamercolorbox}% + \vspace*{-1pt} + \usebeamerfont{block body}% + \begin{beamercolorbox}[% + dp=1ex, + leftskip=\@metropolis@blockskip, + rightskip=\@metropolis@blockskip, + vmode]{block body}% +} +\setbeamertemplate{block end}{% + \end{beamercolorbox} + \vspace*{0.2ex} +} +% \end{macrocode} +% +% Alerted block environment +% +% \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} +} +% \end{macrocode} +% +% +% +% \subsubsection{Lists and floats} +% +% \begin{macrocode} +\setbeamertemplate{itemize items}{\textbullet} +\setbeamertemplate{caption label separator}{: } +\setbeamertemplate{caption}[numbered] +% \end{macrocode} +% +% +% +% \subsubsection{Footnotes} +% \begin{macrocode} +\setbeamertemplate{footnote}{% + \parindent 0em\noindent% + \raggedright + \usebeamercolor{footnote}\hbox to 0.8em{\hfil\insertfootnotemark}\insertfootnotetext\par% +} +% \end{macrocode} +% +% +% +% \subsubsection{Text and spacing settings} +% +% \begin{macrocode} +\newlength{\@metropolis@parskip} +\setlength{\@metropolis@parskip}{0.5em} +\setlength{\parskip}{\@metropolis@parskip} +\linespread{1.15} +% \end{macrocode} +% +% By default, Beamer frames offer the |c| option to \textit{almost} vertically +% center the text, but the placement is a little too high. To fix this, we +% redefine the |c| option to equalize |\beamer@frametopskip| and +% |\beamer@framebottomskip|. This solution was suggested by Enrico Gregorio in +% an answer to \href{http://tex.stackexchange.com/questions/247826/}{this +% Stack Exchange question}. +% +% \begin{macrocode} +\define@key{beamerframe}{c}[true]{% centered + \beamer@frametopskip=0pt plus 1fill\relax% + \beamer@framebottomskip=0pt plus 1fill\relax% + \beamer@frametopskipautobreak=0pt plus .4\paperheight\relax% + \beamer@framebottomskipautobreak=0pt plus .6\paperheight\relax% + \def\beamer@initfirstlineunskip{}% +} +% \end{macrocode} +% +% Process package options +% +% \begin{macrocode} +\@metropolis@inner@setdefaults +\ProcessPgfPackageOptions{/metropolis/inner} +% \end{macrocode} +% +% \iffalse +%</package> +% \fi +% \Finale +\endinput diff --git a/Master/texmf-dist/source/latex/beamertheme-metropolis/beamerouterthememetropolis.dtx b/Master/texmf-dist/source/latex/beamertheme-metropolis/beamerouterthememetropolis.dtx new file mode 100644 index 00000000000..2b3df9d73fd --- /dev/null +++ b/Master/texmf-dist/source/latex/beamertheme-metropolis/beamerouterthememetropolis.dtx @@ -0,0 +1,268 @@ +% \iffalse meta-comment ------------------------------------------------------- +% Copyright 2015 Matthias Vogelgesang and the LaTeX community. A full list of +% contributors can be found at +% +% https://github.com/matze/mtheme/graphs/contributors +% +% and the original template was based on the HSRM theme by Benjamin Weiss. +% +% This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 +% International License (https://creativecommons.org/licenses/by-sa/4.0/). +% ------------------------------------------------------------------------- \fi +% \iffalse +%<driver> \ProvidesFile{beamerouterthememetropolis.dtx} +%<*package> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{beamerouterthememetropolis}[2015/12/04 Metropolis outer theme] +%</package> +%<driver> \documentclass{ltxdoc} +%<driver> \usepackage{beamerouterthememetropolis} +%<driver> \begin{document} +%<driver> \DocInput{beamerouterthememetropolis.dtx} +%<driver> \end{document} +% \fi +% \CheckSum{0} +% \StopEventually{} +% \iffalse +%<*package> +% ------------------------------------------------------------------------- \fi +% +% \subsection{\textsc{metropolis} 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. +% \begin{macrocode} +\RequirePackage{etoolbox} +\RequirePackage{calc} +\RequirePackage{pgfopts} +% \end{macrocode} +% +% +% +% \subsubsection{Options} +% +% \begin{macro}{numbering} +% This option controls the page numbering. +% \begin{macrocode} +\pgfkeys{ + /metropolis/outer/numbering/.cd, + .is choice, + none/.code=\setbeamertemplate{frame numbering}[none], + counter/.code=\setbeamertemplate{frame numbering}[counter], + fraction/.code=\setbeamertemplate{frame numbering}[fraction], +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{progressbar} +% This option controls the progressbar. +% \begin{macrocode} +\pgfkeys{ + /metropolis/outer/progressbar/.cd, + .is choice, + none/.code={% + \setbeamertemplate{headline}[plain] + \setbeamertemplate{frametitle}[plain] + \setbeamertemplate{footline}[plain] + }, + head/.code={\pgfkeys{/metropolis/outer/progressbar=none} + \addtobeamertemplate{headline}{}{% + \usebeamertemplate*{progress bar in head/foot} + } + }, + frametitle/.code={\pgfkeys{/metropolis/outer/progressbar=none} + \addtobeamertemplate{frametitle}{}{% + \usebeamertemplate*{progress bar in head/foot} + } + }, + foot/.code={\pgfkeys{/metropolis/outer/progressbar=none} + \addtobeamertemplate{footline}{}{% + \usebeamertemplate*{progress bar in head/foot}% + } + }, +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{frametitleformat} +% Control the titleformat of the frame title +% \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}{ + \pgfkeys{/metropolis/outer/.cd, + numbering=counter, + progressbar=none, + titleformat frame=regular, + } +} +% \end{macrocode}% +% \end{macro} +% +% +% +% \subsubsection{Head and footline} +% +% All good |beamer| presentations should already remove the navigation symbols, +% but \textsc{metropolis} 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{macrocode} +\defbeamertemplate{frame numbering}{none}{} +\defbeamertemplate{frame numbering}{counter}{\insertframenumber} +\defbeamertemplate{frame numbering}{fraction}{ + \insertframenumber/\inserttotalframenumber +} +% \end{macrocode} +% +% \begin{macrocode} +\defbeamertemplate{headline}{plain}{} +\defbeamertemplate{footline}{plain}{% + \begin{beamercolorbox}[wd=\textwidth, sep=3ex]{footline}% + \hfill% + \usebeamerfont{page number in head/foot}% + \usebeamertemplate*{frame numbering} + \end{beamercolorbox}% +} +% \end{macrocode} +% +% +% +% \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. +% +% \begin{macrocode} +\newlength{\@metropolis@frametitlestrut} +\defbeamertemplate{frametitle}{plain}{% + \nointerlineskip% + \begin{beamercolorbox}[% + wd=\paperwidth,% + sep=1.5ex,% + ]{frametitle}% + \@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|. +% +% \begin{macrocode} +\newlength{\metropolis@progressinheadfoot} +\setbeamertemplate{progress bar in head/foot}{ + \nointerlineskip + \setlength{\metropolis@progressinheadfoot}{% + \paperwidth * \ratio{\insertframenumber pt}{\inserttotalframenumber pt}% + }% + \begin{beamercolorbox}[wd=\paperwidth]{progress bar in head/foot} + \begin{tikzpicture} + \draw[bg, fill=bg] (0,0) rectangle (\paperwidth, 0.4pt); + \draw[fg, fill=fg] (0,0) rectangle (\metropolis@progressinheadfoot, 0.4pt); + \end{tikzpicture}% + \end{beamercolorbox} +} +% \end{macrocode} +% \end{macro} +% +% Process package options +% +% \begin{macrocode} +\@metropolis@outer@setdefaults +\ProcessPgfPackageOptions{/metropolis/outer} +% \end{macrocode} +% +% \iffalse +%</package> +% \fi +% \Finale +\endinput diff --git a/Master/texmf-dist/source/latex/beamertheme-metropolis/beamerthememetropolis.dtx b/Master/texmf-dist/source/latex/beamertheme-metropolis/beamerthememetropolis.dtx new file mode 100644 index 00000000000..0cec598d0db --- /dev/null +++ b/Master/texmf-dist/source/latex/beamertheme-metropolis/beamerthememetropolis.dtx @@ -0,0 +1,219 @@ +% \iffalse meta-comment ------------------------------------------------------- +% Copyright 2015 Matthias Vogelgesang and the LaTeX community. A full list of +% contributors can be found at +% +% https://github.com/matze/mtheme/graphs/contributors +% +% and the original template was based on the HSRM theme by Benjamin Weiss. +% +% This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 +% International License (https://creativecommons.org/licenses/by-sa/4.0/). +% ------------------------------------------------------------------------- \fi +% \iffalse +%<driver> \ProvidesFile{beamerthememetropolis.dtx} +%<*package> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{beamerthememetropolis}[2015/12/04 Metropolis Beamer theme] +%</package> +%<driver> \documentclass{ltxdoc} +%<driver> \usepackage{beamerthememetropolis} +%<driver> \begin{document} +%<driver> \DocInput{beamerthememetropolis.dtx} +%<driver> \end{document} +% \fi +% \CheckSum{0} +% \StopEventually{} +% \iffalse +%<*package> +% ------------------------------------------------------------------------- \fi +% +% \subsection{\textsc{metropolis} main theme} +% +% The primary job of this package is to load the component sub-packages of the +% \textsc{metropolis} theme and route the theme options accordingly. It also +% provides some custom commands and environments for the user. +% +% Load the required packages. +% \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. +% +% \begin{macrocode} +\pgfkeys{/metropolis/.cd, + .search also={ + /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, + }, +} +% \end{macrocode} +% +% \begin{macro}{titleformat plain} +% Control the titleformat of the plain title +% \begin{macrocode} +\pgfkeys{ + /metropolis/titleformat plain/.cd, + .is choice, + regular/.code={% + \let\@metropolis@plaintitleformat\@empty% + \setbeamerfont{plain title}{shape=\normalfont}% + }, + smallcaps/.code={% + \let\@metropolis@plaintitleformat\@empty% + \setbeamerfont{plain title}{shape=\scshape}% + }, + allsmallcaps/.code={% + \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% + \setbeamerfont{plain title}{shape=\normalfont}% + \PackageWarning{beamerthememetropolis}{% + Be aware that titleformat plain=allcaps can lead to problems% + } + }, +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{titleformat} +% Control the titleformat of every title type together +% \begin{macrocode} +\pgfkeys{ + /metropolis/titleformat/.code=\pgfkeysalso{ + inner/titleformat title=#1, + inner/titleformat subtitle=#1, + inner/titleformat section=#1, + outer/titleformat frame=#1, + titleformat plain=#1, + } +} +% \end{macrocode} +% \end{macro} +% +% For backwards compatibility with earlier betas of the theme, we implement +% deprecated option names as aliases to the corresponding |key=value| options. +% +% \begin{macrocode} +\pgfkeys{/metropolis/.cd, + usetitleprogressbar/.code=\pgfkeysalso{outer/progressbar=frametitle}, + noslidenumbers/.code=\pgfkeysalso{outer/numbering=none}, + usetotalslideindicator/.code=\pgfkeysalso{outer/numbering=fraction}, + nosectionslide/.code=\pgfkeysalso{inner/sectionpage=none}, + darkcolors/.code=\pgfkeysalso{color/background=dark}, + blockbg/.code=\pgfkeysalso{color/block=fill, inner/block=fill}, +} +% \end{macrocode} +% +% Set default values for options. +% +% \begin{macrocode} +\newcommand{\@metropolis@setdefaults}{ + \pgfkeys{/metropolis/.cd, + titleformat plain=regular, + } +} +% \end{macrocode} +% +% +% +% \subsubsection{Component sub-packages} +% +% Having processed the options, we can now load the component sub-packages of +% the theme. +% \begin{macrocode} +\useinnertheme{metropolis} +\useoutertheme{metropolis} +\usecolortheme{metropolis} +\usefonttheme{metropolis} +% \end{macrocode} +% +% The |tol| theme for |pgfplots| is only loaded if |pgfplots| is used. +% +% \begin{macrocode} +\AtEndPreamble{% + \@ifpackageloaded{pgfplots}{% + \RequirePackage{pgfplotsthemetol} + }{} +} +% \end{macrocode} +% +% +% +% \subsubsection{Custom commands} +% +% We define custom commands in this package 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{macrocode} +\def\@metropolis@plaintitleformat#1{#1} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\plain} +% Creates a plain frame with dark background, suitable for displaying images +% or a few words. +% \begin{macrocode} +\newcommand{\plain}[2][]{% + \begingroup + \setbeamercolor{background canvas}{ + use=palette primary, + parent=palette primary + } + \begin{frame}[c]{#1} + \begin{center} + \usebeamercolor[fg]{palette primary} + \usebeamerfont{plain title} + \@metropolis@plaintitleformat{#2} + \end{center} + \end{frame} + \endgroup +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\mreducelistspacing} +% \begin{macrocode} +\newcommand{\mreducelistspacing}{\vspace{-\topsep}} +% \end{macrocode} +% \end{macro} +% +% Process package options +% +% \begin{macrocode} +\@metropolis@setdefaults +\ProcessPgfOptions{/metropolis} +% \end{macrocode} +% +% \iffalse +%</package> +% \fi +% \Finale +\endinput diff --git a/Master/texmf-dist/source/latex/beamertheme-metropolis/beamerthememetropolis.ins b/Master/texmf-dist/source/latex/beamertheme-metropolis/beamerthememetropolis.ins new file mode 100644 index 00000000000..5a78e84ba72 --- /dev/null +++ b/Master/texmf-dist/source/latex/beamertheme-metropolis/beamerthememetropolis.ins @@ -0,0 +1,71 @@ +%% --------------------------------------------------------------------------- +%% 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/). +%% --------------------------------------------------------------------------- + +\input{docstrip.tex} +\keepsilent +\askforoverwritefalse +\usedir{tex/latex/mtheme} + +\preamble +--------------------------------------------------------------------------- +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/). +--------------------------------------------------------------------------- +\endpreamble + +\generate{\file{beamerthememetropolis.sty}{% + \from{beamerthememetropolis.dtx}{package}} + } +\generate{\file{beamerinnerthememetropolis.sty}{% + \from{beamerinnerthememetropolis.dtx}{package}} + } +\generate{\file{beamerouterthememetropolis.sty}{% + \from{beamerouterthememetropolis.dtx}{package}} + } +\generate{\file{beamerfontthememetropolis.sty}{% + \from{beamerfontthememetropolis.dtx}{package}} + } +\generate{\file{beamercolorthememetropolis.sty}{% + \from{beamercolorthememetropolis.dtx}{package}} + } +\generate{\file{pgfplotsthemetol.sty}{% + \from{pgfplotsthemetol.dtx}{package}} + } + +\obeyspaces +\Msg{**************************************************************} +\Msg{* *} +\Msg{* To finish the installation you have to move the following *} +\Msg{* files into a directory searched by TeX: *} +\Msg{* *} +\Msg{* beamerthememetropolis.sty *} +\Msg{* beamerinnerthememetropolis.sty *} +\Msg{* beamerouterthememetropolis.sty *} +\Msg{* beamerfontthememetropolis.sty *} +\Msg{* beamercolorthememetropolis.sty *} +\Msg{* pgfplotsthemetol.sty *} +\Msg{* *} +\Msg{* To produce the documentation run the file mtheme.dtx *} +\Msg{* through LaTeX. *} +\Msg{* *} +\Msg{* Happy TeXing! *} +\Msg{* *} +\Msg{**************************************************************} + +\endbatchfile 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} diff --git a/Master/texmf-dist/source/latex/beamertheme-metropolis/pgfplotsthemetol.dtx b/Master/texmf-dist/source/latex/beamertheme-metropolis/pgfplotsthemetol.dtx new file mode 100644 index 00000000000..77598b06ddb --- /dev/null +++ b/Master/texmf-dist/source/latex/beamertheme-metropolis/pgfplotsthemetol.dtx @@ -0,0 +1,190 @@ +% \iffalse meta-comment ------------------------------------------------------- +% Copyright 2015 Matthias Vogelgesang and the LaTeX community. A full list of +% contributors can be found at +% +% https://github.com/matze/mtheme/graphs/contributors +% +% and these colors were inspired by the Paul Tol 21-color Salute by Peter Carl. +% +% http://www.r-bloggers.com/the-paul-tol-21-color-salute/ +% +% This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 +% International License (https://creativecommons.org/licenses/by-sa/4.0/). +% ------------------------------------------------------------------------- \fi +% \iffalse +%<driver> \ProvidesFile{pgfplotsthemetol.dtx} +%<*package> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{pgfplotsthemetol} + [2015/06/16 PGFplots colors based on Paul Tol's SRON technical note] +%</package> +%<driver> \documentclass{ltxdoc} +%<driver> \usepackage{pgfplotsthemetol} +%<driver> \begin{document} +%<driver> \DocInput{pgfplotsthemetol.dtx} +%<driver> \end{document} +% \fi +% \CheckSum{0} +% \StopEventually{} +% \iffalse +%<*package> +% ------------------------------------------------------------------------- \fi +% +% \subsection{Tol \texttt{pgfplots} theme} +% +% Paul Tol's 12-color palette\footnote{Tol actually describes several +% palettes; these colours are taken from the bottom row of Figure 3 in his +% technical note.} is as follows: +% +% \begin{macrocode} +\definecolor{TolDarkPurple}{HTML}{332288} +\definecolor{TolDarkBlue}{HTML}{6699CC} +\definecolor{TolLightBlue}{HTML}{88CCEE} +\definecolor{TolLightGreen}{HTML}{44AA99} +\definecolor{TolDarkGreen}{HTML}{117733} +\definecolor{TolDarkBrown}{HTML}{999933} +\definecolor{TolLightBrown}{HTML}{DDCC77} +\definecolor{TolDarkRed}{HTML}{661100} +\definecolor{TolLightRed}{HTML}{CC6677} +\definecolor{TolLightPink}{HTML}{AA4466} +\definecolor{TolDarkPink}{HTML}{882255} +\definecolor{TolLightPurple}{HTML}{AA4499} +% \end{macrocode} +% +% To use these colors, we describe ``cycle lists'' from which PGF chooses +% styles for the different series in a chart. +% +% \begin{macro}{mbarplot cycle} +% Colors and styles intended for bar charts with up to 12 series. +% +% \begin{macrocode} +\pgfplotscreateplotcyclelist{mbarplot cycle}{% + {draw=TolDarkBlue, fill=TolDarkBlue!70}, + {draw=TolLightBrown, fill=TolLightBrown!70}, + {draw=TolLightGreen, fill=TolLightGreen!70}, + {draw=TolDarkPink, fill=TolDarkPink!70}, + {draw=TolDarkPurple, fill=TolDarkPurple!70}, + {draw=TolDarkRed, fill=TolDarkRed!70}, + {draw=TolDarkBrown, fill=TolDarkBrown!70}, + {draw=TolLightRed, fill=TolLightRed!70}, + {draw=TolLightPink, fill=TolLightPink!70}, + {draw=TolLightPurple, fill=TolLightPurple!70}, + {draw=TolLightBlue, fill=TolLightBlue!70}, + {draw=TolDarkGreen, fill=TolDarkGreen!70}, +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{mlineplot cycle} +% Colors and styles intended for line charts with up to 4 series. +% \begin{macrocode} +\pgfplotscreateplotcyclelist{mlineplot cycle}{% + {TolDarkBlue, mark=*, mark size=1.5pt}, + {TolLightBrown, mark=square*, mark size=1.3pt}, + {TolLightGreen, mark=triangle*, mark size=1.5pt}, + {TolDarkBrown, mark=diamond*, mark size=1.5pt}, +} +% \end{macrocode} +% \end{macro} +% +% However, the above cycle lists are not applied automatically. We still need +% to define styles --- |mlineplot| and |mbarplot| --- that the user can apply +% to the axis of a |pgfplots| chart to use the colors. We'll also take the +% opportunity to adjust the display of chart axes when these styles are used. +% +% \begin{macrocode} +\pgfplotsset{ + compat=1.9, +% \end{macrocode} +% +% \begin{macro}{mlineplot} +% A style to apply to the axis of a PGF line plot. +% \begin{macrocode} + mlineplot/.style={ + mbaseplot, + xmajorgrids=true, + ymajorgrids=true, + major grid style={dotted}, + axis x line=bottom, + axis y line=left, + legend style={ + cells={anchor=west}, + draw=none + }, + cycle list name=mlineplot cycle, + }, +% \end{macrocode} +% \end{macro} +% \begin{macro}{mbarplot} +% \begin{macro}{horizontal mbarplot} +% A style to apply to the axis of a PGF bar chart. |mbarplot| uses vertical +% bars by default, while |horizontal mbarplot| has horizontal bars as the +% name implies. Their shared properties are factored out into the internal +% style |mbarplot base|. +% +% \begin{macrocode} + mbarplot base/.style={ + mbaseplot, + bar width=6pt, + axis y line*=none, + }, + mbarplot/.style={ + mbarplot base, + ybar, + xmajorgrids=false, + ymajorgrids=true, + area legend, + legend image code/.code={% + \draw[#1] (0cm,-0.1cm) rectangle (0.15cm,0.1cm); + }, + cycle list name=mbarplot cycle, + }, + horizontal mbarplot/.style={ + mbarplot base, + xmajorgrids=true, + ymajorgrids=false, + xbar stacked, + area legend, + legend image code/.code={% + \draw[#1] (0cm,-0.1cm) rectangle (0.15cm,0.1cm); + }, + cycle list name=mbarplot cycle, + }, +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{mbaseplot} +% Adjusts the appearance of the axes in a PGF chart. +% \begin{macrocode} + mbaseplot/.style={ + legend style={ + draw=none, + fill=none, + cells={anchor=west}, + }, + x tick label style={ + font=\footnotesize + }, + y tick label style={ + font=\footnotesize + }, + legend style={ + font=\footnotesize + }, + major grid style={ + dotted, + }, + axis x line*=bottom, + }, + disable thousands separator/.style={ + /pgf/number format/.cd, + 1000 sep={} + }, +} +% \end{macrocode} +% \end{macro} +% \iffalse +%</package> +% \fi +% \Finale +\endinput |