presentations

Presentations
Log | Files | Refs

beamerfontthememetropolis.sty (11439B)


      1 %%
      2 %% This is file `beamerfontthememetropolis.sty',
      3 %% generated with the docstrip utility.
      4 %%
      5 %% The original source files were:
      6 %%
      7 %% beamerfontthememetropolis.dtx  (with options: `package')
      8 %% ---------------------------------------------------------------------------
      9 %% Copyright 2015 Matthias Vogelgesang and the LaTeX community. A full list of
     10 %% contributors can be found at
     11 %% 
     12 %%     https://github.com/matze/mtheme/graphs/contributors
     13 %% 
     14 %% and the original template was based on the HSRM theme by Benjamin Weiss.
     15 %% 
     16 %% This work is licensed under a Creative Commons Attribution-ShareAlike 4.0
     17 %% International License (https://creativecommons.org/licenses/by-sa/4.0/).
     18 %% ---------------------------------------------------------------------------
     19 \NeedsTeXFormat{LaTeX2e}
     20 \ProvidesPackage{beamerfontthememetropolis}[2017/01/23 Metropolis font theme]
     21 \RequirePackage{etoolbox}
     22 \RequirePackage{ifxetex}
     23 \RequirePackage{ifluatex}
     24 \RequirePackage{pgfopts}
     25 \ifboolexpr{bool {xetex} or bool {luatex}}{
     26   \@ifpackageloaded{fontspec}{
     27     \PassOptionsToPackage{no-math}{fontspec}
     28   }{
     29     \RequirePackage[no-math]{fontspec}
     30   }
     31   \newcounter{fontsnotfound}
     32   \newcommand{\checkfont}[1]{%
     33     \suppressfontnotfounderror=1%
     34     \font\x = "#1" at 10pt
     35     \selectfont
     36     \ifx\x\nullfont%
     37       \stepcounter{fontsnotfound}%
     38     \fi%
     39     \suppressfontnotfounderror=0%
     40   }
     41 
     42   \newcommand{\iffontsavailable}[3]{%
     43     \setcounter{fontsnotfound}{0}%
     44     \expandafter\forcsvlist\expandafter%
     45     \checkfont\expandafter{#1}%
     46     \ifnum\value{fontsnotfound}=0%
     47       #2%
     48     \else%
     49       #3%
     50     \fi%
     51   }
     52   \iffontsavailable{Fira Sans Light,%
     53                     Fira Sans Light Italic,%
     54                     Fira Sans,%
     55                     Fira Sans Italic}%
     56   {%
     57     \setsansfont[ItalicFont={Fira Sans Light Italic},%
     58                  BoldFont={Fira Sans},%
     59                  BoldItalicFont={Fira Sans Italic}]%
     60                 {Fira Sans Light}%
     61   }{%
     62     \iffontsavailable{Fira Sans Light OT,%
     63                       Fira Sans Light Italic OT,%
     64                       Fira Sans OT,%
     65                       Fira Sans Italic OT}%
     66     {%
     67       \setsansfont[ItalicFont={Fira Sans Light Italic OT},%
     68                    BoldFont={Fira Sans OT},%
     69                    BoldItalicFont={Fira Sans Italic OT}]%
     70                   {Fira Sans Light OT}%
     71     }{%
     72       \PackageWarning{beamerthememetropolis}{%
     73         Could not find Fira Sans fonts%
     74       }
     75     }
     76   }
     77   \iffontsavailable{Fira Mono, Fira Mono Bold}{%
     78     \setmonofont[BoldFont={Fira Mono Medium}]{Fira Mono}%
     79   }{%
     80     \iffontsavailable{Fira Mono OT, Fira Mono Bold OT}{%
     81       \setmonofont[BoldFont={Fira Mono Medium OT}]{Fira Mono OT}%
     82     }{%
     83       \PackageWarning{beamerthememetropolis}{%
     84         Could not find Fira Mono fonts%
     85       }
     86     }
     87   }
     88   \AtBeginEnvironment{tabular}{%
     89     \addfontfeature{Numbers={Monospaced}}%
     90   }
     91 }{%
     92   \PackageWarning{beamerthememetropolis}{%
     93     You need to compile with XeLaTeX or LuaLaTeX to use the Fira fonts%
     94   }
     95 }
     96 \setbeamerfont{title}{size=\Large,%
     97                       series=\bfseries}
     98 \setbeamerfont{author}{size=\small}
     99 \setbeamerfont{date}{size=\small}
    100 \setbeamerfont{section title}{size=\Large,%
    101                               series=\bfseries}
    102 \setbeamerfont{block title}{size=\normalsize,%
    103                             series=\bfseries}
    104 \setbeamerfont{block title alerted}{size=\normalsize,%
    105                                     series=\bfseries}
    106 \setbeamerfont*{subtitle}{size=\large}
    107 \setbeamerfont{frametitle}{size=\large,%
    108                            series=\bfseries}
    109 \setbeamerfont{caption}{size=\small}
    110 \setbeamerfont{caption name}{series=\bfseries}
    111 \setbeamerfont{description item}{series=\bfseries}
    112 \setbeamerfont{page number in head/foot}{size=\scriptsize}
    113 \setbeamerfont{bibliography entry author}{size=\normalsize,%
    114                                           series=\normalfont}
    115 \setbeamerfont{bibliography entry title}{size=\normalsize,%
    116                                          series=\bfseries}
    117 \setbeamerfont{bibliography entry location}{size=\normalsize,%
    118                                             series=\normalfont}
    119 \setbeamerfont{bibliography entry note}{size=\small,%
    120                                         series=\normalfont}
    121 \setbeamerfont{standout}{size=\Large,%
    122                          series=\bfseries}
    123 \pgfkeys{
    124   /metropolis/font/titleformat title/.cd,
    125     .is choice,
    126     regular/.code={%
    127       \let\metropolis@titleformat\@empty%
    128       \setbeamerfont{title}{shape=\normalfont}%
    129     },
    130     smallcaps/.code={%
    131       \let\metropolis@titleformat\@empty%
    132       \setbeamerfont{title}{shape=\scshape}%
    133     },
    134     allsmallcaps/.code={%
    135       \let\metropolis@titleformat\lowercase%
    136       \setbeamerfont{title}{shape=\scshape}%
    137       \PackageWarning{beamerthememetropolis}{%
    138         Be aware that titleformat title=allsmallcaps can lead to problems%
    139       }
    140     },
    141     allcaps/.code={%
    142       \let\metropolis@titleformat\uppercase%
    143       \setbeamerfont{title}{shape=\normalfont}
    144       \PackageWarning{beamerthememetropolis}{%
    145         Be aware that titleformat title=allcaps can lead to problems%
    146       }
    147     },
    148 }
    149 \pgfkeys{
    150   /metropolis/font/titleformat subtitle/.cd,
    151     .is choice,
    152     regular/.code={%
    153       \let\metropolis@subtitleformat\@empty%
    154       \setbeamerfont{subtitle}{shape=\normalfont}%
    155     },
    156     smallcaps/.code={%
    157       \let\metropolis@subtitleformat\@empty%
    158       \setbeamerfont{subtitle}{shape=\scshape}%
    159     },
    160     allsmallcaps/.code={%
    161       \let\metropolis@subtitleformat\lowercase%
    162       \setbeamerfont{subtitle}{shape=\scshape}%
    163       \PackageWarning{beamerthememetropolis}{%
    164         Be aware that titleformat subtitle=allsmallcaps can lead to problems%
    165       }
    166     },
    167     allcaps/.code={%
    168       \let\metropolis@subtitleformat\uppercase%
    169       \setbeamerfont{subtitle}{shape=\normalfont}%
    170       \PackageWarning{beamerthememetropolis}{%
    171         Be aware that titleformat subtitle=allcaps can lead to problems%
    172       }
    173     },
    174 }
    175 \pgfkeys{
    176   /metropolis/font/titleformat section/.cd,
    177     .is choice,
    178     regular/.code={%
    179       \let\metropolis@sectiontitleformat\@empty%
    180       \setbeamerfont{section title}{shape=\normalfont}%
    181     },
    182     smallcaps/.code={%
    183       \let\metropolis@sectiontitleformat\@empty%
    184       \setbeamerfont{section title}{shape=\scshape}%
    185     },
    186     allsmallcaps/.code={%
    187       \let\metropolis@sectiontitleformat\MakeLowercase%
    188       \setbeamerfont{section title}{shape=\scshape}%
    189       \PackageWarning{beamerthememetropolis}{%
    190         Be aware that titleformat section=allsmallcaps can lead to problems%
    191       }
    192     },
    193     allcaps/.code={%
    194       \let\metropolis@sectiontitleformat\MakeUppercase%
    195       \setbeamerfont{section title}{shape=\normalfont}%
    196       \PackageWarning{beamerthememetropolis}{%
    197         Be aware that titleformat section=allcaps can lead to problems%
    198       }
    199     },
    200 }
    201 \pgfkeys{
    202   /metropolis/font/titleformat frame/.cd,
    203     .is choice,
    204     regular/.code={%
    205       \let\metropolis@frametitleformat\@empty%
    206       \setbeamerfont{frametitle}{shape=\normalfont}%
    207     },
    208     smallcaps/.code={%
    209       \let\metropolis@frametitleformat\@empty%
    210       \setbeamerfont{frametitle}{shape=\scshape}%
    211     },
    212     allsmallcaps/.code={%
    213       \let\metropolis@frametitleformat\MakeLowercase%
    214       \setbeamerfont{frametitle}{shape=\scshape}%
    215       \PackageWarning{beamerthememetropolis}{%
    216         Be aware that titleformat frame=allsmallcaps can lead to problems%
    217       }
    218     },
    219     allcaps/.code={%
    220       \let\metropolis@frametitleformat\MakeUppercase%
    221       \setbeamerfont{frametitle}{shape=\normalfont}
    222       \PackageWarning{beamerthememetropolis}{%
    223         Be aware that titleformat frame=allcaps can lead to problems%
    224       }
    225     },
    226 }
    227 \pgfkeys{
    228   /metropolis/font/.cd,
    229   titleformattitle/.code=\pgfkeysalso{titleformat title=#1},
    230   titleformatsubtitle/.code=\pgfkeysalso{titleformat subtitle=#1},
    231   titleformatsection/.code=\pgfkeysalso{titleformat section=#1},
    232   titleformatframe/.code=\pgfkeysalso{titleformat frame=#1},
    233 }
    234 \newcommand{\metropolis@font@setdefaults}{
    235   \pgfkeys{/metropolis/font/.cd,
    236     titleformat title=regular,
    237     titleformat subtitle=regular,
    238     titleformat section=regular,
    239     titleformat frame=regular,
    240   }
    241 }
    242 \def\metropolis@titleformat#1{#1}
    243 \def\metropolis@subtitleformat#1{#1}
    244 \def\metropolis@sectiontitleformat#1{#1}
    245 \def\metropolis@frametitleformat#1{#1}
    246 \patchcmd{\beamer@title}%
    247   {\def\inserttitle{#2}}%
    248   {\def\inserttitle{\metropolis@titleformat{#2}}}%
    249   {}%
    250   {\PackageError{beamerfontthememetropolis}{Patching title failed}\@ehc}
    251 \patchcmd{\beamer@subtitle}%
    252   {\def\insertsubtitle{#2}}%
    253   {\def\insertsubtitle{\metropolis@subtitleformat{#2}}}%
    254   {}%
    255   {\PackageError{beamerfontthememetropolis}{Patching subtitle failed}\@ehc}
    256 \patchcmd{\sectionentry}
    257   {\def\insertsectionhead{#2}}
    258   {\def\insertsectionhead{\metropolis@sectiontitleformat{#2}}}
    259   {}
    260   {\PackageError{beamerfontthememetropolis}{Patching section title failed}\@ehc}
    261 \@tempswafalse
    262 \patchcmd{\beamer@section}
    263   {\edef\insertsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{\unexpanded{#1}}}}
    264   {\edef\insertsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{%
    265     \noexpand\metropolis@sectiontitleformat{\unexpanded{#1}}}}}
    266   {\@tempswatrue}
    267   {}
    268 \patchcmd{\beamer@section}
    269   {\def\insertsectionhead{\hyperlink{Navigation\the\c@page}{#1}}}
    270   {\def\insertsectionhead{\hyperlink{Navigation\the\c@page}{%
    271     \metropolis@sectiontitleformat{#1}}}}
    272   {\@tempswatrue}
    273   {}
    274 \patchcmd{\beamer@section}
    275   {\protected@edef\insertsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{#1}}}
    276   {\protected@edef\insertsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{%
    277     \noexpand\metropolis@sectiontitleformat{#1}}}}
    278   {\@tempswatrue}
    279   {}
    280 \if@tempswa\else
    281   \PackageError{beamerfontthememetropolis}{Patching section title failed}\@ehc
    282 \fi
    283 \@tempswafalse
    284 \patchcmd{\beamer@subsection}
    285   {\edef\insertsubsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{\unexpanded{#1}}}}
    286   {\edef\insertsubsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{%
    287     \noexpand\metropolis@sectiontitleformat{\unexpanded{#1}}}}}
    288   {\@tempswatrue}
    289   {}
    290 \patchcmd{\beamer@subsection}
    291   {\def\insertsubsectionhead{\hyperlink{Navigation\the\c@page}{#1}}}
    292   {\def\insertsubsectionhead{\hyperlink{Navigation\the\c@page}{%
    293     \metropolis@sectiontitleformat{#1}}}}
    294   {\@tempswatrue}
    295   {}
    296 \patchcmd{\beamer@subsection}
    297   {\protected@edef\insertsubsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{#1}}}
    298   {\protected@edef\insertsubsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{%
    299     \noexpand\metropolis@sectiontitleformat{#1}}}}
    300   {\@tempswatrue}
    301   {}
    302 \if@tempswa\else
    303   \PackageError{beamerfontthememetropolis}{Patching section title failed}\@ehc
    304 \fi
    305 \patchcmd{\beamer@@frametitle}
    306   {{%
    307       \gdef\insertframetitle{{#2\ifnum\beamer@autobreakcount>0\relax{}\space%
    308       \usebeamertemplate*{frametitle continuation}\fi}}%
    309     \gdef\beamer@frametitle{#2}%
    310     \gdef\beamer@shortframetitle{#1}%
    311     }}
    312   {{%
    313       \gdef\insertframetitle{{\metropolis@frametitleformat{#2}\ifnum%
    314       \beamer@autobreakcount>0\relax{}\space%
    315       \usebeamertemplate*{frametitle continuation}\fi}}%
    316     \gdef\beamer@frametitle{#2}%
    317     \gdef\beamer@shortframetitle{#1}%
    318     }}
    319   {}
    320   {\PackageError{beamerfontthememetropolis}{Patching frame title failed}\@ehc}
    321 \metropolis@font@setdefaults
    322 \ProcessPgfPackageOptions{/metropolis/font}
    323 \endinput
    324 %%
    325 %% End of file `beamerfontthememetropolis.sty'.