% \iffalse meta-comment ------------------------------------------------------- % Copyright (C) 2021 Thomas Lambert % Other contributors to this theme are listed here: % https://gitlab.com/thlamb/beamertheme-trigon/-/graphs/master % % The original template was heavily inspired by Metropolis from Matthias % Vogelgesang. % % License CC-BY-SA 4.0 % This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 % International License (https://creativecommons.org/licenses/by-sa/4.0/) % ------------------------------------------------------------------------- \fi % \iffalse %<*package> \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{beamerfontthemetrigon}[2021/03/25 v0.5.0 Trigon font theme] % % \fi % \CheckSum{0} % \StopEventually{} % \iffalse %<*package> % ------------------------------------------------------------------------- \fi % % \subsection{\themename font theme} % A |beamer| font theme sets the style of the font used in the document. % % % \subsubsection{Package dependencies} % \begin{macrocode} \RequirePackage{pgfopts} % \end{macrocode} % % % % \subsubsection{Title format options} % % \begin{macro}{titleformat title} % Controls the format of the title. % \begin{macrocode} \pgfkeys{ /trigon/font/titleformat title/.cd, .is choice, regular/.code={% \let\trigon@titleformat\@empty% \setbeamerfont{title}{shape=\normalfont}% }, smallcaps/.code={% \let\trigon@titleformat\@empty% \setbeamerfont{title}{shape=\scshape}% }, allsmallcaps/.code={% \let\trigon@titleformat\lowercase% \setbeamerfont{title}{shape=\scshape}% \PackageWarning{beamerthemetrigon}{% Be aware that titleformat title=allsmallcaps can lead to problems% } }, allcaps/.code={% \let\trigon@titleformat\uppercase% \setbeamerfont{title}{shape=\normalfont} \PackageWarning{beamerthemetrigon}{% Be aware that titleformat title=allcaps can lead to problems% } }, } % \end{macrocode} % \end{macro} % % \begin{macro}{titleformat subtitle} % Controls the format of the subtitle. % \begin{macrocode} \pgfkeys{ /trigon/font/titleformat subtitle/.cd, .is choice, regular/.code={% \let\trigon@subtitleformat\@empty% \setbeamerfont{subtitle}{shape=\normalfont}% }, smallcaps/.code={% \let\trigon@subtitleformat\@empty% \setbeamerfont{subtitle}{shape=\scshape}% }, allsmallcaps/.code={% \let\trigon@subtitleformat\lowercase% \setbeamerfont{subtitle}{shape=\scshape}% \PackageWarning{beamerthemetrigon}{% Be aware that titleformat subtitle=allsmallcaps can lead to problems% } }, allcaps/.code={% \let\trigon@subtitleformat\uppercase% \setbeamerfont{subtitle}{shape=\normalfont}% \PackageWarning{beamerthemetrigon}{% Be aware that titleformat subtitle=allcaps can lead to problems% } }, } % \end{macrocode} % \end{macro} % % \begin{macro}{titleformat section} % Controls the format of the section title. % \begin{macrocode} \pgfkeys{ /trigon/font/titleformat section/.cd, .is choice, regular/.code={% \let\trigon@sectiontitleformat\@empty% \setbeamerfont{section title}{shape=\normalfont}% }, smallcaps/.code={% \let\trigon@sectiontitleformat\@empty% \setbeamerfont{section title}{shape=\scshape}% }, allsmallcaps/.code={% \let\trigon@sectiontitleformat\MakeLowercase% \setbeamerfont{section title}{shape=\scshape}% \PackageWarning{beamerthemetrigon}{% Be aware that titleformat section=allsmallcaps can lead to problems% } }, allcaps/.code={% \let\trigon@sectiontitleformat\MakeUppercase% \setbeamerfont{section title}{shape=\normalfont}% \PackageWarning{beamerthemetrigon}{% Be aware that titleformat section=allcaps can lead to problems% } }, } % \end{macrocode} % \end{macro} % % \begin{macro}{titleformat frame} % Controls the format of the frame title. % \begin{macrocode} \pgfkeys{ /trigon/font/titleformat frame/.cd, .is choice, regular/.code={% \let\trigon@frametitleformat\@empty% \setbeamerfont{frametitle}{shape=\normalfont}% }, smallcaps/.code={% \let\trigon@frametitleformat\@empty% \setbeamerfont{frametitle}{shape=\scshape}% }, allsmallcaps/.code={% \let\trigon@frametitleformat\MakeLowercase% \setbeamerfont{frametitle}{shape=\scshape}% \PackageWarning{beamerthemetrigon}{% Be aware that titleformat frame=allsmallcaps can lead to problems% } }, allcaps/.code={% \let\trigon@frametitleformat\MakeUppercase% \setbeamerfont{frametitle}{shape=\normalfont} \PackageWarning{beamerthemetrigon}{% Be aware that titleformat frame=allcaps can lead to problems% } }, } % \end{macrocode} % \end{macro} % % \begin{macro}{titleformat aliases} % Allows |titleformat title| et al. to be used in the |\usetheme| % declaration, where \LaTeX{} automatically removes all spaces. % \begin{macrocode} \pgfkeys{ /trigon/font/.cd, titleformattitle/.code=\pgfkeysalso{titleformat title=#1}, titleformatsubtitle/.code=\pgfkeysalso{titleformat subtitle=#1}, titleformatsection/.code=\pgfkeysalso{titleformat section=#1}, titleformatframe/.code=\pgfkeysalso{titleformat frame=#1}, } % \end{macrocode} % \end{macro} % % \begin{macro}{\trigon@font@setdefaults} % Sets default values for font theme options. % \begin{macrocode} \newcommand{\trigon@font@setdefaults}{ \pgfkeys{/trigon/font/.cd, titleformat title=regular, titleformat subtitle=regular, titleformat section=regular, titleformat frame=regular, } } % \end{macrocode} % \end{macro} % % We first define hooks to change the case format of the titles. % % \begin{macrocode} \def\trigon@titleformat#1{#1} \def\trigon@subtitleformat#1{#1} \def\trigon@sectiontitleformat#1{#1} \def\trigon@frametitleformat#1{#1} % \end{macrocode} % % To make the uppercase and lowercase macros work in the title, subtitle, etc., % we have to patch the appropriate |beamer| commands that set their values. % This solution was suggested by Enrico Gregorio in an answer to % \href{http://tex.stackexchange.com/questions/112526/}{this StackExchange % question}. % % \begin{macrocode} \patchcmd{\beamer@title}% {\def\inserttitle{#2}}% {\def\inserttitle{\trigon@titleformat{#2}}}% {}% {\PackageError{beamerfontthemetrigon}{Patching title failed}\@ehc} \patchcmd{\beamer@subtitle}% {\def\insertsubtitle{#2}}% {\def\insertsubtitle{\trigon@subtitleformat{#2}}}% {}% {\PackageError{beamerfontthemetrigon}{Patching subtitle failed}\@ehc} \patchcmd{\sectionentry} {\def\insertsectionhead{#2}} {\def\insertsectionhead{\trigon@sectiontitleformat{#2}}} {} {\PackageError{beamerfontthemetrigon}{Patching section title failed}\@ehc} \@tempswafalse \patchcmd{\beamer@section} {\edef\insertsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{\unexpanded{#1}}}} {\edef\insertsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{% \noexpand\trigon@sectiontitleformat{\unexpanded{#1}}}}} {\@tempswatrue} {} \patchcmd{\beamer@section} {\def\insertsectionhead{\hyperlink{Navigation\the\c@page}{#1}}} {\def\insertsectionhead{\hyperlink{Navigation\the\c@page}{% \trigon@sectiontitleformat{#1}}}} {\@tempswatrue} {} \patchcmd{\beamer@section} {\protected@edef\insertsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{#1}}} {\protected@edef\insertsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{% \noexpand\trigon@sectiontitleformat{#1}}}} {\@tempswatrue} {} \if@tempswa\else \PackageError{beamerfontthemetrigon}{Patching section title failed}\@ehc \fi \@tempswafalse \patchcmd{\beamer@subsection} {\edef\insertsubsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{\unexpanded{#1}}}} {\edef\insertsubsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{% \noexpand\trigon@sectiontitleformat{\unexpanded{#1}}}}} {\@tempswatrue} {} \patchcmd{\beamer@subsection} {\def\insertsubsectionhead{\hyperlink{Navigation\the\c@page}{#1}}} {\def\insertsubsectionhead{\hyperlink{Navigation\the\c@page}{% \trigon@sectiontitleformat{#1}}}} {\@tempswatrue} {} \patchcmd{\beamer@subsection} {\protected@edef\insertsubsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{#1}}} {\protected@edef\insertsubsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{% \noexpand\trigon@sectiontitleformat{#1}}}} {\@tempswatrue} {} \if@tempswa\else \PackageError{beamerfontthemetrigon}{Patching section title failed}\@ehc \fi % \end{macrocode} % % Similarly, to make the |\MakeLowercase| and |\MakeUppercase| macros work in % the frame title we have to patch |\beamer@@frametitle|. % % \begin{macrocode} \patchcmd{\beamer@@frametitle} {{% \gdef\insertframetitle{{#2\ifnum\beamer@autobreakcount>0\relax{}\space% \usebeamertemplate*{frametitle continuation}\fi}}% \gdef\beamer@frametitle{#2}% \gdef\beamer@shortframetitle{#1}% }} {{% \gdef\insertframetitle{{\trigon@frametitleformat{#2}\ifnum% \beamer@autobreakcount>0\relax{}\space% \usebeamertemplate*{frametitle continuation}\fi}}% \gdef\beamer@frametitle{#2}% \gdef\beamer@shortframetitle{#1}% }} {} {\PackageError{beamerfontthemetrigon}{Patching frame title failed}\@ehc} % \end{macrocode} % % % \subsubsection{General font definitions} % % \begin{macrocode} \setbeamerfont{author} {size=\normalsize} \setbeamerfont{title} {size=\LARGE,series=\bfseries} \setbeamerfont{section title}{size=\LARGE,series=\mdseries} \setbeamerfont{date} {size=\small} \setbeamerfont*{subtitle} {size=\Large} \setbeamerfont{frametitle} {size=\LARGE} \setbeamerfont{framesubtitle}{size=\large} \setbeamerfont{alerted text} {size=\normalsize,series=\bfseries} \setbeamerfont{block title}{size=\normalsize,series=\bfseries} \setbeamerfont{block title alerted}{size=\normalsize,series=\bfseries} \setbeamerfont{section in toc}{size=\Large} \setbeamerfont{subsection in toc}{size=\large} \setbeamerfont{page number in head/foot}{size=\scriptsize} \setbeamerfont{description item}{series=\bfseries} \setbeamerfont{caption}{size=\small} \setbeamerfont{caption name}{series=\bfseries} % \end{macrocode} % % \subsubsection{Process package options} % % \begin{macrocode} \trigon@font@setdefaults \ProcessPgfPackageOptions{/trigon/font} % \end{macrocode} % % \iffalse % % \fi % \Finale \endinput